一、VLAN基础

1.1 什么是VLAN?

VLAN(Virtual Local Area Network),即虚拟局域网,是一种将物理上的局域网(LAN)在逻辑上划分成多个独立广播域的通信技术。它允许网络管理员将处于不同物理位置的设备,按照功能、部门或项目等逻辑进行分组,使其如同连接在同一个物理网段中一样通信。

1.2 为什么需要VLAN?

早期的以太网基于CSMA/CD机制,所有设备共享一个通信介质。随着网络规模扩大,带来了严重问题,而VLAN正是为了解决这些问题而生:
在这里插入图片描述

痛点 问题描述 VLAN的解决方案
广播泛滥 一个设备发送的广播帧会被交换机泛洪到全网,严重消耗带宽和CPU资源。 将网络划分为多个VLAN,每个VLAN就是一个独立的广播域。广播帧被限制在所属VLAN内,有效提升了网络性能。
安全薄弱 在同一广播域内,任何设备都可能收到或发起针对所有设备的攻击,如ARP欺骗。 不同VLAN间的设备在二层(数据链路层)是相互隔离的,无法直接通信,大大增强了网络的安全性。
管理困难 用户或部门物理位置变动时,需要重新布线和配置网络,灵活性差。 用户可以不受物理位置限制,根据其逻辑属性(如部门)划分到同一个VLAN,极大简化了网络管理和维护。

1.3 VLAN的四大受益

  1. 限制广播域:节省带宽,提高网络处理能力。
  2. 增强局域网安全性:不同VLAN间的用户不能直接二层通信。
  3. 提高网络健壮性:故障被限制在一个VLAN内,不会影响其他VLAN。
  4. 灵活构建虚拟工作组:网络构建和维护更方便灵活。

二、VLAN的工作原理与帧结构

2.1 VLAN的“身份证”:IEEE 802.1Q标签

要让交换机识别一个数据帧属于哪个VLAN,就必须在以太网帧中插入一个“VLAN标签”。这个标准由IEEE 802.1Q定义。

标签插入位置:在以太网帧的“源MAC地址”和“协议类型”字段之间,插入4个字节(32位) 的VLAN标签。

802.1Q标签结构详解

  • TPID(标签协议标识符):16位,固定值为0x8100,用于标识该帧携带了VLAN标签。
  • TCI(标签控制信息):16位,包含三个子字段:
    • Priority(优先级):3位,用于QoS(服务质量),定义数据帧的优先级(0-7)。
    • CFI(规范格式指示器):1位,用于兼容不同类型的网络,以太网中通常为0。
    • VID(VLAN标识符)12位,这是VLAN的核心标识。取值范围为 1 ~ 4094,其中0和4095保留。
      在这里插入图片描述
交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内。

2.2 交换机的内部处理流程

交换机处理VLAN数据帧遵循一套严格的逻辑:

  1. 接收(Ingress):从端口收到数据帧,检查是否带标签。若无标签,则打上该端口的PVID(端口默认VLAN ID);若有标签,则读取其VID。
  2. 转发(Forwarding):交换机查询MAC地址表,并结合VID进行转发。帧只能在同一个VID的端口间转发。
  3. 发送(Egress):根据出端口的类型,决定是否剥离标签再发送。

三、VLAN的三种端口类型

主流交换机端口分为Access、Trunk和Hybrid三种类型。它们的核心区别在于允许通过的VLAN数量对VLAN标签(Tag)的处理方式

3.1 Access端口(接入端口)

  • 核心用途:连接终端设备,如电脑、打印机、IP电话等。
  • 核心特性“专一”。一个Access端口只能属于一个VLAN,并只能传输该VLAN的流量。
  • 标签处理规则
    • 接收数据:从终端收到无标签帧,打上端口PVID标签。若收到带标签帧(非本VLAN),则丢弃
    • 发送数据:向终端发送帧时,强制剥离VLAN标签,以确保终端能正常识别(终端无法解析标签)。
  • 配置示例(华为)
    system-view
    interface GigabitEthernet 0/0/1
    port link-type access      # 设置为Access模式
    port default vlan 10       # 加入VLAN 10,同时PVID设为10
    
  • 配置示例(思科)
    configure terminal
    interface GigabitEthernet 0/1
    switchport mode access     # 设置为Access模式
    switchport access vlan 10  # 加入VLAN 10
    

3.2 Trunk端口(干道端口)

  • 核心用途:连接交换机与交换机,或交换机与路由器。
  • 核心特性“多车道”。一个Trunk端口可以同时承载多个VLAN的流量
  • 标签处理规则
    • 接收数据:收到带标签帧,若VLAN在允许列表中则接收。收到无标签帧,则打上端口的PVID(Native VLAN) 标签。
    • 发送数据除Native VLAN外,所有其他VLAN的帧都保留VLAN标签发送。Native VLAN的帧在发送时剥离标签(Untagged)。
  • 配置示例(华为)
    system-view
    interface GigabitEthernet 0/0/24
    port link-type trunk            # 设置为Trunk模式
    port trunk allow-pass vlan 10 20  # 允许VLAN 10和20通过
    port trunk pvid vlan 99         # (可选)设置Native VLAN为99
    
  • 配置示例(思科)
    configure terminal
    interface GigabitEthernet 0/24
    switchport mode trunk            # 设置为Trunk模式
    switchport trunk allowed vlan 10,20 # 允许VLAN 10和20通过
    switchport trunk native vlan 99  # (可选)设置Native VLAN为99
    

3.3 Hybrid端口(混合端口)

  • 核心用途:华为/华三等厂商提供的灵活端口模式,适用于复杂组网。
  • 核心特性“灵活”。它结合了Access和Trunk的特性,可以手动控制哪些VLAN的帧带标签(Tagged)发出,哪些不带标签(Untagged)发出
  • 标签处理规则
    • 接收数据:与Trunk端口规则完全相同。
    • 发送数据:管理员可以精细配置,对指定的VLAN剥离标签发送(类似Access),对指定的VLAN保留标签发送(类似Trunk)。
  • 配置示例(华为)
    system-view
    interface GigabitEthernet 0/0/3
    port link-type hybrid
    port hybrid pvid vlan 10
    port hybrid untagged vlan 10    # 发送VLAN 10时剥离标签
    port hybrid tagged vlan 20 30   # 发送VLAN 20,30时保留标签
    

四、VLAN的划分方式

VLAN的划分可以基于多种依据,最常见的是基于端口:

  • 基于端口:最常用,按交换机端口静态划分。
  • 基于MAC地址:根据设备的MAC地址动态划分,用户移动位置无需重新配置。
  • 基于IP子网:根据设备的IP地址所属子网划分。
  • 基于协议:根据上层协议类型(如IP、IPX)划分。

五、VLAN间路由(跨VLAN通信)

基本原则:VLAN是二层(数据链路层) 的隔离技术。不同VLAN间的设备不能直接通信,必须通过三层(网络层) 设备进行路由转发。

5.1 单臂路由(Router-on-a-Stick)

  • 原理:在路由器的一个物理接口上创建多个逻辑子接口,每个子接口对应一个VLAN,并作为该VLAN的网关。
  • 配置示例(思科)
    interface GigabitEthernet0/0.10
    encapsulation dot1Q 10
    ip address 192.168.10.1 255.255.255.0
    

5.2 三层交换(VLANIF / SVI)

  • 原理:使用三层交换机,为每个VLAN创建一个虚拟三层接口(VLANIF或SVI),并配置IP地址作为网关。交换机内部通过硬件芯片实现高速路由转发。
  • 配置示例(华为)
    interface Vlanif 10
    ip address 192.168.10.1 255.255.255.0
    

六、VLAN高级特性

6.1 Native VLAN(本征VLAN)

  • 定义:Trunk端口上的PVID被称为Native VLAN。
  • 关键特性:在Trunk链路上,Native VLAN的数据帧不带标签传输。
  • 安全风险:如果链路两端的Native VLAN配置不一致,会导致VLAN信息错乱,甚至引发VLAN跳跃攻击
  • 最佳实践:强烈建议将Native VLAN修改为一个未使用的VLAN ID(如999),并确保两端一致。

6.2 Super VLAN(超级VLAN)

  • 目的:节省IP地址。让多个VLAN(Sub VLAN)共享一个三层网关接口(Super VLAN的SVI)。
  • 工作原理:Sub VLAN仅包含物理端口,用于隔离广播域。它们之间的通信以及对外通信,都依赖Super VLAN接口的ARP代理功能。

6.3 Private VLAN(私有VLAN)

  • 目的:解决同一VLAN内不同端口之间的隔离问题。
  • 工作原理:将一个主VLAN(Primary VLAN)划分为多个辅助VLAN(Secondary VLAN),包括:
    • 隔离VLAN(Isolated VLAN):端口间完全不能二层通信。
    • 群体VLAN(Community VLAN):同群体内的端口可以通信,不同群体间不能。

七、VLAN安全与攻击防范

7.1 常见的VLAN攻击

  1. 交换机欺骗(Switch Spoofing):攻击者伪装成交换机,通过DTP协议动态协商建立Trunk,从而访问所有VLAN。
  2. 双标签攻击(Double Tagging):攻击者发送双层VLAN标签的帧,利用Native VLAN的不一致性,使数据“跳跃”到其他VLAN。

7.2 防御措施

  1. 关闭未使用的端口shutdown,并设置为Access模式。
  2. 显式配置Trunk:手动将互联端口设置为Trunk模式,并关闭DTP协商switchport nonegotiate)。
  3. 限制Trunk允许的VLAN:只放行必要的VLAN,避免使用vlan all
  4. 修改默认Native VLAN:将其改为一个不使用的VLAN ID。
  5. 启用端口安全:限制端口上学习的MAC地址数量。

八、VLAN故障排查指南

遇到VLAN不通的问题,可按以下步骤排查:

  1. 检查VLAN创建:确保VLAN已在交换机上创建。
    • 华为:display vlan
    • 思科:show vlan brief
  2. 检查端口配置:确认端口模式(Access/Trunk)和所属VLAN是否正确。
    • 华为:display port vlan
    • 思科:show interfaces trunk
  3. 检查Trunk链路:确认两端Trunk端口的允许VLAN列表Native VLAN是否一致。
  4. 检查VLAN间路由:对于跨VLAN通信,检查三层交换机VLANIF接口是否up/up,并配置了正确的IP地址。
    • 华为:display ip routing-table
    • 思科:show ip interface brief
  5. 检查终端配置:确认终端设备的IP地址、子网掩码和网关是否正确。

九、主流厂商VLAN配置命令速查

操作 华为/H3C 思科/Cisco 锐捷/Ruijie
进入系统视图 system-view configure terminal configure terminal
创建VLAN vlan batch 10 20 vlan 10 vlan range 10,20
配置Access端口 port link-type access
port default vlan 10
switchport mode access
switchport access vlan 10
switchport mode access
switchport access vlan 10
配置Trunk端口 port link-type trunk
port trunk allow-pass vlan 10 20
switchport mode trunk
switchport trunk allowed vlan 10,20
switchport mode trunk
switchport trunk allowed vlan add 10,20
设置Native VLAN port trunk pvid vlan 99 switchport trunk native vlan 99 switchport trunk native vlan 99
保存配置 save write memory write

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐