主要名词介绍:
br-int (bridge-integration),综合网桥,常用于表示实现主要内部往来功能的网桥
bridge,网桥,在Linux中用于表示一个能链接不同网络设备的虚拟设备,Linux传统实现的网桥类似一个Hub设备,而OVS管理的网桥一般类似交换机。
veth: 虚拟Ethernet接口,通常以pair的方式出现。一端发出的网包会被另一端接收,可以形成2个网桥之间的通道
vlan模式下的上图理解:
在vlan模式下。vlan tag的转换需要在br-int和br-eth1 两个网桥进行相互配合,即br-int负责从int-br-eth1过来的包(带外部vlan)转换为内部vlan,而br-eth1负责从phy-br-eth过来的包(带内部vlan)转化为外部的vlan。
br-int 负责租户的隔离,br-eth1负责跟计算节点外的网络通信,在vlan模式下,租户的流量隔离是通过vlan来进行的,因此此时包括2中vlan,虚拟机在计算节点(computeNode)内流量带有的local vlan和计算节点(compute node)之外物理网络上隔离不同租户的vlan
br-int 和br-eth1 分别对从端口int-br-eth1 和phy-br-eth1上到达的网包进行vlan tag的处理,此处有2个网,分别带有2个vlan tag。
在上图中,我们将br-internal 和internal进行关联,这里internal代表常规网卡,使用ovs-vsctl add-port br-internal internal实现把数据网络添加到br-internal里。上图管理网络为ovirtmgmt
上图将桥接画成一个框,桥接与其上层对应于主机网络栈的设备之间用一条双横线+========+来分割,将桥接当做一个二层交换机,同样的做法对待ovs的虚拟交换,当在主机中新建一个虚拟交换同时,该虚拟交换上便会有一个接口连结至主机的网络栈,如果将主机上某个网卡连接至虚拟交换上,则测试主机的网络栈与该网卡已经毫无关系,主机网络栈通过一个虚拟的接口连接至该该虚拟交换/网桥,通常这个接口的名称会和网桥同名,所以容易混淆。这点上。ovs的internel port概念比起linux bridge的好理解很多,这也是为什么当桥接之后,不应该在原来的网卡上设置ip地址的原因,因为此时该网络和主机的网络栈毫无关系,我们此时应该将主机的ip地址设置在该虚拟交换接口上,即通常和该网桥同名的设备上,简而言之,ip地址应该被设置在连接网络栈的设备上。
通过观察上图的中间上方的交换机以及连接情况,我们可知,ovirt-engine 用过访问这个网络同时访问主机的网络栈(vdsm工作监听),以及Neutron appliance虚拟机中的网络栈(Neutron server在此监听),从网络的角度上看,图中有个Network Stack 部分属于具体的机器(物理机/虚拟机),其他部分可以视为不属于主机的网络设备,只不过有物理和虚拟化的区别而已。