VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的 LAN 在逻辑上划分成多个广播域的通信技术。

VLAN 技术可以把一个物理局域网划分成多个逻辑局域网,即多个 VLAN。每个 VLAN 是一个广播域,使得 VLAN 内的主机可以互通,而 VLAN 间不能直接互通。这样,广播报文被限制在一个 VLAN 内,同时提高了网络安全性。

VLAN 标签

当一个局域网被划分为多个 VLAN 时,每个 VLAN 都用一个唯一的 VLAN 标签来标识。VLAN 标签也称为 VLAN Tag802.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 组网中的链路包括:

  • 接入链路
  • 连接不能或不需要识别 VLAN Tag 的终端设备
  • 干道链路
  • 其上通过的数据帧都必须打上 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地址。