openstack 使用 VLAN 供应商网络增加公网网段
第 7 章 把一个实例连接到物理网络 Red Hat OpenStack Platform 9 | Red Hat Customer Portal
这个过程会创建一个可以把实例直接连接到外部网络的 VLAN 供应商网络。如果您需要把一个独立 NIC 上的多个 VLAN-tagged 接口连接到多个供应商网络,则要执行这些操作。这个例子使用一个名为 physnet1
的网络,它具有一组 VLAN(171-172
)。网络节点和计算节点使用名为 eth1
的物理接口连接到物理网络。连接这些接口的交换机网络被配置为对所需的 VLAN 进行端口汇聚(trunk)。
以下过程使用上面提供的 VLAN ID 和名称对 VLAN 供应商网络进行配置。
配置控制器节点:
1. 编辑 /etc/neutron/plugin.ini
(到 /etc/neutron/plugins/ml2/ml2_conf.ini
文件的符合链接)文件来启用 vlan 机制驱动,把 vlan 添加到存在的值列表中。如:
[ml2] type_drivers = vxlan,flat,vlan
2. 配置 network_vlan_ranges
的设置来反映使用的物理网络和 VLAN。例如:
[ml2_type_vlan] network_vlan_ranges=physnet1:171:172
3. 重启 neutron-server 服务以使所做的修改生效:
systemctl restart neutron-server
4. 创建外部网络作为 vlan 类型,并把它们与配置的 physical_network
相关联。把它创建为一个 --shared 网络来允许其它用户直接连接到实例。这个例子会创建两个网络:一个为 VLAN 171,另一个为 VLAN 172:
neutron net-create provider-vlan171 \ --provider:network_type vlan \ --router:external true \ --provider:physical_network physnet1 \ --provider:segmentation_id 171 --shared neutron net-create provider-vlan172 \ --provider:network_type vlan \ --router:external true \ --provider:physical_network physnet1 \ --provider:segmentation_id 172 --shared
5. 使用 neutron subnet-create
或 dashboard 创建一组子网,并把它们配置为使用外部网络。您需要确保从网络管理员处获得的外部子网信息正确地与每个 VLAN 相关联。在这个例子中,VLAN 171 使用子网 10.65.217.0/24,VLAN 172 使用 10.65.218.0/24:
neutron subnet-create \ --name subnet-provider-171 provider-171 10.65.217.0/24 \ --enable-dhcp \ --gateway 10.65.217.254 \ neutron subnet-create \ --name subnet-provider-172 provider-172 10.65.218.0/24 \ --enable-dhcp \ --gateway 10.65.218.254 \
配置 Network 节点和 Compute 节点:
这些步骤必须在 network 节点和 compute 节点上都进行。这将把节点连接到外部网络,并使实例可以直接和外部网络进行通讯。
1. 创建一个外部网桥(br-ex),并把它与端口(eth1)进行关联:
- 在这个例子中,把 eth1 配置为使用 bre-ex:
/etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none
- 以下例子被用来配置 br-ex 网桥:
/etc/sysconfig/network-scripts/ifcfg-br-ex: DEVICE=br-ex TYPE=OVSBridge DEVICETYPE=ovs ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none
2. 重启节点或重启 network 服务以使对网络的修改生效。例如:
# systemctl restart network
3. 在 /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
中配置物理网络,把网桥映射到相关的物理网络:
bridge_mappings = physnet1:br-ex
如需了解更多与配置 bridge_mappings
相关的信息,请参阅本指南中的配置网桥映射一章。
4. 在网络节点和计算节点上重启 neutron-openvswitch-agent
服务以使所做的修改生效:
systemctl restart neutron-openvswitch-agent
配置 Network 节点:
1. 把 /etc/neutron/l3-agent.ini
文件中的 external_network_bridge =
设置为空。在使用供应商外部网络时需要这个配置。如果是基于外部网络的网桥,则需要添加 external_network_bridge = br-ex
:
# Name of bridge used for external network traffic. This should be set to # empty value for the linux bridge external_network_bridge =
2. 重启 neutron-l3-agent
以使所做的修改生效。
systemctl restart neutron-l3-agent
3. 创建一个新实例,并使用 dashboard 中的网络
标签页把新实例直接添加到新创建的外部网络中。