4、VLAN间路由:单臂路由的原理与配置、三层交换机的SVI接口配置、VLAN间路由的调试与排错

VLAN 能把广播域切小,网络更安全、更干净。但问题来了——不同 VLAN 之间怎么通信?

说白了,VLAN 隔离的是二层,跨 VLAN 必须走三层。实现方式就两种:单臂路由和三层交换机 SVI。我刚开始带项目时,总觉得单臂路由够用,直到有一次在核心层用路由器做单臂,带宽直接被打满……嗯,从那以后我就明白,选型不能只看能不能通。

核心结论:单臂路由适合小规模、实验环境;三层交换机 SVI 是企业级标配。

4.1 单臂路由的原理与配置

单臂路由,名字挺形象——路由器只用一条物理链路连到交换机,但在这条链路上跑多个 VLAN 的流量。怎么做到的?靠子接口。

每个子接口绑定一个 VLAN,配置一个 IP 作为该 VLAN 的网关。交换机那头,连路由器的端口要配成 Trunk,允许这些 VLAN 通过。

配置步骤(以华为设备为例)

  1. 交换机上创建 VLAN 10、VLAN 20,对应端口划入 Access。
  2. 连接路由器的端口设为 Trunk,允许 VLAN 10、20 通过。
  3. 路由器上进入物理接口,创建子接口 GigabitEthernet0/0/0.10,封装 dot1q 10,配 IP 192.168.10.1/24。
  4. 创建子接口 GigabitEthernet0/0/0.20,封装 dot1q 20,配 IP 192.168.20.1/24。
  5. PC 的网关分别指向对应子接口 IP。
# 交换机配置
vlan batch 10 20
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 20
interface GigabitEthernet0/0/24
 port link-type trunk
 port trunk allow-pass vlan 10 20

# 路由器配置
interface GigabitEthernet0/0/0.10
 dot1q termination vid 10
 ip address 192.168.10.1 255.255.255.0
 arp broadcast enable
interface GigabitEthernet0/0/0.20
 dot1q termination vid 20
 ip address 192.168.20.1 255.255.255.0
 arp broadcast enable
避坑指南:我曾经在配置单臂路由时,忘了在子接口下敲 arp broadcast enable,结果 PC 能 ping 通网关,但跨 VLAN 就是不通。华为设备默认不开启子接口的 ARP 广播,这是个经典坑。

4.2 三层交换机的SVI接口配置

单臂路由有个硬伤——所有跨 VLAN 流量都要绕到路由器,带宽受限于那条物理链路。你想想看,核心层流量那么大,一条线怎么扛得住?

三层交换机就不一样了。它把路由功能集成到交换机内部,通过SVI(Switch Virtual Interface)实现 VLAN 间路由。每个 VLAN 对应一个 SVI 接口,配 IP 当网关。流量在交换机内部直接转发,不走外部链路,速度就是线速。

配置步骤(华为)

  1. 创建 VLAN 10、VLAN 20,端口划入对应 Access。
  2. 创建 VLANIF 接口:interface Vlanif10,配 IP 192.168.10.254/24。
  3. 创建 VLANIF 20,配 IP 192.168.20.254/24。
  4. 开启三层交换机的 IP 路由功能(默认开启)。
# 三层交换机配置
vlan batch 10 20
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 20
interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
注意:SVI 接口默认是 down 的,直到对应 VLAN 下至少有一个 Access 端口或 Trunk 允许的端口处于 up 状态。如果 VLAN 里没有活跃端口,SVI 不会起来,跨 VLAN 路由自然不通。

4.3 VLAN间路由的调试与排错

配置写完了,但 PC1(VLAN 10)ping PC2(VLAN 20)不通。怎么办?别慌,我一般按这个顺序查。

排错步骤

步骤 检查项 命令/方法
1 PC 网关配置 ipconfig 确认网关 IP 是否正确
2 VLAN 成员关系 display vlan 10 查看端口是否在 VLAN 内
3 Trunk 链路 display port trunk 确认允许的 VLAN 列表
4 SVI 接口状态 display interface Vlanif10 看协议是否 up
5 路由表 display ip routing-table 确认直连路由存在
6 ARP 表 display arp 确认网关能学到 PC 的 MAC

我记得有一次,客户报障说新加的 VLAN 50 跟其他 VLAN 不通。我查了一圈,VLAN 建了,SVI 配了,端口也划了,就是不通。最后用 display interface Vlanif50 一看,协议状态是 down。再查,原来那个 VLAN 下所有端口都被 shutdown 了……嗯,这种低级错误其实挺常见的。

我的习惯:配完 SVI 后,先 ping 一下网关自己,再 ping 同 VLAN 的其他 PC,最后才测跨 VLAN。逐段验证,定位快很多。

4.4 单臂路由 vs 三层交换机 SVI

对比项 单臂路由 三层交换机 SVI
转发性能 受限于路由器 CPU 和链路带宽 硬件线速转发,性能高
扩展性 子接口数量有限,VLAN 多时配置复杂 支持大量 VLAN,扩展方便
适用场景 小型网络、实验、临时方案 企业核心、汇聚层
配置复杂度 需要子接口封装 dot1q 直接配 VLANIF,更简洁
故障点 单链路单点故障 可配合堆叠/链路聚合提高可靠性
VLAN间路由实现方式对比 单臂路由 路由器子接口 dot1q 封装 交换机 Trunk 端口 流量绕行路由器 性能瓶颈:单链路+CPU转发 三层交换机 SVI VLANIF 接口直接配 IP 内部硬件转发 无需外部链路 线速转发,扩展性强 选型建议 小规模/实验用单臂路由,企业核心/汇聚用三层交换机 SVI
一句话总结:单臂路由是“借道”路由器做三层转发,三层交换机 SVI 是“自带”路由功能。能用三层交换机就别用单臂路由,除非你只是在实验室里玩玩。