这里说的Vlan是符合IEEE 802.1Q标准的Vlan。
其帧结构以下:
|DA|SA|tag|Type|Date|CRC|
相对于普通以太网帧,Vlan帧在源Mac地址后添加了一个4byte长的Tag字段。这个字段具体又分为:
|TPID|priority|CFI|Vlan ID|
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,其余的均须要打上tag。PVID就是该端口的默认Vlan的ID。通常用于交换机直接的互连。
Hybrid口也能够属于多个Vlan,可是与Trunk口不一样的是,它容许多个Vlan帧打tag转发,也容许多个Vlan帧不打tag转发。使用比较灵活,基于协议的Vlan是一个例子。
ide