VLAN¶
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。
把一个LAN划分成多个逻辑的VLAN,
每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,
而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。

优点¶
- 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
- 增强局域网的安全性:不同VLAN内的报文在传输时相互隔离,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
- 提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
- 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
VLAN和子网的区别¶

报文格式¶
IEEE802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签(又称VLAN Tag),用以标识VLAN信息。

| 字段 | 长度 | 含义 | 说明 |
|---|---|---|---|
| TPID | 2字节 | Tag Protocol Identifier,表示数据帧类型 | 取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。 或者自定义. VLAN数据帧的TPID与不带VLAN标记的帧的协议类型字段位置相同,注意取值 |
| PRI | 3bit | Priority,表示数据帧的802.1p优先级 | 范围0~7,值越大优先级越高 |
| CFI | 1bit | Canonical Format Indicator | 以太网中,CFI的值为0 |
| VID | 12bit | VLAN ID,该帧所属的VLAN编号 | 范围是0~4095.0和4095为保留值 |

交换机VLAN接口类型与处理机制¶
由于交换机内部只处理Tagged帧
VLAN帧形式¶
- 无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。
- 有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
交换机Access接口¶
Access接口一般和不能识别Tag的用户终端相连
access口只能属于一个vlan(默认是0)
当Access接口收到带有Tag的帧,并且帧中VID与PVID相同时,Access接口也能接收并处理该帧。
当Access接口收到带有Untagged Tag的帧后,添加VLAN Tag(默认是vlan 0)
在发送带有Tag的帧前,Access接口会剥离Tag。
Trunk接口¶
Trunk接口一般用于可识别Tag的设备相连
Trunk口可以支持多个vlan标签,即它允许多个不同VID的VLAN帧通过
当Trunk接口收到Untagged帧时,会为Untagged帧打上,默认VLAN Tag。
当Trunk接口收到不支持的VLANtag报文时,将直接丢弃。
Hybrid接口¶
Hybrid接口既可以同时和不能识或识别Tag的设备相连。
它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
VLAN的相关协议¶
IEEE 802.1Q¶
IEEE 802.1Q(也被称为Dot1q)即Virtual Bridged Local Area Networks协议,规定了VLAN的实现标准。与标准的以太网数据帧相比,VLAN数据帧增加了1个4字节的VLAN标签。
LNP¶
链路类型协商协议(Link-type Negotiation Protocol,LNP)用来动态协商以太网接口的链路类型为Access或者Trunk。
以太网接口的链路类型协商为Access,缺省情况下加入VLAN1。
以太网接口的链路类型协商为Trunk,缺省情况下加入VLAN1~4094。
QinQ¶
QinQ(802.1Q-in-802.1Q)协议出自IEEE 802.1ad标准协议
通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。
由于在骨干网中传递的报文有两层802.1Q Tag(一层公网Tag,一层私网Tag),即802.1Q-in-802.1Q,所以称之为QinQ协议。
在公网的传输过程中,设备只根据外层VLAN Tag转发报文,并根据报文的外层VLAN Tag进行MAC地址学习,
而用户的内层VLAN Tag将被当作报文的数据部分进行传输。
QinQ的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。
TPID¶
不同运营商的系统可能将QinQ帧外层VLAN标记的TPID设置为不同值。
为实现与这些系统的兼容性,可以修改TPID值,使QinQ帧发送到公网时,承载与特定运营商相同的TPID值