安装和配置Neutron(Provider-LinuxBridge)
OpenStack网络方式比较多,可以采用Provider模式或者Self-service模式。部署方式又可以分为LinuxBridge和OVS。实际部署时只需要在Provider+LinuxBridge、Provider+OVS、Self-service+LinuxBridge、Self-service+OVS四种模式中选取其中之一即可。
控制节点
在Provider-LinuxBridge网络类型的控制节点controller执行以下操作。
- 安装组件。
1
yum -y install openstack-neutron openstack-neutron-ml2 ebtables
- 修改配置文件“/etc/neutron/neutron.conf”。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,完成以下配置。
- 配置数据库访问。
1 2
[database] connection = mysql+pymysql://neutron:PASSWORD@controller/neutron
将PASSWORD修改为创建Neutron数据库中Neutron用户的密码。
- 启用ML2插件,禁用其他插件。
1 2 3 4 5 6 7
[DEFAULT] core_plugin = ml2 service_plugins = transport_url = rabbit://openstack:PASSWORD@controller auth_strategy = keystone notify_nova_on_port_status_changes = true notify_nova_on_port_data_changes = true
- service_plugins为赋空值。
- 将PASSWORD修改为安装RabbitMQ中OpenStack用户的密码。
- 配置身份访问。
1 2 3 4 5 6 7 8 9 10
[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 = service username = neutron password = PASSWORD
将PASSWORD修改为创建Neutron数据库中Neutron用户的密码。
- 配置[nova]模块参数。
1 2 3 4 5 6 7 8 9
[nova] auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = nova password = PASSWORD
- 配置文件中默认没有该模块,需要新增。
- 将PASSWORD修改为创建Nova数据库中Nova用户的密码。
- 配置锁定路径。
1 2
[oslo_concurrency] lock_path = /var/lib/neutron/tmp
- 配置数据库访问。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 编辑ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。
- 打开文件。
vi /etc/neutron/plugins/ml2/ml2_conf.ini
- 按“i”进入编辑模式,将如下内容添加到文件中,启用flat和vlan网络。
1 2 3 4 5 6 7 8 9 10 11
[ml2] type_drivers = flat,vlan tenant_network_types = mechanism_drivers = linuxbridge extension_drivers = port_security [ml2_type_flat] flat_networks = provider-arm,provider-x86 [ml2_type_vlan] network_vlan_ranges = provider-arm,provider-x86 [securitygroup] enable_ipset = true
tenant_network_types为赋空值。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 确保您的Linux操作系统内核支持网桥过滤器。
- 打开“/etc/sysctl.conf”文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,将如下内容添加到文件中。
1 2
net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/sysctl.conf”文件。
- 添加网桥过滤器。
1 2 3
modprobe br_netfilter sysctl -p sed -i '$amodprobe br_netfilter' /etc/rc.local
- 创建网络初始化。
1
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
- 填充数据库。
1 2
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
- 启动网络服务并配置为系统引导时启动。
1 2
systemctl enable neutron-server.service systemctl start neutron-server.service
网络节点
在Provider-LinuxBridge网络类型的网络节点(x86-compute和arm-compute)执行以下操作。
- 安装组件。
1
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
- 配置公共组件,编辑“/etc/neutron/neutron.conf”文件。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
指定使用RabbitMQ作为消息队列的连接信息。
1 2
[DEFAULT] transport_url = rabbit://openstack:PASSWORD@controller
将PASSWORD修改为安装RabbitMQ中OpenStack用户的密码。
配置身份访问服务。1 2 3 4 5 6 7 8 9 10 11 12
[DEFAULT] auth_strategy = keystone [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 = service username = neutron password = PASSWORD
将PASSWORD修改为创建Neutron数据库中Neutron用户的密码。
配置锁定路径。1 2
[oslo_concurrency] lock_path = /var/lib/neutron/tmp
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 配置DHCP代理。
- 打开“/etc/neutron/dhcp_agent.ini”文件。
vi /etc/neutron/dhcp_agent.ini
- 按“i”进入编辑模式,配置以下配置项。
- 对于x86网络节点,属于az-x86,新增如下配置。
1 2 3 4 5 6
[DEFAULT] interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = true [AGENT] availability_zone = az-x86
- 对于ARM网络节点,属于az-arm,新增如下配置。
1 2 3 4 5 6
[DEFAULT] interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = true [AGENT] availability_zone = az-arm
- 对于x86网络节点,属于az-x86,新增如下配置。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/neutron/dhcp_agent.ini”文件。
- 配置元数据代理。
- 打开“/etc/neutron/metadata_agent.ini”。
vi /etc/neutron/metadata_agent.ini
- 按“i”进入编辑模式,配置元数据主机和共享秘钥。
1 2 3
[DEFAULT] nova_metadata_host = controller metadata_proxy_shared_secret = PASSWORD
将PASSWORD修改为创建Neutron数据库中Neutron用户的密码。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/neutron/metadata_agent.ini”。
- 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件。
- 打开文件。
vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
- 按“i”进入编辑模式,将Provider虚拟网络映射到物理网络。
- 对于x86网络节点,属于az-x86,配置provider-x86:
1 2
[linux_bridge] physical_interface_mappings = provider-x86:enp64s0
对于ARM网络节点,属于az-arm,配置provider-arm:1 2
[linux_bridge] physical_interface_mappings = provider-arm:enp64s0
此处的provider网络使用的是enp64s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡,请参见集群环境,本指导文档中为enp64s0。
- 禁用vxlan覆盖网络。
1 2
[vxlan] enable_vxlan = false
- 启用安全组并配置Linux网桥iptables防火墙驱动程序,然后保存并退出。
1 2 3 4
[securitygroup] enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
- 对于x86网络节点,属于az-x86,配置provider-x86:
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 确保您的Linux操作系统内核支持网桥过滤器。
- 打开文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,将如下内容添加到文件中。
1 2
net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 运行以下命令,添加网桥过滤器。
1 2 3
modprobe br_netfilter sysctl -p sed -i '$amodprobe br_netfilter' /etc/rc.local
- 启动网络服务并配置为系统引导时启动。
1 2 3 4
systemctl enable neutron-linuxbridge-agent.service \ neutron-dhcp-agent.service neutron-metadata-agent.service systemctl start neutron-linuxbridge-agent.service \ neutron-dhcp-agent.service neutron-metadata-agent.service
计算节点
在Provider-LinuxBridge网络类型的计算节点(x86-compute和arm-compute)执行以下操作。由于当前将网络节点和计算节点合部在同一节点上,会存在部分重复的配置,跳过这些配置即可。
- 安装组件。
1
yum -y install openstack-neutron-linuxbridge ebtables ipset
- 配置公共组件,编辑/etc/neutron/neutron.conf文件。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
- 配置RabbitMQ消息队列访问。
1 2
[DEFAULT] transport_url = rabbit://openstack:PASSWORD@controller
将PASSWORD修改为安装RabbitMQ中OpenStack用户的密码。
- 配置身份访问服务。
1 2 3 4 5 6 7 8 9 10 11 12
[DEFAULT] auth_strategy = keystone [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 = service username = neutron password = PASSWORD
将PASSWORD修改为创建Neutron数据库中Neutron用户的密码。
- 配置锁定路径。
1 2
[oslo_concurrency] lock_path = /var/lib/neutron/tmp
- 配置RabbitMQ消息队列访问。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件,添加以下3项。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
- 将提供者虚拟网络映射到提供者物理网络接口。
- 对于x86计算节点,属于az-x86,配置provider-x86:
1 2
[linux_bridge] physical_interface_mappings = provider-x86:enp64s0
- 对于ARM计算节点,属于az-arm,配置provider-arm:
1 2
[linux_bridge] physical_interface_mappings = provider-arm:enp64s0
此处的provider网络使用的是enp64s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡,请参见集群环境,本指导文档中为enp64s0。
- 对于x86计算节点,属于az-x86,配置provider-x86:
- 禁用vxlan覆盖网络。
1 2
[vxlan] enable_vxlan = false
- 启用安全组并配置Linux网桥iptables防火墙驱动程序。
1 2 3 4
[securitygroup] enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
- 将提供者虚拟网络映射到提供者物理网络接口。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 确保您的Linux操作系统内核支持网桥过滤器。
- 打开“/etc/sysctl.conf”文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,将如下内容添加到文件中。
1 2
net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/sysctl.conf”文件。
- 运行以下命令,添加网桥过滤器。
1 2 3
modprobe br_netfilter sysctl -p sed -i '$amodprobe br_netfilter' /etc/rc.local
- 启动Linux网桥代理并将其配置为在系统引导时启动。
1 2
systemctl enable neutron-linuxbridge-agent.service systemctl start neutron-linuxbridge-agent.service