ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

openstack学习笔记7-网络服务安装与配置

2020-03-08 10:03:08  阅读:214  来源: 互联网

标签:name 配置 笔记 etc openstack 节点 neutron 网络服务


目录:

0 实验环境
1 概述
2 控制节点配置
2.1 先决条件
2.2 安装和配置组件
2.3 配置数据代理
2.4 配置网络服务
2.5 完成安装
3 创建网络
4 计算节点配置
4.1 服务配置
4.2 网络配置
4.3 配置计算服务使用网络服务
4.4 配置服务状态
5 验证


 0 实验环境

openstack版本:train

实验平台:vmware workstation 15.1

实验虚拟机:控制节点(centos 7.6,2核,4G内存),计算节点(centos 7.6,2核,2G内存)

虚拟机网络:

网络地址范围:管理网络192.168.223.0/24,业务网络192.168.0.0/24

控制节点

网卡1:ens33,管理网络,192.168.223.11/24

网卡2:ens37,业务网络

计算节点

网卡1:ens33,管理网络,192.168.223.31/24

网卡2:ens37,业务网络

操作节点:控制节点和计算节点

本文涉及的帐号密码:

mysql数据库管理员:root:samplepass

neutron数据库用户:neutron:dbpass

nova服务用户:nova:npass

元数据metadata共享密码:msecret

1 概述

Openstack的网络服务neutron,可以适应不同的网络设备和软件,为OpenStack架构和部署提供灵活性。

网络服务主要与OpenStack计算服务交互,为其实例提供网络和连接。

网络服务是一种虚拟化的网络,通过各种插件(plugin),提供网络基础设施(VNI)的方方面面(如子网,交换路由等),并提供各种高级功能(如防火墙、vpn等)。

2 控制节点配置

Openstack的网络服务提供两种架构,一种是虚拟机的网络通过通过与节点网络接口桥接,直接访问外部网络,不能提供如虚拟防火墙等高级功能;另一种是虚拟机使用网络服务提供的网络,访问外部网络需要经过NAT地址转换。

2.1 先决条件

a)数据库配置

# mysql -u root -p    //使用root用户登录
MariaDB [(none)]> CREATE DATABASE neutron;    //创建数据库neutron
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'dbpass'; //设置neutron用户的本地登录权限和密码 
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'dbpass'; //设置neutron用户的远程登录权限和密码
MariaDB [(none)]> quit;

b)用户和权限配置

# . admin-openrc
# openstack user create --domain default --password-prompt neutron    //新建用户neutron,并设置密码,我设置的是npass
# openstack role add --project g_service --user neutron admin    //设置用户neutron在项目g_service中,角色为admin
# openstack service create --name neutron --description "OpenStack Networking" network    //为openstack创建网络服务

 

 

 c)服务API端点配置

# openstack endpoint create --region RegionOne network public http://controller:9696
# openstack endpoint create --region RegionOne network internal http://controller:9696
# openstack endpoint create --region RegionOne network admin http://controller:9696

2.2 安装和配置组件

网络结构的不同,安装和配置方式有区别,本文演示第一种,直接桥接到外部网络的方式。

外部网络为:192.168.0.0/24,网关:192.168.0.1,dns:61.139.2.69

a) 安装软件包

# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

b)编辑配置文件/etc/neutron/neutron.conf

[DEFAULT]节点:

[DEFAULT]
# ...
core_plugin = ml2
service_plugins =
transport_url = rabbit://openstack:rabbitpass@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[database]节点:

[database]
#配置数据库连接字符串,用户名neutron,密码dbpass
connection = mysql+pymysql://neutron:dbpass@controller/neutron

[keystone_authtoken]节点:

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = g_service username = neutron password = npass

[nova]节点:

[nova]
# 该节点在配置文件中没有,手动添加到最后
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = g_service
username = nova
password = npass

[oslo_concurrency]节点:

[oslo_concurrency]
# ...
lock_path = /var/lib/neutron/tmp

c)配置2层模块插件(ML2 plugin)

编辑配置文件/etc/neutron/plugins/ml2/ml2_conf.ini,写入如下内容

[ml2]
#文件里没有该节点,手工增加
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security

[ml2_type_flat]
#文件里没有该节点,手工增加
flat_networks = provider

[securitygroup]
#文件里没有该节点,手工增加
enable_ipset = true

d)配置linux桥接代理

编辑配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
#配置桥接的物理网卡,在这里我的第二个网卡是ens37,第一个网卡用于管理网络
physical_interface_mappings = provider:ens37

[vxlan]
#禁止xvxlan模式
enable_vxlan = false

[securitygroup]
# 开启安全组,配置防火墙驱动
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

e)检查桥接包过滤模块:

# sysctl net.bridge.bridge-nf-call-iptables    //如果系统不支持就会出现下面的提示
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
# sysctl net.bridge.bridge-nf-call-iptables      //正常会如下显示值为1
net.bridge.bridge-nf-call-iptables = 1

正常情况下,安装过程会自动配置该模块,但是如果重启系统后,还是没有正常,可以做如下配置:

# modprobe br_netfilter    //临时启用
# echo br_netfilter > /etc/modules-load.d/openstack.conf    //在/etc/modules-load.d目录下创建文件,写入开机自动加载的模块名

f)配置dhcp代理

dhcp代理为虚拟网络提供dhcp服务。

编辑/etc/neutron/dhcp_agent.ini:

[DEFAULT]
# 使用dnsmasq来提供dhcp服务
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

2.3 配置数据代理

编辑配置文件/etc/neutron/metadata_agent.ini[DEFAULT]节点:

[DEFAULT]
# 配置元数据主机和共享密码
nova_metadata_host = controller
metadata_proxy_shared_secret = msecret

2.4 配置网络服务

编辑配置文件/etc/nova/nova.conf,在[neutron]节点设置相应参数:

[neutron]
# 注意neutron的密码和metadata的共享密码使用之前的操作中设置的密码
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = g_service
username = neutron
password = npass
service_metadata_proxy = true
metadata_proxy_shared_secret = msecret

2.5 完成安装

a)创建配置文件/etc/neutron/plugins/ml2/ml2_conf.ini的符号链接:

# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

b)初始化数据:

# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

c)重启nova-api服务

# systemctl restart openstack-nova-api.service

d)配置网络服务状态

# systemctl enable --now neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent

3 创建网络

# . admin-openrc
# openstack network create  --share --external   --provider-physical-network provider   --provider-network-type flat provider    //--share允许所有项目使用,--external设置网络为外部网络,默认值为内部网络

 

创建子网(根据实际情况调整地址等参数,我在本文最前面列出了外部网络地址等信息):

# openstack subnet create --network provider   --allocation-pool start=192.168.0.10,end=192.168.0.50   --dns-nameserver 61.139.2.69 --gateway 192.168.0.1   --subnet-range 192.168.0.0/24 provider

 

4 计算节点配置

4.1 服务配置

a) 安装软件包

# yum install openstack-neutron-linuxbridge ebtables ipsec

b)编辑网络服务配置文件/etc/neutron/neutron.conf

[DEFAULT]节点:

[DEFAULT]
# ...
transport_url = rabbit://openstack:rabbitpass@controller
auth_strategy = keystone

[keystone_authtoken]节点:

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = g_service username = neutron password = npass

[oslo_concurrency]节点:

[oslo_concurrency]
# ...
lock_path = /var/lib/neutron/tmp

4.2 网络配置

a)配置linux桥接代理

编辑配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
#配置桥接的物理网卡,在这里我的第二个网卡是ens37,第一个网卡用于管理网络
physical_interface_mappings = provider:ens37

[vxlan]
#禁止xvxlan模式
enable_vxlan = false

[securitygroup]
# 开启安全组,配置防火墙驱动
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

4.3 配置计算服务使用网络服务

编辑计算服务配置文件/etc/nova/nova.conf

[neutron]节点:

[neutron]
# ...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = g_service
username = neutron
password = npass

4.4 配置服务状态

# systemctl restart openstack-nova-compute    //重启nova服务
# systemctl enable --now neutron-linuxbridge-agent    //设置网桥代理服务状态

5 验证

列出网络代理,应该有3个控制节点上的代理,一个计算节点的代理(在控制节点运行该命令):

# openstack network agent list

 

标签:name,配置,笔记,etc,openstack,节点,neutron,网络服务
来源: https://www.cnblogs.com/learn2teach/p/12436782.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有