VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的 LAN 在逻辑上划分成多个广播域的通信技术。
VLAN 技术可以把一个物理局域网划分成多个逻辑局域网,即多个 VLAN。每个 VLAN 是一个广播域,使得 VLAN 内的主机可以互通,而 VLAN 间不能直接互通。这样,广播报文被限制在一个 VLAN 内,同时提高了网络安全性。
VLAN 标签
当一个局域网被划分为多个 VLAN 时,每个 VLAN 都用一个唯一的 VLAN 标签来标识。VLAN 标签也称为 VLAN Tag 或 802.1Q Tag。
IEEE 802.1Q 标准对传统 Ethernet 帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入 4 字节的 802.1Q Tag,形成了 VLAN 的帧格式。

- TPID:Tag Protocol Identifier,用来判断本 VLAN 帧是否带有 802.1Q Tag,缺省取值为 0x8100,表示 802.1Q Tag 帧。
- PRI:Priority,表示帧的优先级,取值范围为
0-7,值越大优先级越高。用于当设备阻塞时,优先发送优先级高的数据帧。 - CFI:Canonical Format Indicator,表示MAC地址是否是标准格式,取值范围为0或1,缺省取值为0。取值为0表示MAC地址以标准格式封装,取值为1表示MAC地址以非标准格式封装。
- VID:VLAN ID,表示该帧所属的VLAN,取值范围为
0-4095。由于 0 和 4095 为协议保留取值,所以VLAN ID的有效取值范围为1-4094。
数据帧分类
数据帧根据是否携带 VLAN Tag,分为以下两种形式:
Tagged 帧
- 有标记帧
- 加入了 4 字节 802.1Q Tag 的帧
Untagged 帧
- 无标记帧
- 原始的、未加入 4 字节 802.1Q Tag 的帧
链路类型
VLAN 组网中的链路包括:

Access Link
- 接入链路
- 连接不能或不需要识别 VLAN Tag 的终端设备
Trunk Link
- 干道链路
- 其上通过的数据帧都必须打上 VLAN Tag
接口类型
根据对 VLAN 帧的识别情况,将接口分为以下几类:
Access 接口
- 用来连接终端设备的接口,这些终端设备不能或者不需要识别 VLAN Tag
- 如果该接口收到 Untagged 帧,设备将强制加上该接口的 PVID(缺省VLAN)
- 如果该接口收到 Tagged 帧,只允许 VLAN ID 与接口的 PVID(缺省VLAN)相同的 VLAN 帧通过
- Access 接口发送的数据帧永远是 Untagged 帧
Trunk 接口
- 允许多个 VLAN 的 Tagged 帧通过
- 该接口发送的帧,VLAN ID = PVID 的是 Untagged 帧,其它 VLAN 的帧都必须是 Tagged 帧
Hybrid 接口
- 允许多个VLAN 的 Tagged 帧通过
- 在出接口方向可根据需要设置某些 VLAN 内的帧带 Tag,某些 VLAN 内的帧不带 Tag
QinQ 接口
- 给数据帧加上双重 VLAN Tag
缺省 VLAN
PVID (Port Default VLAN ID)
Access接口只属于1个VLAN,它的缺省VLAN就是它所在的VLAN。
Hybrid 接口和 Trunk 接口属于多个 VLAN,但是缺省VLAN只有1个,所以需要设置缺省VLAN。
同一 VLAN 内的互通
同设备 VLAN 内互通
用户主机 Host1 和 Host2 连接在同台设备上,属于同一VLAN2,且位于相同网段,连接接口均设置为Access接口。

跨设备 VLAN 内互通
用户主机Host1和Host2连接在不同的设备上,属于同一个VLAN2,且位于相同网段。为了识别和发送跨越设备的数据帧,设备与设备间通过 Trunk link 连接,且允许携带 VLAN2 的报文通过。

不同 VLAN 间的互通
同设备VLAN间互通(VLANIF接口)
用户主机Host1和Host2连接在同台设备上,分别属于VLAN2和VLAN3,并位于不同的网段。在DeviceA上分别创建VLANIF2和VLANIF3并配置其IP地址,然后将用户主机的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。

跨设备VLAN间互通(VLANIF接口)
由于VLANIF接口的IP地址只能在设备上生成直连路由,当不同VLAN的用户跨多台设备互访时,除配置VLANIF接口的IP地址外,还需要配置静态路由或运行动态路由协议。
用户主机Host1和Host2连接在不同的设备上,分别属于VLAN2和VLAN3,并位于不同的网段。
主机与设备之间使用Access接口,设备之间使用Trunk接口。
在DeviceA上分别创建VLANIF2和VLANIF4,配置其IP地址为10.1.1.1和10.1.4.1;在DeviceB上分别创建VLANIF3和VLANIF4,配置其IP地址为10.1.2.1和10.1.4.2
在DeviceA和DeviceB上分别配置静态路由。DeviceA上静态路由的目的网段是10.1.2.0/24,下一跳是10.1.4.2;DeviceB上静态路由的目的网段是10.1.1.0/24,下一跳是10.1.4.1。

同设备VLAN间互通(三层子接口)
用户主机属于不同的VLAN,并位于不同的网段。
其中,Host1和Host2属于VLAN2,Host3和Host4属于VLAN3,DeviceA通过以太网接口interface1与DeviceB相连。
在DeviceA的interface1上创建2个子接口interface1.1和interface1.2,并配置802.1Q封装与VLAN2和VLAN3分别对应。
配置子接口的IP地址,保证两个子接口对应的IP地址路由可达,并将用户设备的缺省网关设置为所属VLAN对应子接口的IP地址。
