PC发送的以太网数据帧进入交换机端口会被打上VLAN Tag(4byte),当一个以太网帧被打上VLAN Tag,就变成了802.1Q格式的VLAN帧。
PC一般不能识别802.1Q格式的帧,收发的都是无标记帧(untagged frame)。
支持802.1Q的交换机既可以收发有标记帧(tagged frame),也可以收发无标记帧(untagged frame);
交换机内部的数据包一律携带Tag。
VLAN Tag有四个字段:
- TPID:16bit,表示帧类型,取值为0x8100时表示为802.1Q格式的帧。不支持802.1Q的设备收到会丢弃。
- PRI:3bit,表示帧的优先级,取值范围0~7,数值越大优先级越高。当交换机部署QoS时生效,优先发送优先级高的数据帧。
- CFI:1bit,表示帧是否是经典格式,取值0(经典格式)或1(非经典格式)。以太网中取值0。
- VID:12bit,表示该帧所属的VLAN。
PVID表示端口缺省所属VLAN,缺省值为1。
了解了上述知识后,VLAN的端口类型将更容易理解。
access端口
接收:端口收到无标记帧后会打上该端口的PVID,收到有标记帧后检查VLAN Tag的VID与PVID是否一致,不同则丢弃。
将端口加入新的VLAN后,PVID会变成新VLAN的编号。
发送:端口发送数据帧时会先剥离VLAN Tag再发送。
因此access端口常用在连接主机的接口。
trunk端口
接收:端口收到无标记帧后会打上该端口的PVID,然后检查PVID是否在允许通过的VLAN ID列表中,不在则丢弃。收到有标记帧后检查VLAN Tag的VID是否在允许通过的VLAN ID列表中,不在则丢弃。
缺省允许缺省PVID通过,可以通过undo port trunk permit vlan 1不放行vlan1。
发送:如果VID与PVID相同且在允许通过的VLAN ID列表中,则去掉Tag后再发送;如果VID与PVID不同但在允许通过的VLAN ID列表中,则保持原有Tag发送。
因此trunk端口常用在连接交换机或路由器的接口。
hybrid端口
接收:端口收到无标记帧后会打上该端口的PVID,然后检查PVID是否在允许通过的VLAN ID列表中,不在则丢弃。收到有标记帧后检查VLAN Tag的VID是否在允许通过的VLAN ID列表中,不在则丢弃。
缺省允许缺省PVID通过,可以通过undo port hybrid vlan 1不放行vlan1。
发送:如果VID在允许通过的VLAN ID列表中,则可以通过命令配置发送时是否携带Tag。
缺省去掉缺省PVID的Tag,tagged和untagged只在发送时生效。
因此hybrid端口既可以连接主机也可以连接交换机。