Neutron网络模型

发布时间 2023-07-15 16:37:42作者: 王景迁

网络类型

VLAN模型

VXLAN模型

VXLAN和VLAN VID转换

针对不同场景,VID说法不同。针对VXLAN来说是VNI,针对VLAN来说是VLAN ID。
VLAN和VXLAN共用br-int网桥时,VXLAN解封装后变成VLAN报文,防止br-int上VXLAN报文解封装成VLAN后的内部VLAN ID可能与VLAN报文的内部VLAN ID冲突。

VLAN ID内外VID转换过程

出报文的内外VLAN ID转换过程

报文从VM1-1的A端口发出,是Untag报文;
报文从B端口进入qbr-xxx,再从C端口离开qbr-xxx,也是Untag报文(A、B端口其实是同一个tap设备,以下不再重复这个说明);
报文从D端口进入br-int,在D端口,报文被打上标签,VLAN ID = 10;
报文从E端口离开br-int,此时报文VID = 10;
报文从F端口进入br-ethx,在F端口,报文的标签被转变为VLAN ID = 100;
报文从G端口离开Host,VLAN ID = 100。
报文在br-int的D端口被打上内部VLAN标签,变成了Tag报文,在br-ethx的F端口做了内外VID的转化。图3-8中,在VM1-1上标识了VLAN 10,其实表达的是它在Host内的br-int上所对应的接口VLAN ID = 10,并不是说从VM1-1发出的报文的VLAN ID = 10。

入报文VLAN ID转换过程

报文从Host进入到br-ethx,是Tag报文,VID = 100;
报文从br-ethx离开,在离开的端口F,报文VID转变为10;
报文从E端口进入br-int,此时报文VID = 10;
报文进入br-int后,从D端口被转发出去,在离开D时,被剥去Tag,变成Untag报文;
报文从C端口进入qbr-xxx,然后从B端口离开,再从A端口进入VM1-1,这一路都是Untag报文。
报文在br-ethx的F端口做了内外VID的转化,在br-int的D端口被剥去VLAN标签,变成了Untag报文。

VXLAN内外VID转换过程

出报文的vxlan内外VID转换过程

报文从VM1-3的A端口发出,是Untag报文;
报文从B端口进入qbr-xxx,再从C端口离开qbr-xxx,也是Untag报文;
报文从D端口进入br-int,在D端口,报文被打上标签,VLAN ID = 50;
报文从E端口离开br-int,此时报文VID = 50;
报文从F端口进入br-tun,此时报文VID = 50;
报文从G端口离开Host,在G端口,报文被从VLAN封装为VXLAN,并且VNI = 100。
报文在br-int的D端口被打上内部VLAN标签,变成了Tag报文,在br-tun的G端口做了两件事情:报文格式从VLAN封装为VXLAN,VNI赋值为100。

入报文的vxlan内外VID转换过程

报文来到Host进到br-tun,是VXLAN
报文,VNI = 100;
报文在br-tun的G端口,被转换为VLAN报文,VLAN ID = 50;
报文从br-tun离开,一直到进入br-int,都是VLAN报文,VLAN ID = 50;
报文从br-int D端口离开br-int,报文被剥去Tag,变成Untag报文;
报文从C端口进入qbr-xxx,然后再从B端口离开,再从A端口进入VM1-3,这一路都是Untag报文。
报文在br-tun的G端口做了两件事情:报文格式从VXLAN拆封为VLAN,VLAN ID赋值为50,在br-int的D端口被剥去VLAN标签,变成了Untag报文。

参考资料

《深入理解OpenStack Neutron》