OpenStack中br-ex的作用及实现步骤

1. 概述

在OpenStack中,br-ex(Bridge External)是一个用于连接虚拟网络和物理网络的虚拟交换机。它的主要作用是将虚拟机实例的流量从虚拟网络转发到物理网络,以便虚拟机实例和外部网络进行通信。在本文中,我将指导你如何实现OpenStack中br-ex的作用。

2. 实现步骤

下面是实现OpenStack中br-ex的步骤,我们将使用Neutron网络服务进行配置。

步骤1: 创建外部网络

首先,我们需要创建一个外部网络用于连接虚拟网络和物理网络。外部网络通常与物理网络的接口相连,可通过此接口与外部网络通信。

openstack network create --external --provider-network-type flat --provider-physical-network physnet1 ext-net
  • openstack network create: 创建一个网络
  • --external: 标记网络为外部网络
  • --provider-network-type flat: 指定网络类型为flat
  • --provider-physical-network physnet1: 指定物理网络名称为physnet1
  • ext-net: 外部网络的名称

步骤2: 创建子网和路由器

接下来,我们需要创建子网和路由器来连接外部网络和内部网络。

openstack subnet create --network ext-net --gateway <gateway IP> --subnet-range <subnet range> --allocation-pool start=<start IP>,end=<end IP> ext-subnet

openstack router create ext-router

openstack router set ext-router --external-gateway ext-net

openstack router add subnet ext-router ext-subnet
  • openstack subnet create: 创建一个子网

  • --network ext-net: 子网连接到外部网络

  • --gateway <gateway IP>: 指定网关IP地址

  • --subnet-range <subnet range>: 指定子网的IP范围

  • --allocation-pool start=<start IP>,end=<end IP>: 指定分配给虚拟机实例的IP地址范围

  • ext-subnet: 子网的名称

  • openstack router create: 创建一个路由器

  • ext-router: 路由器的名称

  • openstack router set ext-router --external-gateway ext-net: 将路由器连接到外部网络

  • openstack router add subnet ext-router ext-subnet: 将子网添加到路由器

步骤3: 配置物理网络接口

现在,我们需要配置物理网络接口,将它连接到br-ex。

ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex <physical interface>
  • ovs-vsctl add-br br-ex: 创建一个名称为br-ex的OVS(Open vSwitch)网桥

  • ovs-vsctl add-port br-ex <physical interface>: 将物理网络接口连接到br-ex

步骤4: 配置网络节点

在网络节点上,我们需要将br-ex设置为外部网络的网桥,并启用网络地址转换(NAT)。

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vlan network_vlan_ranges physnet1:1:4094
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000

systemctl restart neutron-server
systemctl restart neutron-plugin-openvswitch-agent
systemctl restart neutron-l3-agent
  • openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1: 将flat_networks配置为physnet1,指定使用的外部网络名称

  • openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vlan network_vlan_ranges physnet1:1:4094: 指定VLAN范围

  • openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000: 指定VXLAN虚拟网络标识(VNI)范围

  • systemctl restart neutron-server: 重启Neutron服务器

  • `systemctl restart