searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Openstack Neutron OVS组网介绍1---Local VLAN

2023-12-08 06:18:59
12
0

    采用Openvswitch组网,为了能够在内部隔离各个租户网络,采用的做法是给br-int桥上的端口打上相应的VLAN Tag。

    每个节点上都部署有br-int桥,同一个租户网络在每个节点上分配的VLAN ID都是独立的。如下图1所示,两个计算节点,计算节点1部署了三台虚拟机VM1、VM2、VM5,计算节点2也部署了三台虚拟机VM3、VM4、VM6.其中VM1、VM3、VM6为同一个租户网络,VM2、VM4、VM5为同一个租户网络。

  • 计算节点1

VM1处于一个租户网络中,neutron-openvswitch-agent在该计算节点上为这个租户网络分配了一个内部VLAN ID,这里假设为10.

VM2和VM5处于一个租户网络中,neutron-openvswitch-agent在该计算节点上为这个租户网络分配了一个内部VLAN ID,这里假设为20.

由此可以看出,对于不同的租户网络,在同一个节点(网络节点和计算节点都是这样)上会分配不同的内部VLAN ID来达到两个租户网络隔离的目的。

  • 计算节点2

VM3和VM6处于一个租户网络中,neutron-openvswitch-agent在该计算节点上为这个租户网络分配了一个内部VLAN ID,这里假设为30(虽然VM3和VM5和计算节点1上的VM1都是处于同一个租户网络中,但是由于每个节点上的内部VLAN ID都是独立分配的,因此同一个租户网络,在计算节点1上分配内部VLAN ID=10,在计算节点2上分配内部VLAN ID=30)。VM4处于另外一个租户网络中,neutron-openvswitch-agent在该计算节点上为这个租户网络分配了一个内部VLAN ID,这里假设为20(同样,虽然VM4和计算节点1上的VM2、VM5都是处于同一个租户网络中,但是由于每个节点上的内部VLAN ID都是独立分配的,因此同一个租户网络,在计算节点1上分配内部VLAN ID=20,在计算节点2上分配内部VLAN ID=20,刚好相同,实际中是随机的,可以相同也可以不相同)

     neutron-openvswitch-agent进程是负责分配内部VLAN ID值的。该进程维护了一张位图,记录了1-4094的VLAN ID哪些被分配了,被分配给哪个租户网络了。通常一个租户网络分配一个内部的VLAN ID值(即使这个租户网络内可以创建多个子网),即:内部VLAN ID分配的单元是租户网络。当用户删除某个租户网络时,之前分配给该租户网络的内部VLAN ID会被回收,但是这里有个特点:虽然被回收了,但是后续给新创建的租户网络分配内部VLAN ID时是以递增的形式分配的,只有递增到4094,再回环过来继续使用被回收的VLAN ID。

0条评论
0 / 1000