网络选项 2:自服务网络¶
在控制器节点上安装和配置网络组件。
安装组件¶
# dnf install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-openvswitch ebtables
配置服务器组件¶
编辑
/etc/neutron/neutron.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] # ... connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
将
NEUTRON_DBPASS替换为您为数据库选择的密码。注意
注释掉或删除
[database]部分中的任何其他connection选项。在
[DEFAULT]部分,启用模块化第二层 (ML2) 插件和路由器服务[DEFAULT] # ... core_plugin = ml2 service_plugins = router
在
[DEFAULT]部分中,配置RabbitMQ消息队列访问[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
将
RABBIT_PASS替换为您在 RabbitMQ 中为openstack帐户选择的密码。在
[DEFAULT]和[keystone_authtoken]部分中,配置身份服务访问[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 = NEUTRON_PASS
将
NEUTRON_PASS替换为您在 Identity 服务中为neutron用户选择的密码。注意
注释掉或删除
[keystone_authtoken]部分中的任何其他选项。在
[DEFAULT]和[nova]部分,配置网络以通知计算组件网络拓扑更改[DEFAULT] # ... notify_nova_on_port_status_changes = true notify_nova_on_port_data_changes = true [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 = NOVA_PASS
将
NOVA_PASS替换为您在 Identity 服务中为nova用户选择的密码。
在
[oslo_concurrency]部分中,配置锁路径[oslo_concurrency] # ... lock_path = /var/lib/neutron/tmp
配置模块化第二层 (ML2) 插件¶
ML2 插件使用 Linux 网桥机制为实例构建第二层(桥接和交换)虚拟网络基础设施。
编辑
/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作在
[ml2]部分,启用 flat、VLAN 和 VXLAN 网络[ml2] # ... type_drivers = flat,vlan,vxlan
在
[ml2]部分,启用 VXLAN 自助服务网络[ml2] # ... tenant_network_types = vxlan
在
[ml2]部分,启用 Linux 网桥和第二层填充机制[ml2] # ... mechanism_drivers = openvswitch,l2population
警告
配置 ML2 插件后,删除
type_drivers选项中的值可能导致数据库不一致。注意
Linux 网桥代理仅支持 VXLAN 覆盖网络。
在
[ml2]部分,启用端口安全扩展驱动程序[ml2] # ... extension_drivers = port_security
在
[ml2_type_flat]部分,将提供商虚拟网络配置为 flat 网络[ml2_type_flat] # ... flat_networks = provider
在
[ml2_type_vxlan]部分,配置自助服务网络的 VXLAN 网络标识符范围[ml2_type_vxlan] # ... vni_ranges = 1:1000
配置 Open vSwitch 代理¶
Linux 网桥代理为实例构建第二层(桥接和交换)虚拟网络基础设施并处理安全组。
编辑
/etc/neutron/plugins/ml2/openvswitch_agent.ini文件并完成以下操作在
[ovs]部分,将提供商虚拟网络映射到提供商物理网桥,并配置处理叠加网络的物理网络接口的 IP 地址[ovs] bridge_mappings = provider:PROVIDER_BRIDGE_NAME local_ip = OVERLAY_INTERFACE_IP_ADDRESS
将
PROVIDER_BRIDGE_NAME替换为连接到底层提供商物理网络的网桥的名称。有关更多信息,请参阅 主机网络 和 Open vSwitch:提供商网络。还将
OVERLAY_INTERFACE_IP_ADDRESS替换为处理覆盖网络的基础物理网络接口的 IP 地址。示例架构使用管理接口将流量隧道传输到其他节点。因此,将OVERLAY_INTERFACE_IP_ADDRESS替换为控制器节点的管理 IP 地址。有关更多信息,请参阅 主机网络。确保
PROVIDER_BRIDGE_NAME外部网桥已创建,并且PROVIDER_INTERFACE_NAME已添加到该网桥# ovs-vsctl add-br $PROVIDER_BRIDGE_NAME # ovs-vsctl add-port $PROVIDER_BRIDGE_NAME $PROVIDER_INTERFACE_NAME
在
[agent]部分,启用 VXLAN 叠加网络并启用第二层填充[agent] tunnel_types = vxlan l2_population = true
在
[securitygroup]部分,启用安全组并配置 Open vSwitch 本机或混合 iptables 防火墙驱动程序[securitygroup] # ... enable_security_group = true firewall_driver = openvswitch #firewall_driver = iptables_hybrid
如果使用混合 iptables 防火墙驱动程序,请确保您的 Linux 操作系统内核通过验证以下所有
sysctl值设置为1来支持网络桥接过滤器net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables
要启用网络桥接支持,通常需要加载
br_netfilter内核模块。有关启用此模块的更多详细信息,请查阅您的操作系统文档。
配置第三层代理¶
第三层 (L3) 代理为自助服务虚拟网络提供路由和 NAT 服务。
如果需要额外的自定义,请编辑
/etc/neutron/l3_agent.ini文件。
配置 DHCP 代理¶
DHCP 代理为虚拟网络提供 DHCP 服务。
编辑
/etc/neutron/dhcp_agent.ini文件并完成以下操作在
[DEFAULT]部分,配置 Dnsmasq DHCP 驱动程序,并启用隔离元数据,以便提供商网络上的实例可以通过网络访问元数据[DEFAULT] # ... dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = true
返回到网络控制器节点配置。