今天我们来单独聊一聊华为交换机的默认接口类型——hybrid
Hybrid,翻译过来有混合、混杂的意思,顾名思义,它既可以实现access端口的功能,又可以实现trunk链路的功能,是华为私有的一种技术。相对于access接口和trunk接口而言,hybrid接口有着更高的灵活性,在利用hybrid接口承载多vlan流量时,可以设置多个vlan打标或不打标,利用多vlan不打标的特性,即使不借助三层设备进行路由,也可以实现不通vlan之间的互相访问。
那么hybrid接口的具体实现原理是什么呢?这就要了解到hybird接口的三个信息pvid、untag、tag,下面我们一边进行试验一边理解。
Pvid很好理解,类似于我们Access端口划分到了哪一个vlan,PVID就可以简单的理解为hybrid接口所属的vlan。当一个数据帧进入接口的时候,交换机会先检查数据帧是否携带标签,如果数据帧没有携带标签则打上pvid,如果有携带标签就对应检查是否在tag列表内
我们将pc1和pc3划入vlan10,pc2和pc4划入vlan20,注意默认的hybrid接口属于vlan1,相当于存在port hybrid pvid vlan 1和port hybrid untag vlan 1这两条命令
那么什么是tag和untag呢?tag就像是我们的trunk链路,当vlan流量通过的时候,会先检查是不是untag vlan,如果是将会不打标签的放行,如果不是则会检查是不是我们设置的tag vlan如果是会打上相应的tag来标记这个流量所对应的vlan,如果也不存在于tag vlan中,那么将不会放行;当hybrid接口接收到一个带有tag的数据帧时也会检查是否是我们设置的tag vlan,如果是才接收,不然将会丢弃。
可以看到,当我们在交换机之间的hybrid接口进行配置,给vlan10和vlan20打上相应的标签,且通过抓包我们可以看到打的标签就是802.1q的标签,实现了我们之前提到过的trunk链路的一条链路承载多个vlan流量的功能,这里hybrid默认pvid是vlan1,并且默认vlan1不打标,就相当于本征vlan。
那么untag和本征vlan有什么区别呢?我们通常说的本征vlan在一个trunk链路中只能有一个且两端必须配置相同。而hybrid中的untag可以有多个,并且可以两端不同,这就可以实现不通过三层设备而实现vlan间的互访
我们在交换机之间的链路一段untag vlan 10另一端untag vlan 20,可以看到处在vlan10的pc1可以访问另一交换机上处在vlan20的pc4,而由于没有放行tag或untag vlan10,所以不能访问对面处在vlan10的pc3
我们还可以将switch2的vlan10也untag,这时候我们测试发现,sw1上处在vlan10的pc1实现了同时可以访问sw2上处在vlan10的pc3和处在vlan20的pc4,而由于pc2未经过我们中间的hybrid链路处理,所以处在vlan10的pc1不能访问处在vlan20的pc2