第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)时:

  1. PC_A 判断 192.168.20.20 不在同一子网 → 需要将数据发给网关
  2. PC_A 发送 ARP 请求解析网关的 MAC 地址
  3. 问题:如果交换机只有二层能力,就没有网关这个概念

这就是为什么跨 VLAN 通信必须引入三层功能。

三、什么是三层接口

3.1 三层接口的定义

三层接口是具有 IP 地址的接口,能够对 IP 数据包进行路由转发。在华为交换机中,主要有两种三层接口:

类型 名称 说明 典型用途
VLANIF 接口 虚拟三层接口 逻辑接口,为 VLAN 提供网关 跨 VLAN 路由(最常用)
路由端口 物理三层接口 将物理端口切换为三层模式 交换机直连路由器

3.2 VLANIF 接口详解

VLANIF(VLAN Interface)是绑定到 VLAN 的虚拟三层接口,相当于该 VLAN 的"网关"。

VLANIF 接口详解 - 图示

3.3 三层接口为什么能实现跨 VLAN 通信

跨 VLAN 通信的本质是:将数据从二层提升到三层,由路由表决定转发路径,再降回二层发出。

整个过程涉及两次"解封装 → 重新封装":

  1. 数据帧从 VLAN 10 进入交换机,到达 VLANIF 10 接口
  2. 交换机剥离以太网帧头,读取 IP 包的目的地址
  3. 查路由表,找到目的网络 192.168.20.0/24 的出接口为 Vlanif 20
  4. 构造新的以太网帧:源 MAC = Vlanif 20 的 MAC,目的 MAC = PC_B 的 MAC
  5. 新帧从 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

思考题

  1. PC_A(VLAN 10)Ping PC_B(VLAN 20),第一次 Ping 通常延迟较高(如 50ms),后续正常(如 1ms)。请从 ARP 的角度分析为什么第一次这么慢。
  2. 如果三层交换机的 VLANIF 20 接口被 shutdown 了,VLAN 10 的 PC 还能 Ping 通 VLAN 20 的 PC 吗?路由表会怎样变化?
  3. 同一台三层交换机上有 VLANIF 10(192.168.10.1/24)和 VLANIF 11(192.168.10.1/24),这种配置是否可行?为什么?

下篇预告

了解了跨 VLAN 通信需要三层接口后,最经典的具体实现方案是什么?如何用一根网线和路由器的子接口实现多个 VLAN 之间的通信?下一篇文章《单臂路由实现 VLAN 间通信》将详细讲解这个经典方案。