VLAN和VLAN之间不能互相通信是为什么啊?

1. 根本没开启三层转发(或者路由没配好)

二层交换机只是做广播域隔离,三层交换机才负责不同 VLAN 之间的“路由转发”。

说白了:

★VLAN 是二层隔离, VLANIF 是三层网关, 真正负责不同网段互通的,是交换机内部的“路由功能”。

场景1:VLANIF 配了,但没开启 ip routing

有些低端交换机,默认不开三层转发。不启用 IP 路由功能,VLANIF 全配了也白搭。

怎么看?

display ip routing-table

如果命令返回:“The function is not enabled” 那就是没开三层转发。

开启三层转发:

ip routing

开完之后,再查一次路由表,有内容了再测。

场景2:VLANIF 配了,路由表有,但没下一跳

如果目标 VLAN 的网段,路由表根本没记录, 那流量根本不知道怎么转。

比如:

  • 你配置了 VLAN10 和 VLAN20 的 VLANIF
  • 但 VLAN30 你忘了加 VLANIF 或路由
  • 那 VLAN10 ping VLAN30,怎么都不通。

排查:

display ip routing-table

确认目标网段有没有路由条目。 如果缺少,就补 VLANIF,或者做静态路由。

场景3:有三层网关,但流量走了外部设备

还有一种低级错误:本来可以在核心交换机内部三层转发,结果用户默认网关写错了,走外部防火墙或路由器,再兜回来。

  • 导致链路多跳
  • NAT 打翻
  • ACL 拦截
  • 性能抖死

正确做法:

网段之间的互通,尽量让三层交换机本地转发,走 VLANIF 出口, 性能才最优,路径也最短。

2. 补充一招:怎么快速确认是三层转发问题?

用核心交换机做源 ping,直接发起跨 VLAN 测试:

ping -a 192.168.10.1 192.168.20.10

如果核心上发包也不通,那问题 100% 就是三层转发没打通。

总结

排查 VLAN 间不通,一定要走这几步:

  1. VLAN 是否配置正确?
  2. 接口 VLAN / Trunk 放行了没?
  3. VLANIF 有没有配好?
  4. 三层路由功能开了吗?(ip routing)
  5. 路由表里有目标网段吗?(display ip routing-table)
  6. 流量是不是被错误导向出去了?

一句话:

VLAN 打通只是第一步,

真正让不同 VLAN 互通,靠的是三层交换的路由转发能力。

阅读剩余
THE END