全网最详细的VLAN的原理和配置 - 知乎
全网最详细的VLAN的原理和配置 - 知乎
一、VLAN 概述与诞生背景
在传统以太网中,所有主机都处于同一个广播域(Broadcast Domain)。当网络规模不大时,广播包对网络的影响微乎其微;但当接入设备数量达到数百甚至上千台后,ARP 请求、DHCP 广播、NetBIOS 通告、路由协议更新等广播流量就会迅速吞噬带宽,交换机不得不频繁进行 MAC 地址学习,导致 CAM 表抖动、转发性能下降。与此同时,部门隔离、服务器分区、IP 电话语音流分离等业务需求也层出不穷。仅靠物理交换机堆叠和路由器端口划分,既不灵活也极度浪费硬件资源。
VLAN(Virtual Local Area Network,虚拟局域网)正是在这种背景下诞生的。它通过在交换机内部维护一个 VLAN 标识符(VLAN ID,1~4094),把同一台物理交换机逻辑上拆分成若干个相互隔离的”虚拟交换机”。每一个 VLAN 就是一个独立的广播域:同一个 VLAN 内的主机可以直接二层互通,不同 VLAN 之间即便接在同一台交换机上,默认也无法互相通信。这种”逻辑隔离”极大提升了网络的可管理性、安全性和扩展性,成为现代园区网、数据中心接入层不可或缺的基础技术。
二、VLAN 的核心原理
2.1 广播域与冲突域的区别
首先要区分两个容易混淆的概念:
| 维度 | 冲突域 | 广播域 |
|---|---|---|
| 定义 | 同一物理介质上信号可能发生碰撞的范围 | 广播帧能够到达的全部节点范围 |
| 隔离设备 | 交换机每个端口独立冲突域 | 路由器 / VLAN 边界 / 三层接口隔离广播域 |
| 常见流量 | CSMA/CD 竞争产生的碰撞 | ARP、DHCP、NetBIOS 等广播包 |
VLAN 的核心价值就是把”广播域”从物理拓扑中剥离出来,使其跟随标签而非物理端口走,从而实现灵活的网络分段。
2.2 VLAN Tag 与 802.1Q 帧格式
要让交换机识别”这个帧属于哪个 VLAN”,IEEE 802.1Q 标准在传统以太网帧的源 MAC 与类型字段之间插入了 4 字节的 Tag:
- TPID(Tag Protocol Identifier,2 字节):固定为 0x8100,表示这是一个带 Tag 的帧
- TCI(Tag Control Information,2 字节):包含 3 位 Priority(用于 QoS)、1 位 CFI(规范格式指示)和 12 位 VLAN ID
由于打 Tag 后帧长度可能超过 1518 字节,传统设备若不支持巨帧,会把它当作”超长帧”丢弃。所以当 Trunk 链路收到带 Tag 的帧时,发送端会自动检测并调整 MTU,必要时启用 Jumbo Frame 机制。
2.3 PVID 与 VLAN ID 的关系
PVID(Port VLAN ID)是端口的”默认 VLAN ID”。当交换机收到一个未带 Tag 的帧时,会给它打上 PVID 所对应的 VLAN Tag,再进行转发;而当端口需要发送属于 PVID 的帧时,会自动剥离 Tag 再发出。这套机制就是后面要讲的 Access 端口与 Trunk 端口行为差异的根本来源。
三、VLAN 划分方式详解
常见的 VLAN 划分方式主要有四种,每种都有自己适用的场景:
3.1 基于端口划分(Port-Based VLAN)
最常见、最简单的方式。管理员把交换机的某个端口静态划分到某个 VLAN,所有接入该端口的设备都自动属于该 VLAN。优点是配置直观、性能稳定;缺点是设备位置变动时需要重新配置端口。
3.2 基于 MAC 地址划分(MAC-Based VLAN)
交换机会维护一张 MAC 地址与 VLAN ID 的映射表。无论设备从哪个端口接入,只要 MAC 命中规则,就被划入对应 VLAN。优点是设备位置变动无需重新配置,缺点是 MAC 表维护成本高,新增设备需要手动登记。
3.3 基于 IP 子网划分(IP Subnet-Based VLAN)
依据进入端口的报文 IP 地址所属子网来分配 VLAN。适合 IP 规划相对稳定的场景,可以让同一 VLAN 跨越多台物理交换机而无需手工绑定 MAC。
3.4 基于协议划分(Protocol-Based VLAN)
根据报文的协议类型(如 IP、IPX、AppleTalk)划分 VLAN,常见于多协议并存的老旧网络,目前已经较少使用。
3.5 划分方式对比表
| 划分方式 | 灵活性 | 维护成本 | 适用场景 | 典型协议 |
|---|---|---|---|---|
| 基于端口 | 低 | 低 | 办公接入、设备位置固定 | 直接命令 |
| 基于 MAC | 高 | 高 | 人员/设备频繁调动的环境 | 802.1Q 配合策略 |
| 基于 IP 子网 | 中 | 中 | IP 规划清晰的园区网 | DHCP Option + 策略 |
| 基于协议 | 低 | 高 | 多协议老网 | 极少使用 |
四、链路类型与端口模式
4.1 Access 端口
只承载一个 VLAN 的数据。收到的帧无 Tag 时打 PVID Tag,属于该 VLAN;发送时剥离 Tag。常用于连接终端设备,例如 PC、打印机、IP 电话的 PC 端口。
4.2 Trunk 端口
承载多个 VLAN 数据。收到的帧若属于 Native VLAN(华为设备默认是 VLAN 1)则不打 Tag 直接转发;其他 VLAN 则保留 802.1Q Tag。Trunk 端口常用于交换机互联。
4.3 Hybrid 端口
华为/H3C 设备特有的端口模式,可以灵活选择哪些 VLAN 带 Tag、哪些剥离 Tag,适合连接 IP 电话、AP 等需要同时传输打标签数据与不打标签数据的混合设备。
4.4 关键参数对照
| 参数 | Access | Trunk | Hybrid |
|---|---|---|---|
| PVID | 必填,默认 1 | 必填,默认 1 | 必填,默认 1 |
| Allowed VLAN | 仅 PVID | 多个 VLAN | 多个 VLAN |
| 发送行为 | 全部剥离 Tag | Native 剥离,其他保留 | 可逐 VLAN 控制 |
| 接收行为 | 无 Tag 打 PVID | 按 Tag 识别 | 按 Tag 识别或打 PVID |
五、VLAN 配置实战(以华为/H3C 为例)
5.1 创建 VLAN 并进入 VLAN 视图
1 | |
vlan batch 命令可以一次性创建多个 VLAN,节省配置时间。如果设备提示”该 VLAN 已存在”,说明之前已经创建过,使用 display vlan 即可查看。
5.2 配置 Access 端口
1 | |
将 GigabitEthernet0/0/1 端口划分为 VLAN 10,所有连接到此端口的设备都默认属于 VLAN 10。
5.3 配置 Trunk 端口
1 | |
Trunk 端口允许 VLAN 10、20、30 通过,PVID 设置为 VLAN 1,意味着来自 VLAN 1 的帧会”剥离 Tag 转发”。
5.4 配置 Hybrid 端口(连接 IP 电话 + PC)
1 | |
该端口属于 VLAN 10(带 PVID),收发 VLAN 10 和 20 时不打 Tag,收发 VLAN 30 时打 Tag。IP 电话的 PC 口往往需要同时透传语音 VLAN(带 Tag)和数据 VLAN(不带 Tag),Hybrid 模式正好满足这一需求。
5.5 删除 VLAN
1 | |
删除 VLAN 前务必确认所有端口已经移出该 VLAN,否则端口会因为找不到对应 VLAN 而产生报文丢弃。
六、VLAN 间路由:让隔离变得可通信
VLAN 之间默认不能互通,但企业业务经常需要不同部门、不同业务段之间通信,这时就需要借助三层设备实现 VLAN 间路由。
6.1 单臂路由(Router-on-a-Stick)
利用路由器的一个物理接口通过子接口承载多个 VLAN:
1 | |
该方案适合小型网络,成本低但所有跨 VLAN 流量都要经过一根物理链路,容易成为瓶颈。
6.2 三层交换机 SVI 接口(推荐)
在三层交换机上为每个 VLAN 创建 SVI(Switch Virtual Interface):
1 | |
这种方式在 ASIC 芯片上完成三层转发,性能远高于单臂路由,是园区网最常见的做法。
6.3 路由性能对比
| 方案 | 吞吐量 | 延迟 | 部署难度 | 适用规模 |
|---|---|---|---|---|
| 单臂路由 | 取决于路由器物理口 | 较高 | 低 | 小型、临时方案 |
| 三层交换机 SVI | 接近线速 | 低 | 中 | 中大型园区网 |
| 堆叠/M-LAG + SVI | 线速 + 高可用 | 极低 | 高 | 数据中心、核心层 |
七、典型实战场景
7.1 场景一:办公网部门隔离
某互联网公司 200 人规模,分为研发、市场、行政、运维四个部门,物理位置分布在两层办公楼。运维工程师要做的事情:
- 在核心交换机创建 VLAN 11(研发)、12(市场)、13(行政)、14(运维)、1(Native)、100(管理)
- 每层接入交换机与核心交换机互联的端口配置为 Trunk,仅放行上述 VLAN
- 接入端口根据工位划分 Access 端口,研发用 VLAN 11,市场用 VLAN 12,依此类推
- 核心交换机为每个 VLAN 创建 SVI,作为部门网关,配置 ACL 限制市场部访问研发服务器
- 启用 DHCP Server 或 DHCP 中继,IP 地址池按 VLAN 分段,避免广播域冲突
经过 VLAN 划分后,研发部门的代码编译流量、运维的批量脚本推送都不会再干扰到市场部的网络直播,部门间的安全边界也得到了保证。
7.2 场景二:酒店客房网络 + 客房语音
酒店客房需要同时提供客人上网(数据 VLAN)和客房电话(语音 VLAN)。常见做法:
- 客房交换机端口设置为 Hybrid 模式,PVID = 数据 VLAN(如 VLAN 100),并配置
port hybrid untagged vlan 100、port hybrid tagged vlan 200 - IP 电话从交换机获取数据 VLAN 的 PVID 同时识别语音 VLAN 标签,电话内部将语音包加上 VLAN 200 的 Tag 转发
- 核心交换机为 VLAN 200 配置语音专用 QoS 策略(EF 队列、抖动缓冲),保证通话质量
- 客人通过 VLAN 100 访问互联网,并启用 Web 认证 + Portal 推送
这样数据与语音在一根网线同时跑,互不干扰,又方便管理。
7.3 场景三:服务器机柜分区与隔离
某金融企业数据中心需要将开发测试区、生产区、监控区三类服务器隔离,但又要在同一台接入交换机下方便运维。常用方案:
- 在每台接入交换机创建 VLAN 301(开发)、302(测试)、303(生产)、304(监控)
- 服务器网卡的 Windows/Linux 侧配置 802.1Q 子接口,例如 Linux 上用
vconfig add eth0 301划分子接口 - 接入端口配置 Trunk 允许上述 VLAN 透传,汇聚交换机启用 VXLAN/VRF 实现跨机柜隔离
- 通过防火墙策略让运维 VLAN 可以访问所有 VLAN,其他 VLAN 之间默认不通
这样做的好处是物理布线保持简单,逻辑上又能做到精细化的访问控制,符合等保 2.0 对”重要网络区域隔离”的要求。
八、踩坑提醒与最佳实践
Native VLAN 不一致导致流量飘移:Trunk 链路两端若 Native VLAN 不一致,未打 Tag 的流量就会被错误地划入对方的 Native VLAN,造成 ARP 学习错乱、广播风暴。配置完成后一定要
display port vlan对照检查。删除 VLAN 前忘了清端口:直接
undo vlan而没有把端口移出,会导致该端口上所有流量被丢弃,业务大面积中断。建议先display vlan [vlan-id]确认该 VLAN 下无活跃端口再删除。VLAN 1 残留风险:VLAN 1 是默认 VLAN,所有未配置端口都默认属于 VLAN 1。如果不显式调整,黑客接入任意空闲端口就能进入核心 VLAN。最佳实践是修改 Native VLAN 为非 1,并禁用空闲端口或划分到 Blackhole VLAN。
Trunk 允许所有 VLAN 通过:有些工程师图省事,配置
port trunk allow-pass vlan all,结果任何新接入的 VLAN 都会自动透传到核心,破坏隔离策略。建议严格allow-pass vlan列表,做到”最小授权”。三层 SVI 接口与 VLAN 关系:SVI 接口只有在 VLAN 存在、且本机至少有一个该 VLAN 的 Trunk/Access 端口 UP 时才会进入 UP 状态。如果 SVI 接口一直是 DOWN,可能是 VLAN 没创建或对应端口没 UP。
跨厂商对接:华三 Hybrid 端口对接 Cisco Trunk 时,需要在 Cisco 侧使用
switchport trunk encapsulation dot1q并关闭 DTP,Cisco 默认的 ISL 封装华三已经不再支持。配置前务必确认两侧封装方式一致。Jumbo Frame 隐患:启用 802.1Q 后帧长度增加 4 字节,启用 QinQ 后再增加 4 字节,如果中间链路某台老设备不支持巨帧,会出现大包静默丢弃。建议在核心层统一调整 MTU 到 9216 并全局验证。
九、扩展特性速览
- Voice VLAN:专用于语音流量,配合 IP 电话自动下发 LLDP-MED 策略,把语音 VLAN Tag 推送给电话。配置命令
voice-vlan 200 enable。 - Super VLAN:聚合多个 Sub VLAN,使用同一个 SVI 接口作为网关,节省 IP 地址,适合运营商接入。
- Private VLAN:在 VLAN 内部再做二级隔离,把端口分为 Promiscuous、Isolated、Community 三类,常用于数据中心同一网段下不同租户互不干扰。
- MUX VLAN:实现”主 VLAN 与从 VLAN 之间可以互通,从 VLAN 之间隔离”的场景,适合企业访客网络。
- GVRP:通用 VLAN 注册协议,让交换机之间动态学习 VLAN 信息,减少手工配置。
- VTP:思科私有协议,与 GVRP 类似,但版本兼容性问题较多,新建网络建议改用静态配置。
十、延伸阅读
理解 VLAN 之后,下一步建议继续深入研究生成树协议(STP/RSTP/MSTP)。在多交换机互联场景下,Trunk 链路一旦形成环路,没有生成树保护的 VLAN 流量会在数秒内引发广播风暴,导致整网瘫痪。生成树通过选举根桥、阻塞冗余链路来保证二层无环运行,与 VLAN 的”分段”思想相辅相成。
此外,VXLAN(Virtual Extensible LAN)是 VLAN 技术在数据中心与云计算时代的延伸。它通过 UDP 封装将以太网帧扩展到 24 位 VNI,能够容纳上千万个逻辑隔离域,被广泛用于 Overlay 网络与多租户云环境。掌握了传统 VLAN 后,再去学习 VXLAN 会更加得心应手,因为很多概念是相通的:广播域、标签、VTEP 角色映射到 VLAN 中的广播域、VLAN ID、交换机角色。
最后,业务驱动的网络自动化方向也值得持续关注。Ansible、SaltStack 以及华为的 iMaster NCE 等工具已经把 VLAN 创建、Trunk 配置、ACL 下发做成可编程的 Yaml 模型。一旦你熟悉了底层原理,再去阅读自动化模板的变量含义,会发现这些 YAML 文件其实就是把今天讲过的命令”翻译”成了数据结构。
十一、总结
VLAN 作为园区网最基础也最核心的二层技术,通过在数据帧中打 Tag 的方式实现了”逻辑交换机”的概念,使得广播域可以跟随标签而非物理位置走。从基本的 Access/Trunk/Hybrid 端口模式,到三层 SVI、单臂路由的 VLAN 间通信,再到 MUX VLAN、Private VLAN、Voice VLAN 等扩展特性,VLAN 技术已经发展出完整的体系。学习 VLAN 不只是记住命令,更是理解”标签驱动转发”的设计哲学。这种思路在 VXLAN、EVPN、SDN Overlay 中被不断复用,是网络工程师进阶过程中必须打牢的根基。希望本文能够帮助你从原理到配置再到实战场景,建立起对 VLAN 的系统认知,在日常运维与排障中做到心中有数、手上有招。