和vlan相关的IEEE标准为IEEE802.1Q 

基本以太网帧结构如下:


相对于普通以太网帧,扩展以太网帧多了4个字节,Vlan帧在源Mac地址后添加了一个2byte长的Tag字段。这个字段具体又分为:



TPID: tag protocal ID为固定值:0x8100
priority: 3bits长,有8个优先级
CFI: 规范为0,非规范为1
Vlan ID: 12bits长,取值1~4094

这个tag非常重要,目前虽然有很多种形式的Vlan,如:基于端口的Vlan,基于Mac的Vlan,基于协议的Vlan等等,但是最终都会转换到tag上来。

最常用的是基于端口的Vlan,由此引出几种不同的端口类型:access/trunk/hybrid

Access端口只能属于一个Vlan,该端口接收到普通以太网帧就打上Tag,Vlan ID就是该端口所在Vlan的ID;该端口向外转发时会将Tag去掉。一般用于连接PC等非Vlan知晓设备。

Trunk口可以属于多个Vlan,该端口转发帧时除了与其PVID一致的Vlan帧不打Tag,其他的在允许的vlan列表中均tag输出。PVID就是该端口的默认Vlan的ID。一般用于交换机直接的互连。

Hybrid口也可以属于多个Vlan,但是与Trunk口不同的是,它允许多个Vlan帧打tag转发,也允许多个Vlan帧不打tag转发。使用比较灵活,基于协议的Vlan是一个例子