Neutron网络实现模型——VxLAN详解

  • Post author:
  • Post category:其他


VXLAN的实现模型与VLAN的实现模型非常相像,如下图
从表面来看,VXLAN与VLAN的实现模型相比,仅仅一个差别:VLAN中对应的br-ethx,而VXLAN中对应的是br-tun(br-tun是一个混合单词的缩写:Bridge-Tunnel。此时的Tunnel是VXLAN Tunnel。)
其实,br-ethx是一个OVS,br-tun也是一个OVS。所有说,两者的差别不是实现组件的差别,而是组件所执行功能的差别。br-ethx所执行的一个普通二层交换机的功能,br-tun所执行的是VXLAN中VTEP的功能,上图中两个tun所对应的接口IP分时标识为10.0.100.88和10.0.100.77,这两个IP就是VXLAN的隧道终结点IP。
VXLAN与VLAN一样也存在内外VID的转换。通过VXLAN,就可以明白Neutron为什么要做内外VID的转换。
如下图所示
该图吧br-tun一分为二,设想为两部分:上层是VTEP,对VXLAN隧道进行了终结;下层是一个普通的VLAN Bridge。所以,对于Host来说,它有两层网络,虚线以上是VXLAN网络,虚线以下是VLAN网络。如此一来,VXLAN内外VID的转换则变成了不得不做得工作,因为它不仅仅是表面上看起的那样,仅仅是VID数值的转变,而且背后蕴含着网络类型的转变。
VLAN类型的网络并不存在VXLAN这样的问题。当Host遇到VLAN时,它并不会变成两重网络,可为什么要做内外VID的转换呢?这主要是为了避免内部VLAN ID的冲突。内部VLAN ID是体现在br-int上的,而一个Host内装有1个br-int,也就是说VLAN和VXLAN是共用一个br-int.假如VLAN网络不做内外VID的转换,则很可能引发br-int上的内部VLAN ID冲突,如下表。
VXLAN做内外VID转换时,并不知道VLAN的外部VID是什么,所以它就根据自己的算法将内部VID转换为100,结果很不辛,与VLAN网络的外部VID相等。因为VLAN的内部VID没有做转换,仍然等于外部VID,所以两者在br-int上产生了冲突。正是这个原因,所以VLAN类型的网络,也要做内外VID的转换,而且所有的网络类型都需要做VID的转换。这样的话Neutron就能统一掌控,从而避免内部VID的冲突。
VXLAN的转换过程如下:
1 出报文的VID转换过程:
2 入报文VID转换过程如下:



版权声明:本文为chengqiuming原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。