VLAN总结
1 概念
虚拟局域网(Virtual Local Area Network),LAN(局域网)指某一区域内由多台计算机组成的网络,受物理位置限制。而VLAN则是将一个物理LAN在逻辑上划分成多个广播域的通信技术,每一个VLAN就是一个广播域。
2 背景
为什么需要VLAN?VLAN解决了什么问题?
VLAN 出现之前,在一个局域网内的主机1向主机2发送报文,首先需要本机的ARP表,查找主机2的IP-MAC对应关系表项,若没有则需要发送ARP广播报文,交换机1接收到主机1的ARP广播报文后,转发到局域网内其他所有主机,主机2收到ARP请求后发送ARP应答。在这个场景中,主机1仅需要和主机2通信,但是广播域是整个局域网, 每台主机都要多次处理无意义的广播报文,因此整个局域网的通信效率比较低。
VLAN 技术有效限制了广播报文的传输范围,一定程度上抑制了广播风暴,提高了网络的安全性。
3 VLAN类型
针对 VALN 配置其类型时,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态VLAN”、后者是“动态VLAN”了。这些方法提供了不同的灵活性和适用场景,可以根据网络需求进行选择和组合。
| 类型 | 静/动态 | 机制 |
|---|---|---|
| 基于端口 | 静态 | 将交换机的各端口固定指派给VLAN |
| 基于MAC | 动态 | 根据各端口所连计算机的MAC地址设定 |
| 基于子网 | 动态 | 根据各端口所连计算机的IP地址设定 |
| 基于用户 | 动态 | 根据端口所连计算机上登录用户设定 |
3.1 优缺点解析
基于端口配置 VLAN 仍然广泛使用,尽管基于 IP 和 MAC 地址的 VLAN 配置在某些特定场景中提供了更大的灵活性。
- 基于端口的 VLAN 配置
- 优点:配置简单,易于管理;处理速度快,适合高流量网络
- 缺点:灵活性较低,难根据设备或流量特性动态调整VLAN;管理大量的端口配置困难,扩展性差
- 基于 IP 的 VLAN 配置
- 优点:灵活性高,适用于更复杂的网络设计(与策略路由、ACL 访问控制列表等高级功能结合,提供更细粒度的控制)
- 缺点:配置复杂,需要更多的处理和检查,可能会对网络性能产生影响
- 基于 MAC 的 VLAN 配置
- 优点:适应移动性,设备在网络中移动时无需重新配置 VLAN(例如,访客网络)
- 缺点:MAC 地址可能被伪造,带来潜在的安全隐患;管理和维护 MAC 地址表可能变得复杂
4 基于 VLAN 端口配置
上述罗列出 VLAN 的多种类型配置,然后基于端口的配置是最常用的。
需要明确的指出,VLAN ID 的来源是多样的,它能够是交换机打上的,也可以是终端设备打上的,具体取决于网络的配置和设备的类型。
- 由终端设备打上 VLAN ID 在一些网络架构中,终端设备(如服务器、工作站等)会负责在发送的数据帧中打上 VLAN ID 标签。这种情况下,数据帧到达交换机时已经带有 VLAN ID,交换机只需根据 VLAN ID 进行转发决策。
- 由交换机打上 VLAN ID 在另一些网络架构中,终端设备发送的数据帧不带 VLAN ID 标签,交换机根据端口的配置为数据帧打上 VLAN ID 标签。这通常发生在以下两种情况下:
- Access 端口:当数据帧从 Access 端口进入交换机时,如果数据帧不带 VLAN ID 标签,交换机会根据该端口的 VLAN 配置为数据帧打上对应的 VLAN ID 标签。
- Trunk 端口:当数据帧从 Trunk 端口进入交换机时,如果数据帧不带 VLAN ID 标签,交换机会根据该端口的 PVID(Port VLAN ID)为数据帧打上对应的 VLAN ID 标签。
注: PVID是交换机端口的默认VLAN ID,即缺省 VALN ID,当一个不带Tag的数据帧进入交换机时,交换机会根据该端口的PVID为数据帧打上对应的VLAN ID标签。
| 端口类型 | 场景 | 接收含TAG数据帧 | 接收不含TAG数据帧 | 发送数据帧 |
|---|---|---|---|---|
| Access | 用于连接终端设备,如计算机、打印机等 | 若报文的VLAN ID与端口的PVID相同,则接收该报文;否则丢弃 | 接收所有不带Tag的报文添加端口的PVID的Tag | 发送的数据帧始终不带Tag;剥离Tag后发送 |
| Trunk | 用于连接交换机之间的链路,允许多个VLAN的数据帧通过 | 报文的VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文;否则丢弃 | 如果端口的PVID在端口允许通过的VLAN ID列表里,则接收该报文并为其添加PVID的Tag;否则丢弃 | 数据帧的VLAN ID与端口的PVID一致,则剥离Tag后发送;否则保留Tag发送 |
| Hybrid | 既可以用于连接终端设备,也可以用于连接网络设备,提供灵活的VLAN配置 | 如果报文的VLAN ID是端口允许通过的VLAN ID,则接收该报文,并可以配置端口在发送该VLAN的报文时是否携带Tag | 报文的VLAN ID是端口允许通过的VLAN ID,则接收该报文,并可以配置端口在发送该VLAN的报文时是否携带Tag | 根据配置决定是否为数据帧打上Tag。如果VLAN配置为Untagged,则剥离Tag发送;如果配置为Tagged,则保留或添加Tag发送 |
注:
- Hybrid允许多个VLAN的报文发送时不打Tag,Trunk只允许缺省VLAN ID的报文发送时不打Tag
- 三种端口可以在一台设备共存,但Trunk和Hybrid不能直接切换,只能先切为Access,再切为其他类型
- Access只属于1个VLAN,不用再设置缺省VLAN ID;Hybrid和Trunk可以属于多个VLAN,需要配置缺省VLAN ID
4.1 VLAN 汇聚方式(Trunk)
在 access 类型的 VLAN 配置中,数据帧不会加入 VLAN 标签,VLAN ID 是隐式的,网络设备将所有来自该端口的流量视为属于特定的 VLAN。
配置 trunk 类型的端口时,使用 802.1Q 协议在数据帧中添加 VLAN 标签,以便在多个 VLAN 之间进行数据传输。Access 端口则通常只属于一个 VLAN,不需要 VLAN 标签,因此不使用 802.1Q 协议。
IEEE802.1Q协议规定在以太网数据帧的源MAC地址字段和协议类型字段之间加入4字节的VLAN Tag。
# 以太网帧的格式
[ 6B ][ 6B ][ 2B ][42~1500B][4B ]
[Destination Address][Source Address][Length/Type][ Data ][CRC]
# IEEE802.1Q 协议修改格式
[ 6B ][ 6B ][ 4B ][ 2B ][42~1500B][4B ]
[Destination Address][Source Address][802.1q Tag][Length/Type][ Data ][CRC]
| 字段 | 含义 |
| :------------: | ------------ |
| TPID | 数据帧类型,IEEE802.1Q协议规定取值0x8100表示VLAN数据帧 |
| PRI | 优先级,802.1p协议规定3bit优先级(0~7,7最高),网络阻塞时,交换机优先发送高优先级数据帧 |
| CFI | 标准格式指示符,表示以太网帧是否以标准格式封装,0表示标准,1表示非标准 |
| VID | VLAN ID,12bit,0和4095为协议保留值,共4094个 |
- ISL(Inter Switch Link)
Cisco产品支持的一种与IEEE 802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。
4.2 实现过程和原理
-
解包流程 1)先读取 6 字节,记录为 Dst MAC; 2)再读取 6 字节,记录为 Src MAC; 3)再读取 2 字节,这里的判断就会稍微复杂一点:
- 首先基于以太网帧的不同格式,这个字段可能为 Length 或 Type,当其值小于或等于 1500 时,该字段代表 Length,因为 Data 的长度是不会超过 1500 B 的;
- 反之,当其值大于 1500 时,该字段代表 Type,如 0x0800 代表该帧为 IP 协议帧,0x0806 代表该帧为 ARP 协议帧,而如果恰好取值为 0x8100,则代表该帧是带 VLAN 标签的帧;
4)再读取 2 字节,记录下该帧对应的优先级、VLAN ID 等信息; 5)再继续读取 2 字节,这里我们读取到的又是 Length 或 Type 信息,乍一看与刚才的读取的 2 字节的 0x8100 Type 信息似乎有冲突,但其实刚才读到的只是以太网帧中附加的 VLAN 标签里的 Type 信息,而这里读到的才是真正标识后续 Data 中数据帧类型的 Type 信息
-
应用举例 在二层交换机中创建新的VLAN(VLAN10和VLAN20),设置各个端口的VLAN归属,端口1、2、3属于VLAN10,端口4、5属于VLAN20。主机1发送广播报文,报文数据帧头部VLAN Tag域中VLAN ID为10,交换机端口1接收,其他端口判断报文中VLAN ID是否为允许通过ID,端口2和3允许VLAN ID=10的报文通过,进行转发;端口4和5不允许VLAN ID=10的报文通过,不进行转发。以此实现了广播域的分割。过程中使用的时静态VLAN配置(基于端口的VLAN)。
5 基于 IP VLAN 配置
略
6 基于 MAC VLAN 配置
略
7 VLAN 使用优势
- 限制广播域:节省带宽,提高网络处理能力
- 增强局域网的安全性:不同VLAN内的报文在传输时互相隔离
- 提高了网络的健壮性:某个VLAN内的故障不会影响其他VLAN的正常工作
- 灵活构建虚拟工作组:用VLAN划分不同的用户到不同的工作组,同一工作组的用户也不必局限于物理范围
注: 由于 VLAN 仅能支持 4096 个端口的划分,因此在大型局域网内很容易被耗尽,则可以利用 Hybrid 端口实现 Isolated-User VLAN 功能,来帮助节省上行设备所需的 VLAN 数量。
借助 Hybrid 端口的灵活性,Isolated-User VLAN 能够在上行端口处剥离 Secondary VLAN 的标签,使上层交换机无需关心下层的 VLAN 配置,简化网络管理。