什么是 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 数据帧中的主要字段
-
TPID:2 字节,Tag Protocol Identifier(标签协议标识符),表示数据帧类型。
-
取值为 0x8100 时表示 IEEE 802.1Q 的 VLAN 数据帧。如果不支持 802.1Q 的设备收到这样的帧,会将其丢弃。
-
各设备厂商可以自定义该字段的值。当邻居设备将 TPID 值配置为非 0x8100 时,为了能够识别这样的报文,实现互通,必须在本设备上修改 TPID 值,确保和邻居设备的 TPID 值配置一致。
-
-
PRI:3 bit,Priority,表示数据帧的优先级,用于 QoS。
- 取值范围为 0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。
-
CFI(标准格式指示符):在以太网环境中,该字段的值为 0。
-
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 相同:
-
如果相同,则将这个 Tagged 帧的 Tag 进行剥离,然后将得到的 Untagged 帧从链路上发送出去;
-
如果不同,则直接丢弃这个 Tagged 帧。
-
Trunk 接口
Trunk 接口一般用于连接交换机、路由器、AP 以及可同时收发 Tagged 帧和 Untagged 帧的语音终端。
对于 Trunk 接口,除了要配置 PVID 外,还必须配置允许通过的 VLAN ID 列表,其中 VLAN 1 是默认存在的。
-
Trunk 接口特点:
-
Trunk 接口仅允许 VLAN ID 在允许通过列表中的数据帧通过。
-
Trunk 接口可以允许多个 VLAN 的帧带 Tag 通过,但只允许一个VLAN 的帧从该类接口上发出时不带 Tag(即剥除 Tag)。
-
-
Trunk 接口接收数据帧:
-
当 Trunk 接口从链路上收到一个 Untagged 帧,交换机会在这个帧中添加上 VID 为 PVID 的 Tag,然后查看 PVID 是否在允许通过的 VLAN ID 列表中。如果在,则对得到的 Tagged 帧进行转发操作;如果不在,则直接丢弃得到的 Tagged 帧。
-
当 Trunk 接口从链路上收到一个 Tagged 帧,交换机会检查这个帧的 Tag 中的 VID 是否在允许通过的 VLAN ID 列表中。如果在,则对这个 Tagged 帧进行转发操作;如果不在,则直接丢弃这个 Tagged 帧。
-
-
Trunk 接口发送数据帧:
-
当一个 Tagged 帧从本交换机的其他接口到达一个 Trunk 接口后,如果这个帧的 Tag 中的 VID 不在允许通过的 VLAN ID 列表中,则该 Tagged 帧会被直接丢弃。
-
当一个 Tagged 帧从本交换机的其他接口到达一个 Trunk 接口后,如果这个帧的 Tag 中的 VID 在允许通过的 VLAN ID 列表中,则会比较该 Tag 中的 VID 是否与接口的 PVID 相同:
-
如果相同,则交换机会对这个 Tagged 帧的 Tag 进行剥离,然后将得到的 Untagged 帧从链路上发送出去;
-
如果不同,则交换机不会对这个 Tagged 帧的 Tag 进行剥离,而是直接将它从链路上发送出去。
-
-
Hybrid 接口
-
Hybrid 接口既可以用于连接不能识别 Tag 的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发 Tagged 帧和 Untagged 帧的语音终端、AP。
-
华为设备默认的接口类型是 Hybrid。
VLAN 的配置示例
-
关联 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。
-
-
使能MAC地址与VLAN
[Huawei-GigabitEthernet0/0/1] mac-vlan enable
通过此命令使能接口的 MAC VLAN 功能。