公司网络里,财务、人事、技术各自用不同的 VLAN 隔开,安全是安全了,可一到要跨部门传文件就卡壳。问题往往出在 VLAN 间的路由表项没配明白。
为什么需要 VLAN 间路由
默认情况下,VLAN 是广播隔离的。PC1 在 VLAN 10,PC2 在 VLAN 20,哪怕连在同一台交换机上,也互相 ping 不通。这时候就得靠三层设备——比如三层交换机或路由器——来做转发。设备得知道:从 VLAN 10 过来的包,要去 VLAN 20 的网段,下一跳在哪,出口是哪个接口。
路由表项是怎么生成的
静态配置是最常见的做法。比如在三层交换机上手动加一条:
ip route 192.168.20.0 255.255.255.0 192.168.10.254
意思是:去 192.168.20.0 网络的流量,下一跳是 192.168.10.254。这条记录会写进路由表,设备查表转发。
动态路由协议也能自动更新表项。比如启用了 OSPF,各个 VLAN 接口状态一变,邻接路由器之间就会同步最新的可达信息,表项自动刷新,省得挨个登录设备改配置。
常见坑点:子接口和 SVI 别搞混
有些老型号路由器用子接口做单臂路由。比如物理口 Gig0/0 拆成 Gig0/0.10 和 Gig0/0.20,分别对应 VLAN 10 和 20。每个子接口配 IP,开启 802.1Q 封装:
interface GigabitEthernet0/0.10
encapsulation dot1Q 10
ip address 192.168.10.1 255.255.255.0
!
interface GigabitEthernet0/0.20
encapsulation dot1Q 20
ip address 192.168.20.1 255.255.255.0
而三层交换机更常用 SVI(Switch Virtual Interface)。比如创建 vlan 10 接口并配地址:
interface Vlan10
ip address 192.168.10.1 255.255.255.0
no shutdown
SVI 起来后,系统自动产生直连路由,其他 VLAN 只要路由指向它,就能通信。
ACL 干扰别忽视
路由表看着没问题,但就是不通?可能是 ACL 挡了。比如配了访问控制列表限制 VLAN 之间的访问:
access-list 100 deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
access-list 100 permit ip any any
这条规则明确拦掉了财务(10网段)访问技术部(20网段)的流量。就算路由表项正确,包也到不了对端。
排错从 show ip route 开始
登录设备第一件事,敲 show ip route。看看目标网段有没有出现在表里,是静态(S)、直连(C)还是动态学习(O、D等)。缺了就补,错了就改。再配合 ping 和 traceroute,一步步看卡在哪一层。
有次客户说新上线的仓储系统访问不了 ERP,查了一圈发现是交换机重启后 SVI 没 auto-up,VLAN 间路由表里缺了直连项。手动 no shutdown 一下,秒通。这种细节,文档未必写,但现场常碰见。