在 Open vSwitch 环境中,一个数据包从 instance 发送到物理网卡大致会经过下面几个类型的设备:
-
tap interface 命名为 tapXXXX。
-
linux bridge 命名为 qbrXXXX。
-
veth pair 命名为 qvbXXXX, qvoXXXX。
-
OVS integration bridge 命名为 br-int。
-
OVS patch ports 命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。
-
OVS provider bridge 命名为 br-ethX(X 为 interface 的序号)。
-
物理 interface 命名为 ethX(X 为 interface 的序号)。
-
OVS tunnel bridge 命名为 br-tun。
OVS provider bridge 会在 flat 和 vlan 网络中使用;OVS tunnel bridge 则会在 vxlan 和 gre 网络中使用。
1.1 VXLAN实现模型
出报文的转换过程
- 虚拟机(VM)发出Untag报文
- 经过qbr-xxx后,依然是Untag报文
- 进入br-int时,打上VLANID=N的标签
- 离开br-int时,VLANID=N
- 进入br-tun,VLANID=N
- 离开时,VLAN封装为VXLAN,且VNI=M
注:出br-tun时,VLAN变为VXLAN,并转为VNI=100。
入报文的转换过程
- 报文从host到br-tun之前,是VXLAN报文,VNI=M;
- 进入到br-tun时,被转换为VLAN报文,VLANID=N;
- 从br-tun离开到进入br-int后,都是tag报文,VLANID=N;
- 出br-int时,变为Untag;
- 通过qbr-xxx进入到虚拟机(VM)
1.2 vlan实现模型
与VXLAN实现模型基本相同,只不过将br-tun变为br-ethx。
与VXLAN实现模型基本相同,只不过将br-tun变为br-ethx。

出报文的转换过程
- 虚拟机(VM)发出后为Untag报文
- 经过qbr-xxx后,还是Untag报文
- 在进入br-int时,被打上标签,VLANID=N,且离开br-int时依然是VLANID=N
- 在进入br-ethx时,打上VLANID=M的标签
- 离开br-ethx时,即离开主机Host时,VLANID=M。
即在br-int时打上标签变为tag,在br-ethx上打上标签进行报文的ID转换。
入报文的转换过程
- 从Host进入到br-ethx,为tag报文,VLANID=M;
- 离开br-ethx时,VLANID=N;
- 进入br-int时,VLANID=N;
- 出br-int时,变为Untag;
- 通过qbr-xxx进入虚拟机(VM)