目录

VLAN总结

虚拟局域网(Virtual Local Area Network),LAN(局域网)指某一区域内由多台计算机组成的网络,受物理位置限制。而VLAN则是将一个物理LAN在逻辑上划分成多个广播域的通信技术,每一个VLAN就是一个广播域。

为什么需要VLAN?VLAN解决了什么问题?

VLAN 出现之前,在一个局域网内的主机1向主机2发送报文,首先需要本机的ARP表,查找主机2的IP-MAC对应关系表项,若没有则需要发送ARP广播报文,交换机1接收到主机1的ARP广播报文后,转发到局域网内其他所有主机,主机2收到ARP请求后发送ARP应答。在这个场景中,主机1仅需要和主机2通信,但是广播域是整个局域网, 每台主机都要多次处理无意义的广播报文,因此整个局域网的通信效率比较低。

VLAN 技术有效限制了广播报文的传输范围,一定程度上抑制了广播风暴,提高了网络的安全性。

针对 VALN 配置其类型时,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态VLAN”、后者是“动态VLAN”了。这些方法提供了不同的灵活性和适用场景,可以根据网络需求进行选择和组合。

类型 静/动态 机制
基于端口 静态 将交换机的各端口固定指派给VLAN
基于MAC 动态 根据各端口所连计算机的MAC地址设定
基于子网 动态 根据各端口所连计算机的IP地址设定
基于用户 动态 根据端口所连计算机上登录用户设定

基于端口配置 VLAN 仍然广泛使用,尽管基于 IP 和 MAC 地址的 VLAN 配置在某些特定场景中提供了更大的灵活性。

  1. 基于端口的 VLAN 配置
  • 优点:配置简单,易于管理;处理速度快,适合高流量网络
  • 缺点:灵活性较低,难根据设备或流量特性动态调整VLAN;管理大量的端口配置困难,扩展性差
  1. 基于 IP 的 VLAN 配置
  • 优点:灵活性高,适用于更复杂的网络设计(与策略路由、ACL 访问控制列表等高级功能结合,提供更细粒度的控制)
  • 缺点:配置复杂,需要更多的处理和检查,可能会对网络性能产生影响
  1. 基于 MAC 的 VLAN 配置
  • 优点:适应移动性,设备在网络中移动时无需重新配置 VLAN(例如,访客网络)
  • 缺点:MAC 地址可能被伪造,带来潜在的安全隐患;管理和维护 MAC 地址表可能变得复杂

上述罗列出 VLAN 的多种类型配置,然后基于端口的配置是最常用的。

需要明确的指出,VLAN ID 的来源是多样的,它能够是交换机打上的,也可以是终端设备打上的,具体取决于网络的配置和设备的类型。

  1. 由终端设备打上 VLAN ID 在一些网络架构中,终端设备(如服务器、工作站等)会负责在发送的数据帧中打上 VLAN ID 标签。这种情况下,数据帧到达交换机时已经带有 VLAN ID,交换机只需根据 VLAN ID 进行转发决策。
  2. 由交换机打上 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发送

注:

  1. Hybrid允许多个VLAN的报文发送时不打Tag,Trunk只允许缺省VLAN ID的报文发送时不打Tag
  1. 三种端口可以在一台设备共存,但Trunk和Hybrid不能直接切换,只能先切为Access,再切为其他类型
  2. Access只属于1个VLAN,不用再设置缺省VLAN ID;Hybrid和Trunk可以属于多个VLAN,需要配置缺省VLAN ID

access 类型的 VLAN 配置中,数据帧不会加入 VLAN 标签,VLAN ID 是隐式的,网络设备将所有来自该端口的流量视为属于特定的 VLAN。 配置 trunk 类型的端口时,使用 802.1Q 协议在数据帧中添加 VLAN 标签,以便在多个 VLAN 之间进行数据传输。Access 端口则通常只属于一个 VLAN,不需要 VLAN 标签,因此不使用 802.1Q 协议。

  1. 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个  |
  1. ISL(Inter Switch Link) Cisco产品支持的一种与IEEE 802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。
  1. 解包流程 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 信息

  2. 应用举例 在二层交换机中创建新的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)。

  • 限制广播域:节省带宽,提高网络处理能力
  • 增强局域网的安全性:不同VLAN内的报文在传输时互相隔离
  • 提高了网络的健壮性:某个VLAN内的故障不会影响其他VLAN的正常工作
  • 灵活构建虚拟工作组:用VLAN划分不同的用户到不同的工作组,同一工作组的用户也不必局限于物理范围

注: 由于 VLAN 仅能支持 4096 个端口的划分,因此在大型局域网内很容易被耗尽,则可以利用 Hybrid 端口实现 Isolated-User VLAN 功能,来帮助节省上行设备所需的 VLAN 数量。

借助 Hybrid 端口的灵活性,Isolated-User VLAN 能够在上行端口处剥离 Secondary VLAN 的标签,使上层交换机无需关心下层的 VLAN 配置,简化网络管理。

引用: VLAN原理详解_弦苦的博客-CSDN博客

VLAN 原理与实践