第8篇:跨 VLAN 通信为什么要三层接口
关键词:跨VLAN通信 三层接口 网关 VLANIF SVI 路由 广播域隔离
一、引言
在上一篇文章中,我们详细讲解了同一 VLAN 内两台 PC 的通信过程——完全靠二层交换机的 MAC 地址转发,不经过网关。
但实际网络中,出于安全隔离、部门划分、广播控制等需求,我们会将不同业务或不同部门划分到不同的 VLAN 中。这就引出了新的问题:VLAN 10 的 PC 怎么和 VLAN 20 的服务器通信?
一个真实的案例:某企业将财务部划入 VLAN 20、技术部划入 VLAN 30。财务部的同事需要访问技术部部署的文件服务器。网络管理员在三层交换机上做了简单路由后,发现财务部的 PC 仍然无法访问。原因是 PC 的默认网关没有指向 VLANIF 接口,导致数据包无法离开 VLAN 20。
本文将深入讲解为什么跨 VLAN 通信必须经过三层接口、三层接口的工作机制以及不同方案的优劣。
二、VLAN 的本质隔离
2.1 VLAN 隔离了什么
VLAN(Virtual Local Area Network,虚拟局域网)的核心作用是隔离广播域。
| 隔离维度 | 说明 |
|---|---|
| 广播隔离 | VLAN 10 的广播帧不会进入 VLAN 20 |
| MAC 隔离 | VLAN 10 的 MAC 地址表与 VLAN 20 完全独立 |
| ARP 隔离 | VLAN 10 的 ARP 请求不会到达 VLAN 20 |
2.2 为什么需要跨 VLAN 通信
虽然 VLAN 隔离提高了安全性和减少了广播流量,但实际业务中不同 VLAN 之间仍需要通信:
| 场景 | 源 VLAN | 目的 VLAN |
|---|---|---|
| 办公网访问服务器 | VLAN 10(办公) | VLAN 100(服务器) |
| 内网访问互联网 | VLAN 10(内网) | VLAN 200(出口) |
| 不同部门互访 | VLAN 20(财务) | VLAN 30(技术) |
2.3 二层交换机无法完成跨 VLAN 转发
二层交换机只认 MAC 地址,不认 IP 地址。当 PC_A(VLAN 10)想发数据给 PC_B(VLAN 20)时:
- PC_A 判断 192.168.20.20 不在同一子网 → 需要将数据发给网关
- PC_A 发送 ARP 请求解析网关的 MAC 地址
- 问题:如果交换机只有二层能力,就没有网关这个概念
这就是为什么跨 VLAN 通信必须引入三层功能。
三、什么是三层接口
3.1 三层接口的定义
三层接口是具有 IP 地址的接口,能够对 IP 数据包进行路由转发。在华为交换机中,主要有两种三层接口:
| 类型 | 名称 | 说明 | 典型用途 |
|---|---|---|---|
| VLANIF 接口 | 虚拟三层接口 | 逻辑接口,为 VLAN 提供网关 | 跨 VLAN 路由(最常用) |
| 路由端口 | 物理三层接口 | 将物理端口切换为三层模式 | 交换机直连路由器 |
3.2 VLANIF 接口详解
VLANIF(VLAN Interface)是绑定到 VLAN 的虚拟三层接口,相当于该 VLAN 的"网关"。

3.3 三层接口为什么能实现跨 VLAN 通信
跨 VLAN 通信的本质是:将数据从二层提升到三层,由路由表决定转发路径,再降回二层发出。
整个过程涉及两次"解封装 → 重新封装":
- 数据帧从 VLAN 10 进入交换机,到达 VLANIF 10 接口
- 交换机剥离以太网帧头,读取 IP 包的目的地址
- 查路由表,找到目的网络 192.168.20.0/24 的出接口为 Vlanif 20
- 构造新的以太网帧:源 MAC = Vlanif 20 的 MAC,目的 MAC = PC_B 的 MAC
- 新帧从 VLAN 20 的端口发出
关键区别:二层交换机转发时,源/目的 MAC 和 IP 均不变。三层接口转发时,IP 地址不变,但源/目的 MAC 地址在每一跳都会变化。
四、跨 VLAN 通信完整过程
4.1 场景设定
| 设备 | 接口 | IP 地址 | 子网掩码 | 说明 |
|---|---|---|---|---|
| PC_A | - | 192.168.10.10 | 255.255.255.0 | VLAN 10,网关 192.168.10.1 |
| PC_B | - | 192.168.20.20 | 255.255.255.0 | VLAN 20,网关 192.168.20.1 |
| 三层交换机 | Vlanif 10 | 192.168.10.1 | 255.255.255.0 | VLAN 10 网关 |
| 三层交换机 | Vlanif 20 | 192.168.20.1 | 255.255.255.0 | VLAN 20 网关 |
4.2 PC_A 访问 PC_B 的完整流程
去程:PC_A → 三层交换机 → PC_B
| 步骤 | 执行者 | 动作 | 说明 |
|---|---|---|---|
| 1 | PC_A IP 层 | 判断 192.168.20.20 不在同一子网 | 需要使用网关 |
| 2 | PC_A ARP | ARP 请求解析网关 192.168.10.1 的 MAC | 广播在 VLAN 10 内 |
| 3 | 交换机 | VLANIF 10 回复 ARP | PC_A 获得网关 MAC |
| 4 | PC_A 网卡 | 封装以太网帧 | 源 MAC=PC_A,目的 MAC=网关 MAC,目的 IP=PC_B |
| 5 | 交换机 | 二层转发帧到 VLANIF 10 | 目的 MAC 是三层接口 MAC |
| 6 | 交换机 | 三层处理:解封装,查路由表 | 目的 192.168.20.20 → 出接口 Vlanif 20 |
| 7 | 交换机 | ARP 解析 PC_B 的 MAC(如果需要) | 查本地 ARP 缓存 |
| 8 | 交换机 | 重新封装以太网帧 | 源 MAC=Vlanif20 MAC,目的 MAC=PC_B MAC |
| 9 | 交换机 | 二层转发新帧到 PC_B | 帧从 VLAN 20 的端口发出 |
| 10 | PC_B | 接收并解封装 | 获取 IP 包,处理数据 |
回程:PC_B → PC_A(对称过程)
| 步骤 | 执行者 | 动作 | 说明 |
|---|---|---|---|
| 1 | PC_B IP 层 | 判断 192.168.10.10 不在同一子网 | 需要使用网关 |
| 2 | PC_B | 通过 ARP 获取 VLANIF 20 的 MAC | 网关 192.168.20.1 |
| 3 | 交换机 | 三层处理:Vlanif 20 → 路由 → Vlanif 10 | 查路由表 |
| 4 | 交换机 | 重新封装,发给 PC_A | 新以太网帧 |
4.3 地址变化追踪
| 阶段 | 源 MAC | 目的 MAC | 源 IP | 目的 IP |
|---|---|---|---|---|
| PC_A → 交换机(VLANIF 10) | PC_A 的 MAC | Vlanif 10 的 MAC | 192.168.10.10 | 192.168.20.20 |
| 交换机 → PC_B(Vlanif 20) | Vlanif 20 的 MAC | PC_B 的 MAC | 192.168.10.10 | 192.168.20.20 |
核心发现:IP 地址全程不变(192.168.10.10 → 192.168.20.20),但 MAC 地址在三层接口处发生了变化——源 MAC 从 PC_A 变成了 Vlanif 20 的 MAC。
五、其他跨 VLAN 通信方案对比
5.1 方案一:三层交换机 VLANIF(推荐)
在三层交换机上为每个 VLAN 配置 VLANIF 接口,交换机自动学习直连路由。
优点: - 配置简单,自动生成直连路由 - 线速转发,性能高 - 无需额外设备
缺点: - 需要三层交换机 - 所有跨 VLAN 流量经过交换机 CPU 处理(但 ASIC 硬件转发不影响性能)
5.2 方案二:路由器单臂路由(Router on a Stick)
使用二层交换机 + 外部路由器,路由器一个物理接口划分子接口实现多 VLAN 路由。详见第 9 篇文章。
优点: - 无需三层交换机 - 路由器可集中管理安全策略
缺点: - 路由器单端口成为瓶颈 - 跨 VLAN 流量来回经过同一 Trunk 链路,浪费带宽
5.3 方案对比
| 维度 | VLANIF(三层交换机) | 单臂路由(路由器) |
|---|---|---|
| 设备要求 | 三层交换机 | 二层交换机 + 路由器 |
| 配置复杂度 | 低 | 中(需配置子接口) |
| 转发性能 | 高(硬件 ASIC) | 中(受限于单端口) |
| 可扩展性 | 好(多 VLANIF) | 差(单臂带宽瓶颈) |
| 成本 | 需购买三层交换机 | 可利用现有二层交换机 |
| 推荐场景 | 企业核心/汇聚层 | 临时方案、小规模网络 |
六、华为三层交换机路由验证
6.1 查看路由表
# 查看所有路由
[HUAWEI] display ip routing-table
# 输出示例:
# Routing Table : Public
# Destination/Mask Proto Pre Cost NextHop Interface
# 192.168.10.0 255.255.255.0 Direct 0 0 192.168.10.1 Vlanif10
# 192.168.20.0 255.255.255.0 Direct 0 0 192.168.20.1 Vlanif20
6.2 三层交换机 Ping 测试
# 从交换机侧模拟 PC_A Ping PC_B
[HUAWEI] ping -a 192.168.10.10 192.168.20.20
# 指定源接口测试
[HUAWEI] ping -a 192.168.10.1 -i Vlanif 10 192.168.20.20
6.3 查看三层接口 ARP
# 查看 VLANIF 接口学习到哪些主机的 ARP
[HUAWEI] display arp interface Vlanif 10
# 输出:VLAN 10 下所有 PC 的 IP-MAC 映射
[HUAWEI] display arp interface Vlanif 20
# 输出:VLAN 20 下所有主机的 IP-MAC 映射
七、总结
| 概念 | 说明 |
|---|---|
| VLAN 隔离 | 隔离广播域,二层交换机无法跨 VLAN 转发 |
| 三层接口 | 具有 IP 地址,可执行路由转发的接口 |
| VLANIF | 为 VLAN 提供网关的逻辑三层接口 |
| 跨 VLAN 转发 | 解封装 IP 包 → 查路由表 → 重新封装新帧 |
| 地址变化 | IP 不变,MAC 在每一跳三层接口处重新封装 |
核心要点: 1. VLAN 隔离了广播域,同一 VLAN 内的 ARP 和广播无法跨越 VLAN 2. 跨 VLAN 通信必须经过三层接口(VLANIF 或路由器),因为需要基于 IP 的路由决策 3. 三层转发的本质是"拆帧 → 查路由 → 重新封装帧",每一跳 MAC 地址变化但 IP 不变 4. 三层交换机 VLANIF 方案是最常用的企业级跨 VLAN 通信方案 5. PC 的默认网关必须指向所属 VLAN 的 VLANIF 接口 IP
思考题
- PC_A(VLAN 10)Ping PC_B(VLAN 20),第一次 Ping 通常延迟较高(如 50ms),后续正常(如 1ms)。请从 ARP 的角度分析为什么第一次这么慢。
- 如果三层交换机的 VLANIF 20 接口被 shutdown 了,VLAN 10 的 PC 还能 Ping 通 VLAN 20 的 PC 吗?路由表会怎样变化?
- 同一台三层交换机上有 VLANIF 10(192.168.10.1/24)和 VLANIF 11(192.168.10.1/24),这种配置是否可行?为什么?
下篇预告
了解了跨 VLAN 通信需要三层接口后,最经典的具体实现方案是什么?如何用一根网线和路由器的子接口实现多个 VLAN 之间的通信?下一篇文章《单臂路由实现 VLAN 间通信》将详细讲解这个经典方案。