Trunk Networking方案内外VID的转换

Trunk Network的实现模型如下图
Trunk Networking方案内外VID的转换
br-trunk和br-int之间的接口和接口模式分两类:Parent Port和Sub Port,分别对应Trunk模型中的Parent Port和Sub Port。这两类接口都是Access模式。需要特别指定的是,1个需要aware VLAN的VM,对应一个Trunk Bridge,两者是1:1的关系。
下面通过一个计算节点内外VLAN ID转换的示例来说明转换方法。如下图:
Trunk Networking方案内外VID的转换
TP1对应Trunk Networking中的Parent Port,TS1对应Trunk Network中的Sub Port。同时,我们假设VM3的内外VLAN ID转换规则如下表所示。
Trunk Networking方案内外VID的转换
为了方便描述,易于理解,这里只列举1个Sub Port、1个aware VLAN ID。
不管带不带tag的报文,Neutron的设计需要追求一点:对于br-int来说,保持透明,保持不变。所以,br-trunk与br-int之间的VLAN接口模式是Access。从br-int的视角来看,报文是从VM发出直接到达br-int,还是中间经过了br-trunk的转换,它都不关心,也看不到。它只知道从它的不同端口进入了Untag报文,它需要给这些报文打上不同的Tag(而且这些Tag还不能重复),然后送到br-ethx(或者br-tun)中去。
下面分4种情况,简单介绍Trunk Network方案的内外VID的转换。
一 普通报文从VM发出
如下图
Trunk Networking方案内外VID的转换
二 普通报文进入VM
如下图
Trunk Networking方案内外VID的转换
三 VLAN报文从VM发出
如下图
Trunk Networking方案内外VID的转换
四 VLAN报文进入VM
如下图
Trunk Networking方案内外VID的转换
五 Trunk network小结
只是通过新增而不是通过修改原来代码的方式以增加新特性(功能),对于任何一个软件系统来说,都不是一个简单的事情。Neutron在Newton版本通过Trunk Network方案以支持VLAN aware VM新特性,就做到这一点。
Trunk Network方案没有修改原来的实现模型和资源模型,而是在原来的实现模型中引入了Trunk Bridge。在原来的资源模型中引入了Trunk资源模型,对原来的代码并没做太大的修改,就支持了VLAN aware VM新特性,做的非常漂亮。
我们用一个表格来总结Trunk Networking所面临的问题及其解决方案。
Trunk Networking方案内外VID的转换