1.普通交换机的二层端口有三种常见的端口类型:access、trunk、hybird
下面我们通过分析交换机端口的进、出两个方向对VLAN tag的处理过程来详细说明这三种端口类型的区别;
access端口:
-
通过access端口的数据包都是不带VLAN tag的,且只属于一个VLAN;
-
在access端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,有则丢弃数据包,没有则打上该端口已配置的VLAN tag;
-
在access端口出方向,交换机将打了与端口相同VLAN tag的数据包转发出去,并且去掉VLAN tag变成普通数据包。
trunk端口:
-
通过trunk端口的数据包都必须带上VLAN tag;
-
在trunk端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,没有则丢弃数据包,有则按照对应VLAN进行转发;
-
在trunk端口出方向,交换机将带VLAN tag的数据包原封不动转发出去,没有带VLAN tag数据包不会从trunk端口转发出去。
-
在trunk端口上有一种特殊情况,如果配置了native VLAN(也叫PVID),转发方式等同于access端口,当从端口进来的报文不带vlan tag时,就打上Native vlan tag; 当从端口出去的报文带Native vlan tag时,会剥离TAG。
hybird端口:
-
顾名思义,这是一种混合端口,是access和trunk两种端口的混合,既可以转发无vlan tag报文,也可以转发有vlan tag报文;在hybird端口上通常会配置tag vlan和untag vlan,对于tag vlan,其转发方式与trunk口相同,对于untag vlan,其转发方式与access口相同;
-
在hybird端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,没有则丢弃,如果没有vlan tag但是配置了PVID,则打上PVID的vlan tag;有则按照对应VLAN进行转发;进方向不看untag配置;
-
在hybird端口出方向,对于配置了tag vlan的数据包,原封不动发送出去,对于端口配置了untag vlan的数据包,则去掉vlan tag再发送出去;如果是PVID的vlan,则去掉vlan tag再发送出去;
2.tagged和untagged的区别
所谓:tagged和untagged就是(是否带标签),tagged和untagged就相当于网管型交换机中通过命令配置的 trunk链路类型 和 access链路类型。
连接终端用access模式,设备之间连接用trunk模式。把access端口加入到某个VLAN,那么这个端口就只将这个VLAN的数据转发给PC,PC发送的数据通过这个端口后会打上这个VLAN的ID,转发到相同VLAN。
-
tagged:如果接收的数据包本身不包含VLAN信息的话,那么该数据包将会加上该缺省VLAN的信息;如果接收的数据包本身已经包含了VLAN信息,那么将不再添加。
-
untagged:无论接收的数据包是否已经含有VLAN信息,全部都要加上该缺省VLAN信息。
-
tagged:如果发送的数据包所含的VLAN与端口缺省的VLAN相同,那么就会把VLAN信息从该数据包中去掉;如果两者不相同,该数据包将带着原有VLAN信息一起发送出去。
-
untagged:无论端口缺省VLAN是否等于输出的数据包中的VLAN,都会将VLAN信息从该数据包中去掉
引用文章: