对于 ovs bridge “br-eth1” 和其上桥接的 port “eth1” 我们应该不会感到意外,这是前面配置的结果。然而除此之外,br-int 和br-eth1 分别多了一个 port “int-br-eth1” 和“phy-br-eth1”,而且这两个 port 都是 “patch” 类型,同时通过 “peer” 指向对方。这表明:br-int 与br-eth1 这两个网桥通过 int-br-eth1 和phy-br-eth1 连接在一起了。其网络结构如下图所示:
这里可以看到网桥br-int 与br-eth1之间是通过patch port 连接在一起,而不是veth pair。总的看来,patch port 是ovs bridge 自己特有的 port 类型,只能在 ovs 中使用。如果是连接两个 ovs bridge,优先使用 patch port,因为性能更好。对于ovs网桥之间可以使用patch port,性能更好,除外其他情况一般只能使用veth pair进行网桥连接。
通过对比flat网络类型与local网络类型可以发现,flat网络类型相对而言只是多了一个自己创建的网桥(对应某块物理网卡),DHCP的TAP设备都是挂在br-int这个默认集成网桥上,OVS网桥通过patch port与br-int网桥进行连接,br-int网桥再通过veth pair与关联实例tap设备的qbr网桥连接。从而完成了VM实例间接连接到了br-xxx网桥(创建的对应物理网卡的网桥)。其网络结构图如下所示:
3.1.5 Vlan Network
在Open vSwitch 实现方式下,不同 vlan instance 的虚拟网卡都接到 br-int (集成网桥)上。这一点与 linux bridge 非常不同,linux bridge 是不同 vlan (类似网卡子接口如eth1.100等)接到不同的网桥上。配置方式上,Open vSwitch方式是对应网桥(如下),而linux-bridge是对应物理网卡,另外OVS还需要通过ovs-ovctl创建网桥,并在网桥关联相应网卡。其他配置基本都一样,就不再展开说了。
通过创建网络、实例VM,通过ovs-ovctl查看可以发现这种网络其实和local网络也比较类似,创建的DHCP的TAP