5. VLAN 原理与配置

5. VLAN 原理与配置

网络基础第五课

什么是 VLAN

广播域越大,网络安全问题和垃圾流量问题就越严重。

为了解决广播域带来的问题,人们引入了 VLAN (Virtual Local Area Network),即虚拟局域网技术:

通过在交换机上部署 VLAN,可以将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域,由此可以有效地提升网络的安全性,同时减少垃圾流量,节约网络资源。

VLAN 的特点

  • 一个 VLAN 就是一个广播域,所以在同一个 VLAN 内部,计算机可以直接进行二层通信;而不同 VLAN 内的计算机,无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个 VLAN 内。

  • VLAN 的划分不受地域的限制。

  • 注:二层,即数据链路层。

VLAN 的好处

  • 灵活构建虚拟工作组:用 VLAN 可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

  • 限制广播域:广播域被限制在一个 VLAN 内,节省了带宽,提高了网络处理能力。

  • 增强局域网的安全性:不同 VLAN 内的报文在传输时是相互隔离的,即一个 VLAN 内的用户不能和其它 VLAN 内的用户直接通信。

  • 提高了网络的健壮性:故障被限制在一个 VLAN 内,本 VLAN 内的故障不会影响其他 VLAN 的正常工作。

VLAN 的基本原理

VLAN 标签

交换机如何识别接收到的数据帧属于哪个 VLAN?

  • 要使交换机能够分辨不同 VLAN 的报文,需要在报文中添加标识 VLAN 信息的字段。

  • IEEE 802.1Q 协议规定,在以太网数据帧中加入 4 个字节的 VLAN 标签,又称 VLAN Tag,简称 Tag。

VLAN 数据帧

在一个 VLAN 交换网络中,以太网帧主要有以下两种形式:

  • 有标记帧(Tagged 帧):IEEE 802.1Q 协议规定,在以太网数据帧的目的MAC 地址和源 MAC 地址字段之后、协议类型字段之前加入 4 个字节的 VLAN 标签(又称 VLAN Tag,简称 Tag)的数据帧。

  • 无标记帧(Untagged 帧):原始的、未加入 4 字节 VLAN 标签的数据帧。

VLAN 数据帧中的主要字段

  1. TPID:2 字节,Tag Protocol Identifier(标签协议标识符),表示数据帧类型。

    • 取值为 0x8100 时表示 IEEE 802.1Q 的 VLAN 数据帧。如果不支持 802.1Q 的设备收到这样的帧,会将其丢弃。

    • 各设备厂商可以自定义该字段的值。当邻居设备将 TPID 值配置为非 0x8100 时,为了能够识别这样的报文,实现互通,必须在本设备上修改 TPID 值,确保和邻居设备的 TPID 值配置一致。

  2. PRI:3 bit,Priority,表示数据帧的优先级,用于 QoS。

    • 取值范围为 0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。
  3. CFI(标准格式指示符):在以太网环境中,该字段的值为 0。

  4. VLAN ID(VLAN标识符):标识该帧所属的 VLAN。

VLAN 的划分方式

计算机发出的数据帧不带任何标签。对已支持 VLAN 特性的交换机来说,当计算机发出的 Untagged 帧一旦进入交换机后,交换机必须通过某种划分原则把这个帧划分到某个特定的 VLAN 中去。

VLAN 的划分包括如下 5 种方法:

  • 基于接口划分:根据交换机的接口来划分 VLAN。

    网络管理员预先给交换机的每个接口配置不同的 PVID,当一个数据帧进入交换机时,如果没有带 VLAN 标签,该数据帧就会被打上接口指定 PVID的标签,然后数据帧将在指定 VLAN 中传输。

  • 基于 MAC 地址划分:根据数据帧的源 MAC 地址来划分 VLAN。

    网络管理员预先配置 MAC 地址和 VLAN ID 映射关系表,当交换机收到的是 Untagged 帧时,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。

  • 基于 IP 子网划分:根据数据帧中的源 IP 地址和子网掩码来划分 VLAN。

    网络管理员预先配置 IP 地址和 VLAN ID 映射关系表,当交换机收到的是 Untagged 帧,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。

  • 基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分 VLAN。

    网络管理员预先配置以太网帧中的协议域和 VLAN ID 的映射关系表,如果收到的是 Untagged 帧,就依据该表给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。

  • 基于策略划分:根据配置的策略划分 VLAN,能实现多种组合的划分方式,包括接口、MAC 地址、IP 地址等。

    网络管理员预先配置策略,如果收到的是 Untagged 帧,且匹配配置的策略时,给数据帧添加指定 VLAN 的标签,然后数据帧将在指定 VLAN 中传输。

以太网二层接口类型

Access 接口

交换机上常用来连接用户 PC、服务器等终端设备的接口。Access 接口所连接的这些设备的网卡往往只收发无标记帧。Access 接口只能加入一个 VLAN。

  • Access 接口特点:

    仅允许 VLAN ID 与接口 PVID 相同的数据帧通过。

  • Access 接口接收数据帧:

    当 Access 接口从链路上收到一个 Untagged 帧,交换机会在这个帧中添加上 VID 为 PVID 的 Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃)。

    当 Access 接口从链路上收到一个 Tagged 帧,交换机会检查这个帧的 Tag 中的 VID 是否与 PVID 相同。如果相同,则对这个 Tagged 帧进行转发操作;如果不同,则直接丢弃这个 Tagged 帧。

  • Access 接口发送数据帧:

    当一个 Tagged 帧从本交换机的其他接口到达一个 Access 接口后,交换机会检查这个帧的 Tag 中的 VID 是否与 PVID 相同:

    1. 如果相同,则将这个 Tagged 帧的 Tag 进行剥离,然后将得到的 Untagged 帧从链路上发送出去;

    2. 如果不同,则直接丢弃这个 Tagged 帧。

Trunk 接口

Trunk 接口一般用于连接交换机、路由器、AP 以及可同时收发 Tagged 帧和 Untagged 帧的语音终端。

对于 Trunk 接口,除了要配置 PVID 外,还必须配置允许通过的 VLAN ID 列表,其中 VLAN 1 是默认存在的。

  • Trunk 接口特点:

    1. Trunk 接口仅允许 VLAN ID 在允许通过列表中的数据帧通过。

    2. Trunk 接口可以允许多个 VLAN 的帧带 Tag 通过,但只允许一个VLAN 的帧从该类接口上发出时不带 Tag(即剥除 Tag)。

  • Trunk 接口接收数据帧:

    1. 当 Trunk 接口从链路上收到一个 Untagged 帧,交换机会在这个帧中添加上 VID 为 PVID 的 Tag,然后查看 PVID 是否在允许通过的 VLAN ID 列表中。如果在,则对得到的 Tagged 帧进行转发操作;如果不在,则直接丢弃得到的 Tagged 帧。

    2. 当 Trunk 接口从链路上收到一个 Tagged 帧,交换机会检查这个帧的 Tag 中的 VID 是否在允许通过的 VLAN ID 列表中。如果在,则对这个 Tagged 帧进行转发操作;如果不在,则直接丢弃这个 Tagged 帧。

  • Trunk 接口发送数据帧:

    1. 当一个 Tagged 帧从本交换机的其他接口到达一个 Trunk 接口后,如果这个帧的 Tag 中的 VID 不在允许通过的 VLAN ID 列表中,则该 Tagged 帧会被直接丢弃。

    2. 当一个 Tagged 帧从本交换机的其他接口到达一个 Trunk 接口后,如果这个帧的 Tag 中的 VID 在允许通过的 VLAN ID 列表中,则会比较该 Tag 中的 VID 是否与接口的 PVID 相同:

      • 如果相同,则交换机会对这个 Tagged 帧的 Tag 进行剥离,然后将得到的 Untagged 帧从链路上发送出去;

      • 如果不同,则交换机不会对这个 Tagged 帧的 Tag 进行剥离,而是直接将它从链路上发送出去。

Hybrid 接口

  • Hybrid 接口既可以用于连接不能识别 Tag 的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发 Tagged 帧和 Untagged 帧的语音终端、AP。

  • 华为设备默认的接口类型是 Hybrid。

VLAN 的配置示例

  1. 关联 MAC 地址与 VLAN

     [Huawei-vlan10] mac-vlan mac-address mac-address [ mac-address-mask | mac-address-mask-length ]
    

    通过此命令配置 MAC 地址与 VLAN 关联。

    • mac-address:指定与 VLAN 关联的 MAC 地址。格式为 H-H-H。其中 H 为 4 位的十六进制数,可以输入 1~4 位,如 00e0、fc01。当输入不足 4 位时,表示前面的几位为 0,如:输入 e0,等同于 00e0。MAC 地址不可设置为 0000-0000-0000、FFFF-FFFF-FFFF 和组播地址。

    • mac-address-mask:指定 MAC 地址掩码。格式为 H-H-H,其中 H 为 1 至 4 位的十六进制数。

    • mac-address-mask-length:指定 MAC 地址掩码长度。整数形式,取值范围是 1~48。

  2. 使能MAC地址与VLAN

     [Huawei-GigabitEthernet0/0/1] mac-vlan enable
    

通过此命令使能接口的 MAC VLAN 功能。

Comment