OpenStack网络方式比较多,可以采用Provider模式或者Self-service模式。部署方式又可以分为LinuxBridge和OVS。实际部署时只需要在Provider+LinuxBridge、Provider+OVS、Self-service+LinuxBridge、Self-service+OVS四种模式中选取其中之一即可。
控制节点
在Provider-OVS网络类型的控制节点controller执行以下操作。
- 安装组件。
| yum -y install openstack-neutron openstack-neutron-ml2 ebtables
|
- 编辑配置文件/etc/neutron/neutron.conf。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
- 配置数据库访问。
| [database]
connection = mysql+pymysql://neutron:PASSWORD@controller/neutron
|
- 启用ML2插件,禁用其他插件。
| [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用户的密码。
- 配置身份访问。
| [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
|
- 配置[nova]模块参数。
| [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用户的密码。
- 配置锁定路径。
| [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”进入编辑模式,添加如下内容以新建[ml2]、[ml2_type_flat]、[ml2_type_vlan]和[securitygroup],并启用flat和vlan网络。
| [ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = openvswitch
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”保存并退出编辑。
- 修改系统配置文件“/etc/sysctl.conf”。
- 打开文件。
- 按“i”进入编辑模式,添加如下内容:
| net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 使配置生效。
- 创建网络初始化。
| ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
|
- 填充数据库。
| 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
|
- 启动网络服务并配置为系统引导时启动。
| systemctl enable neutron-server.service
systemctl start neutron-server.service
|
网络节点
在Provider-OVS网络类型的网络节点(x86-compute和arm-compute)执行以下操作。
- 安装组件。
| yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables
|
- 配置公共组件,编辑“/etc/neutron/neutron.conf”文件。
- 打开文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
- 配置RabbitMQ消息队列访问。
| [DEFAULT]
transport_url = rabbit://openstack:PASSWORD@controller
|
将PASSWORD修改为安装RabbitMQ中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
|
- 配置锁定路径。
| [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,新增如下配置:
| [DEFAULT]
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
interface_driver = openvswitch
enable_isolated_metadata = true
force_metadata = true
[AGENT]
availability_zone = az-x86
|
- 对于ARM网络节点,属于az-arm,新增如下配置:
| [DEFAULT]
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
interface_driver = openvswitch
enable_isolated_metadata = true
force_metadata = true
[AGENT]
availability_zone = az-arm
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 配置元数据代理。
- 打开文件“/etc/neutron/metadata_agent.ini”。
vi /etc/neutron/metadata_agent.ini
- 按“i”进入编辑模式,配置元数据主机和共享秘钥。
| [DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = PASSWORD
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 修改系统配置文件“/etc/sysctl.conf”。
- 打开文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,添加如下内容:
| net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 使配置生效。
- 启动网络服务并配置为系统引导时启动。
| systemctl enable neutron-openvswitch-agent.service \
neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl start neutron-openvswitch-agent.service \
neutron-dhcp-agent.service neutron-metadata-agent.service
|
计算节点
在Provider-OVS网络类型的计算节点(x86-compute和arm-compute)执行以下操作。由于当前将网络节点和计算节点合部在同一节点上,会存在部分重复的配置,跳过这些配置即可。
- 安装组件。
| yum -y install openstack-neutron openstack-neutron-openvswitch ebtables ipset
|
- 配置公共组件。
- 打开“/etc/neutron/neutron.conf”文件。
vi /etc/neutron/neutron.conf
- 按“i”进入编辑模式,配置以下配置项。
- 配置RabbitMQ消息队列访问。
| [DEFAULT]
transport_url = rabbit://openstack:PASSWORD@controller
|
- 配置身份访问服务。
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
|
- 配置锁定路径。
| [oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 配置openstack agent。
- 打开文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”。
vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
- 按“i”进入编辑模式,新增[linux_openvswitch]、[vxlan]、[ovs]和[securitygroup]。
- 对于x86计算节点,属于az-x86,配置provider-x86:
| [linux_openvswitch]
physical_interface_mappings = provider-x86:enp64s0
[vxlan]
enable_vxlan = false
[ovs]
bridge_mappings = provider-x86:br-provider
[securitygroup]
enable_security_group=true
firewall_driver = iptables_hybrid
|
- 对于ARM计算节点,属于az-arm,配置provider-arm:
| [linux_openvswitch]
physical_interface_mappings = provider-arm:enp64s0
[vxlan]
enable_vxlan = false
[ovs]
bridge_mappings = provider-arm:br-provider
[securitygroup]
enable_security_group=true
firewall_driver = iptables_hybrid
|
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 修改系统配置文件“/etc/sysctl.conf”。
- 打开文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,添加如下内容:
| net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 使配置生效。
- 启动OVS代理并将其配置为在系统引导时启动。
| systemctl enable neutron-openvswitch-agent.service
systemctl start neutron-openvswitch-agent.service
|
- 创建ovs provider。
| ovs-vsctl add-br br-provider
ovs-vsctl add-port br-provider enp64s0
|