一个Bridge可以抽象为两部分:交换模块和接口,如下所示:
在此介绍接口在报文的进与出时,Bridge接口关于VLANID的处理方式。
处理方式有三种模式:Access、Trunk、Hybrid。这三种模式都是报文在进入或者离开接口时,针对报文的VLANID的处理策略。
一名词介绍
Tag报文:指的是报文中有VLANID,简称Tag。
Untag:指的是报文中没有VLANID,简称Untag。
VID:就是VLANID。
PVID:基于VID的端口,PVID与报文无关,是Bridge端口的一种属性,简单的说,就是端口的默认VLANID。
DefaultVID:端口默认VLANID,也可以称为PVID。Bridge端口默认VLANID,默认取值为“1”,也可以修改为其他默认值。
VLANNative:这个是Cisco创造的名词。就是默认VID,即PVID。
二Bridge的三种接口模式:Access、Trunk、Hybrid
Access接口模式
报文进入和离开Bridge的Access模式接口如下:
报文入接口原则
针对Tag报文:直接丢弃。
针对Untag报文:打上DefaultVIDTag,送入交换模块。
报文出接口原则
从交换模块转发到端口带有Tag标签的报文,先去除Tag,再从接口出去。
Trunk接口模式
报文进入和离开Bridge的Trunk模式接口的情况如下:
Trunk模式,首先要配置允许进入接口的VLANID列表,比如配置为:10,130~50,表示允许这些VLANID可以进入端口,其他则不允许进入。
报文入接口原则
针对Tag报文,VLANID不在Trunk允许范围内:直接丢弃。
针对Tag报文,VLANID在Trunk允许范围内:送入进入交换模块,并且VLANID保持不变。
针对Untag报文:打上DefaultVIDTag,送入交换模块。
报文出接口原则
从交换模块转发到端口的带有Tag标签的报文,如果VLANID等于DefaultVID,先去除Tag,再从接口出去。
从交换模块转发到端口的带有Tag标签的报文,如果VLANID不等于DefaultVID,则不去除Tag,VLANID保持不变,再从接口出去。
Hybrid接口模式
Hybrid模式,在Trunk模式的基础上又多了一部分内容。Trunk模式,在报文出接口时,如果VLANID等于defaultVID,那么VLANTag会去除。而Hybird模式,允许配置哪些VLANID的报文,在出接口时,需要去除VLANTag,比如配置在VLANID在40~50这个范围内容的报文,但其出接口,VLANTag要去除。如下所示:
报文入接口原则。
针对Tag报文,VLANID不在Trunk允许范围内:直接丢弃。
针对Tag报文,VLANID在Trunk允许范围内:送入进入交换模块,并且VLANID保持不变。
针对Untag报文:打上DefaultVIDTag,送入交换模块。
报文出接口原则
从交换模块转发到端口的带有Tag标签的报文,如果VLANID等于DefaultVID,先去除Tag,再从接口出去。
从交换模块转发到端口的带有Tag标签的报文,如果VLANID在去除VID范围内,先去除Tag,再从接口出去。
从交换模块转发到端口的带有Tag标签的报文,如果VLANID不在去除标签VID范围内,也不等于DefaultVID,则不去除Tag,VLANID保持不变,再从接口出去。
三VLAN接口模式的应用举例
Access接口模式的典型场景是:Bridge对接Host或者VM。Trunk或Hybrid接口模式的典型使用场景是:Bridge之间的对接。Hybrid模式比Trunk模式更加灵活。两种典型场景,如下:
Neutron计算节点中的几个Bridge,它们的VLAN接口模式与这种典型使用场景也非常吻合,如下:
中VM发出的报文是untag报文。qbr实际起到的是安全作用,并不是真正承担Bridge作用,而且与VM是1:它的接口VLAN模式是Access。
抛开安全不谈,我们可以把qbr当做一根线。这个时候我们看到:br-int下接VM,上接br-ethx。br-int与qbr/VM对接的接口,其接口VLAN模式是Access,而br-int与br-ethx,属于Bridge之间互连,所以它们之间的接口都是Trunk模式。
两个计算节点之间的br-ethx互连也是属于Bridge之间的互联,所以它们之间的接口也是属于trunk模式。
文章为作者独立观点,不代表股票交易接口观点