第4章:VLAN间路由:单臂路由原理与配置,三层交换机的SVI接口,VLAN间路由的故障排查

VLAN技术把广播域给切开了,这是好事。但问题来了——不同VLAN之间怎么通信?

说白了,VLAN隔离了二层,那我们就得靠三层设备来打通。这就是VLAN间路由要干的事。我刚开始接触这个的时候,也觉得挺绕的,但搞明白之后,其实就那么几种玩法。

4.1 单臂路由:老派但经典的做法

单臂路由,名字挺形象。一根物理链路,上面跑多个VLAN的流量。怎么做到的?靠子接口。

你想想看,路由器只有一个物理口接到交换机。但交换机上不同VLAN的流量,都得从这个口出去找路由器。路由器得知道哪个流量是哪个VLAN的,对吧?

所以,我们在路由器的物理口上,创建多个逻辑子接口。每个子接口绑定一个VLAN ID。这样,路由器就能区分不同VLAN的报文了。

核心原理: 路由器子接口收到带802.1Q tag的帧,根据tag判断属于哪个VLAN,然后查路由表转发。

配置示例(华为设备)

# 交换机侧配置
vlan batch 10 20
interface GigabitEthernet0/0/1
 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广播的。所以必须敲arp broadcast enable,否则PC连网关都ping不通。我在项目中遇到过有人忘了这条命令,排查了半天,最后发现是ARP表为空。

避坑指南: 我曾经在配置单臂路由时,只配了IP和dot1q termination,结果VLAN 20的PC死活不通。后来抓包一看,路由器根本没回ARP。加上arp broadcast enable,问题秒解。

4.2 三层交换机的SVI接口:现代网络的首选

单臂路由有个硬伤——带宽瓶颈。所有VLAN间的流量,都得挤在一根物理链路上。你想想看,如果VLAN间流量大,这根链路就扛不住了。

所以,现代网络里,我们更常用三层交换机。它把路由功能集成到了交换机里。怎么实现VLAN间路由?靠SVI(Switch Virtual Interface)。

SVI,说白了就是给VLAN配一个IP地址。这个IP就是该VLAN内主机的网关。三层交换机内部,可以直接查路由表转发,不需要经过外部路由器。

核心优势: 硬件转发,线速性能。没有单臂路由的带宽瓶颈。

配置示例(华为设备)

# 创建VLAN
vlan batch 10 20

# 配置SVI接口
interface Vlanif10
 ip address 192.168.10.254 255.255.255.0

interface Vlanif20
 ip address 192.168.20.254 255.255.255.0

# 将端口加入VLAN
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10

interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 20

配置完SVI后,三层交换机内部会自动生成直连路由。VLAN 10的PC ping VLAN 20的PC,流量走到交换机,查路由表发现下一跳是Vlanif20,直接硬件转发。速度非常快。

个人经验: 我建议在部署SVI时,把网关地址统一规划。比如VLAN 10用.254,VLAN 20也用.254。这样后期维护时,一看IP就知道是网关,省心不少。

4.3 VLAN间路由的故障排查:实战中的那些坑

VLAN间路由不通,是网络工程师最常遇到的问题之一。我总结了一套排查思路,分享给你。

4.3.1 检查VLAN配置

先确认PC所在的VLAN对不对。用display vlan看看端口是不是在正确的VLAN里。我遇到过有人把端口配成了trunk,但没允许对应VLAN通过,结果PC连网关都ping不通。

4.3.2 检查SVI接口状态

SVI接口是逻辑接口,它的状态依赖于物理端口。如果VLAN内没有up的物理端口,SVI接口会down。用display interface Vlanif10看看状态。

注意: 如果VLAN内所有端口都是down的,SVI接口也会down。这时候路由表里就没有这条直连路由。PC自然无法通信。

4.3.3 检查路由表

display ip routing-table看看有没有到目标网段的路由。如果没有,检查SVI接口是否配置了IP,或者接口是否up。

4.3.4 检查ARP表

PC ping网关,第一步是发ARP请求。如果ARP表里没有网关的MAC,那肯定不通。用display arp看看。我建议在PC上先ping一下网关,看能不能通。

4.3.5 检查防火墙/ACL

有些交换机默认开启了VLAN间隔离。比如华为的port-isolate模式。或者配置了ACL,禁止了VLAN间流量。用display acl all检查一下。

故障排查口诀: 先看VLAN对不对,再看SVI up没up。路由表里有没有,ARP表里全不全。最后别忘了ACL。

4.3.6 实战案例

我记得有一次,客户说VLAN 10和VLAN 20之间不通。我登录交换机,先看VLAN配置,没问题。再看SVI接口,都是up。路由表里也有直连路由。但PC就是ping不通网关。

后来我抓包发现,PC发了ARP请求,但交换机没回。我查了一下,发现SVI接口上配置了arp-proxy enable,但没配置arp broadcast enable。加上之后,问题解决。

避坑指南: 我曾经在配置SVI时,忘了给VLAN内添加任何物理端口。结果SVI接口一直down。后来加了一个access端口,SVI立刻up了。记住:SVI接口依赖于物理端口的状态。

4.4 总结

VLAN间路由,说白了就是让不同VLAN的流量能互相访问。单臂路由适合小规模网络,但性能有限。三层交换机的SVI接口,是现代网络的主流方案,性能好,配置也简单。

故障排查时,按顺序检查VLAN、SVI、路由表、ARP、ACL。大部分问题都能解决。嗯,记住这些,你就能搞定VLAN间路由了。