Neutron为其他服务组件提供网络连接功能,如Nova计算服务组件。同时,提供API给用户使用。支持多个网络供应商的设备和技术。
OpenStack网络方式比较多,当前采用的是Provider和Self-service网络模式,部署方式又可以分为LinuxBridge和OVS,实际部署时只需要在Provider+LinuxBridge、Provider+OVS、Self-service+LinuxBridge、Self-service+OVS四种模式中选取其中之一即可。
创建Neutron数据库
在控制节点执行以下操作。
- 以root身份连接数据库。
- 创建Neutron数据库。
- 授予适当访问权限,<PASSWORD>为用户为数据库设置的密码。
|
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY '<PASSWORD>';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY '<PASSWORD>';
|
<PASSWORD>为Neutron数据库的密码。
- 退出数据库。
创建服务凭据
在控制节点执行以下操作。
- 使用admin用户登录OpenStack命令行。
|
source /etc/keystone/admin-openrc
|
- 创建Neutron用户。
|
openstack user create --domain default --password-prompt neutron
|
- 将admin角色添加到Neutron用户。
|
openstack role add --project service --user neutron admin
|
- 创建Neutron服务实体。
|
openstack service create --name neutron --description "OpenStack Networking" network
|
- 创建网络服务器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
|
安装和配置Neutron(Provider-LinuxBridge-控制节点)
在Provider-LinuxBridge-控制节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
|
- 编辑配置文件/etc/neutron/neutron.conf。
- 配置数据库访问。
|
[database]
connection = mysql+pymysql://neutron:<PASSWORD>@controller/neutron
|
- 修改[DEFAULT]模块内容。
|
[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>为openstack rabbit用户的密码。
- 配置身份访问。
|
[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]模块参数,需要新增。
|
[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>
|
- 配置锁定路径。
|
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 编辑ML2插件/etc/neutron/plugins/ml2/ml2_conf.ini。
- 启用flat和vlan网络。
默认是没有的,需要新建[ml2]、[ml2_type_flat]和[securitygroup]。
|
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security
|
tenant_network_types为赋空值。
- 将Provider配置为flat网络。
|
[ml2_type_flat]
flat_networks = provider
|
- 将vlan配置为flat网络。
|
[ml2_type_vlan]
network_vlan_ranges = provider
|
- 启用ipset提高安全效率。
|
[securitygroup]
enable_ipset = true
|
- 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件。
- 将Provider虚拟网络映射到物理网络。
|
[linux_bridge]
physical_interface_mappings = provider:enp3s0
|
此处的provider网络使用的是enp3s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡。参考“组网环境”。
- 禁用vxlan覆盖网络。
|
[vxlan]
enable_vxlan = false
|
- 启用安全组并配置Linux网桥iptables防火墙驱动程序,然后保存并退出。
|
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
- 确保您的Linux操作系统内核支持网桥过滤器。
在“/etc/sysctl.conf”中添加如下配置后,保存并退出:
|
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
|

- 运行以下命令,添加网桥过滤器:
|
modprobe br_netfilter
sysctl -p
sed -i '$amodprobe br_netfilter' /etc/rc.local
|
- 配置DHCP代理。
编辑“/etc/neutron/dhcp_agent.ini”文件,新增如下配置后保存并退出。
|
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
|
- 配置元数据代理。
|
vim /etc/neutron/metadata_agent.ini
|
配置元数据主机和共享密钥。
|
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = <PASSWORD>
|
- 配置Computer服务以使用Networking服务。
配置访问参数,启用元数据代理并配置密码。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[neutron]
# ...
url = http://controller:9696
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = <PASSWORD>
service_metadata_proxy = true
metadata_proxy_shared_secret = <PASSWORD>
|
- 创建网络初始化。
|
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 neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
|
安装和配置Neutron(Provider-LinuxBridge-计算节点)
在Provider-LinuxBridge-计算节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron-linuxbridge ebtables ipset
|
- 配置公共组件,编辑/etc/neutron/neutron.conf文件。
- 在该[database]部分中,注释掉所有connection选项(默认已注释),因为计算节点不直接访问数据库。
- 配置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
|
- 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件,添加以下3项。
- 提供者虚拟网络映射到提供者物理网络接口。
|
[linux_bridge]
physical_interface_mappings = provider:enp3s0
|
此处的provider网络使用的是enp3s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡。参考组网环境。
- 禁用vxlan覆盖网络。
|
[vxlan]
enable_vxlan = false
|
- 启用安全组并配置Linux网桥iptables防火墙驱动程序。
|
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
- 确保您的Linux操作系统内核支持网桥过滤器。
在“/etc/sysctl.conf”中添加:
|
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
|
:
- 运行以下命令,添加网桥过滤器。
|
modprobe br_netfilter
sysctl -p
sed -i '$amodprobe br_netfilter' /etc/rc.local
|
- 启动Linux网桥代理并将其配置为在系统引导时启动。
|
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service
|
安装和配置Neutron(Provider-OVS-控制节点)
在Provider-OVS-控制节点执行下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables
|
- 修改系统配置文件“/etc/sysctl.conf”。
- 添加如下内容:
|
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 使配置生效。
- 编辑配置文件/etc/neutron/neutron.conf。
- 配置数据库访问。
|
[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
|
- 配置身份访问。
|
[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参数,需要新建[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>
|
- 配置锁定路径。
|
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 编辑ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。
- 启用flat和vlan网络。
默认是没有的,需要新建[ml2]、[ml2_type_flat]、[ml2_type_vlan]和[securitygroup]。
|
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = openvswitch
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
[securitygroup]
enable_ipset = true
|
- 配置DHCP代理。
编辑“/etc/neutron/dhcp_agent.ini”文件。
|
[DEFAULT]
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
interface_driver = openvswitch
force_metadata = true
|
- 配置元数据代理。
编辑“/etc/neutron/metadata_agent.ini”。
配置元数据主机和共享密钥。
|
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = <PASSWORD>
|
<PASSWORD>为Neutron数据库的密码。
- 创建网络初始化。
|
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 \
neutron-openvswitch-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
systemctl start neutron-server.service \
neutron-openvswitch-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
|
安装和配置Neutron(Provider-OVS-计算节点)
在Provider-OVS-计算节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables ipset
|
- 修改系统配置文件“/etc/sysctl.conf”。
- 添加如下内容:
|
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 使配置生效。
- 配置公共组件,编辑/etc/neutron/neutron.conf文件。
- 配置RabbitMQ消息队列访问。
|
[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数据库的密码。
- 配置锁定路径。
|
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 配置openstack agent,编辑文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”,新增[linux_openvswitch]、[vxlan]、[ovs]和[securitygroup]。
|
[linux_openvswitch]
physical_interface_mappings = provider:enp3s0
[vxlan]
enable_vxlan = false
[ovs]
bridge_mappings = provider:br-provider
[securitygroup]
enable_security_group=true
firewall_driver = iptables_hybrid
|
- 配置DHCP代理,编辑“/etc/neutron/dhcp_agent.ini”文件。
|
[DEFAULT]
interface_driver = openvswitch
enable_isolated_metadata = true
force_metadata = true
|
- 配置metadata代理,编辑“/etc/neutron/metadata_agent.ini”文件。
|
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = <PASSWORD>
|
<PASSWORD>为Neutron数据库的密码。
- 启动OVS代理并将其配置为在系统引导时启动。
|
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
|
- 创建ovs provider。
|
ovs-vsctl add-br br-provider
ovs-vsctl add-port br-provider enp3s0
|
安装和配置Neutron(Self service-LinuxBridge-控制节点)
在Self service-LinuxBridge网络类型的控制节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 ebtables
|
- 编辑配置文件“/etc/neutron/neutron.conf”。
- 配置数据库访问。
|
[database]
connection = mysql+pymysql://neutron:<PASSWORD>@controller/neutron
|
PASSWORD为创建Neutron数据库neutron用户的密码。
- 修改[DEFAULT]模块内容。
|
[DEFAULT]
core_plugin = ml2
service_plugins = router
transport_url = rabbit://openstack:<PASSWORD>@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
allow_overlapping_ips = true
|
PASSWORD为安装消息队列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>
|
PASSWORD为创建Neutron数据库neutron用户的密码。
- 配置[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
|
- 编辑ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。
启Flat、VLAN和VXLAN网络。
默认是没有的,需要新建[ml2]、[ml2_type_flat]、[ml2_type_vlan]和[securitygroup]。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true
|
- 配置Computer 服务以使用Networking服务。
配置访问参数,启用元数据代理并配置密码。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[neutron]
# ...
url = http://controller:9696
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = <PASSWORD>
service_metadata_proxy = true
metadata_proxy_shared_secret = <PASSWORD>
|
- 执行该操作前,请确保已经安装了Nova。
- PASSWORD为创建Neutron数据库neutron用户的密码。
- 确保您的Linux操作系统内核支持网桥过滤器。
在“/etc/sysctl.conf”中添加:
|
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
|

- 运行以下命令,添加网桥过滤器。
|
modprobe br_netfilter
sysctl -p
sed -i '$amodprobe br_netfilter' /etc/rc.local
|
- 创建网络初始化。
|
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
|
安装和配置Neutron(Self service-LinuxBridge-计算节点)
在Self service-LinuxBridge网络类型的计算节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
|
- 配置公共组件,编辑“/etc/neutron/neutron.conf”文件。
- 配置RabbitMQ 消息队列访问。
|
[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用户的密码。
- 配置锁定路径。
|
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 配置DHCP代理。
编辑“/etc/neutron/dhcp_agent.ini”文件
|
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
|
- 配置元数据代理。
编辑“/etc/neutron/metadata_agent.ini”。配置元数据主机和共享密钥。
|
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = <PASSWORD>
|
此处PASSWORD使用创建Neutron数据库neutron用户的密码。
- 配置L3 agent。
编辑“/etc/neutron/l3_agent.ini”文件。
|
[DEFAULT]
interface_driver = linuxbridge
|
- 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件。
- 将Provider虚拟网络映射到物理网络。
|
[linux_bridge]
physical_interface_mappings = provider:enp3s0
|
此处的provider网络使用的是enp3s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡,参考集群环境。
- 使能VXLAN覆盖网络。
|
[vxlan]
enable_vxlan = true
local_ip = 192.168.100.121
l2_population = true
|
- 启用安全组并配置Linux网桥iptables防火墙驱动程序,然后保存并退出。
|
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
- 确保您的Linux操作系统内核支持网桥过滤器。
在“/etc/sysctl.conf”中添加:
|
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
|

- 运行以下命令,添加网桥过滤器。
|
modprobe br_netfilter
sysctl -p
sed -i '$amodprobe br_netfilter' /etc/rc.local
|
- 启动网络服务并配置为系统引导时启动。
|
systemctl enable neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service
systemctl start neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service
|
安装和配置Neutron(Self service-OVS-控制节点)
在Self service-OVS网络类型的控制节点执行以下操作。
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 ebtables
|
- 编辑配置文件“/etc/neutron/neutron.conf”。
- 配置数据库访问。
|
[database]
connection = mysql+pymysql://neutron:<PASSWORD>@controller/neutron
|
PASSWORD为创建Neutron数据库neutron用户的密码。
- 启用ML2插件,禁用其他插件。
|
[DEFAULT]
core_plugin = ml2
service_plugins = router
transport_url = rabbit://openstack:<PASSWORD>@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
allow_overlapping_ips = true
|
PASSWORD为安装消息队列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>
|
PASSWORD为创建Neutron数据库neutron用户的密码。
- 配置[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
|
- 编辑ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。
- 启用Flat、VLAN和VXLAN网络。
默认是没有的,需要新建 [ml2]、[ml2_type_flat]、[ml2_type_vlan]、[ml2_type_vxlan]和[securitygroup]。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true
|
- 配置Computer服务以使用Networking服务。
配置访问参数,启用元数据代理并配置密码。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[neutron]
# ...
url = http://controller:9696
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = <PASSWORD>
service_metadata_proxy = true
metadata_proxy_shared_secret = <PASSWORD>
|
- 执行该操作前,请确保已经安装了Nova。
- PASSWORD为创建Neutron数据库neutron用户的密码。
- 修改系统配置文件“/etc/sysctl.conf”。
- 添加如下内容:
|
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 使配置生效。
- 创建网络初始化。
|
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
|
安装和配置Neutron(Self service-OVS-计算节点)
- 安装组件。
|
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables
|
- 配置公共组件,编辑/etc/neutron/neutron.conf文件。
- 配置RabbitMQ消息队列访问。
|
[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用户的密码。
- 配置锁定路径。
|
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
|
- 配置DHCP代理。
编辑“/etc/neutron/dhcp_agent.ini”文件。
|
[DEFAULT]
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
interface_driver = openvswitch
force_metadata = true
|
- 配置元数据代理。
编辑“/etc/neutron/metadata_agent.ini”。配置元数据主机和共享密钥。
|
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = <PASSWORD>
|
此处PASSWORD使用创建Neutron数据库neutron用户的密码。
- 配置L3 agent。
编辑“/etc/neutron/l3_agent.ini”文件。
|
[DEFAULT]
interface_driver = openvswitch
|
- 配置openstack agent,编辑文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”,新增[linux_openvswitch]、[vxlan]、[ovs]和[securitygroup]。
|
[linux_openvswitch]
physical_interface_mappings = provider:enp3s0
[agent]
tunnel_types = vxlan
l2_population = true
[ovs]
bridge_mappings = provider:br-provider
local_ip = 192.168.100.121
[securitygroup]
enable_security_group = true
firewall_driver = iptables_hybrid
|
此处的provider网络使用的是enp3s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡,参考集群环境。
- 修改系统配置文件“/etc/sysctl.conf”。
- 添加如下内容:
|
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
|
- 使配置生效。
- 启动网络服务并配置为系统引导时启动。
|
systemctl enable neutron-openvswitch-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service
systemctl start neutron-openvswitch-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service
|
- 创建ovs provider。
|
ovs-vsctl add-br br-provider
ovs-vsctl add-port br-provider enp3s0
|
验证Neutron
在控制节点列出成功启动的Neutron代理。
|
openstack network agent list
|

表1 Neutron常用命令
命令行 |
功能描述 |
openstack network create --share --external \
--provider-physical-network provider \
--provider-network-type flat enp3s0 |
创建共享虚拟网络 |
openstack subnet create --network provider \
--allocation-pool start=172.168.204.50,end=172.168.204.100 \
--dns-nameserver 8.8.8.8 --gateway 172.168.204.1 \
--subnet-range 172.168.204.0/24 subnet1 |
创建子网络
说明:
该命令中的参数意为:网络名称为subnet1,DHCP范围为172.168.204.50-172.168.204.100,DNS为8.8.8.8,网关为172.168.204.1,网络为172.168.204.0/24。
|
openstack network list |
查看当前网络 |
openstack subnet list |
查看子网络 |
openstack port list |
查看网络端口 |