VM能够发送和接收带有VLAN Tag的报文,这种情况叫VLAN aware VM。
一个可以VLAN aware 的VM,意味着它可以接入多个Network(VLAN),如下图所示。
在Neutron模型中并没有VM的概念,而是以Port指代。我们先这样简单的理解port,Port是VM的虚拟网口。在没有引入Trunk Networking特性之前,Neutron的模型设计中有这样的约束:一个Port只能属于一个Network。假设一个VM只有一个Port,如果想让VM具备VLAN aware特性,这就意味着这个Port必须要属于多个network,这与Neutron的约束是矛盾的,如下图:
那么这个问题怎样解决呢?
这里先引入几种不太合适的方案,以此引出TrunkNetworking的设计。
一 一个VM多个Port
一个VM具有多个Port,这个很正常,而且这个方案还不打破Neutron原来的模型和实现方案。如下图: