☰
三层交换机VLAN间路由配置实战:SVI、DHCP中继与静态路由详解
2026/10/18 7:53:28 网站建设 项目流程

1. 三层交换机到底在什么场景下才真正需要

很多人第一次接触三层交换机,是因为所在的环境里VLAN一多,单靠路由器做单臂路由已经扛不住了。具体表现就是跨网段访问慢、延迟忽高忽低、核心链路经常跑满,而接入层还在不停地加设备。这时候如果继续用路由器串在中间,转发瓶颈会非常明显,因为路由器的接口数量和转发能力天生就不是为高密度东西向流量设计的。

三层交换机解决的核心问题就一个:让不同VLAN之间的流量在交换机内部完成路由转发,而不是绕到外部路由器再绕回来。它把路由能力集成进了交换芯片,转发靠硬件ASIC,速度是线速的,延迟从毫秒级降到微秒级。这个差异在几十台终端的环境里可能感觉不明显,但到了几百上千个终端、几十个VLAN的时候,就是能不能用的区别。

适合看这篇内容的人有三类。第一类是刚入行的网络运维,手上有三层交换机但只会当二层用,不知道该配什么。第二类是自己搭实验环境或者小型办公网络的技术爱好者,想搞清楚VLAN间路由到底怎么落地。第三类是准备考证或者面试的人,需要把三层交换的配置逻辑从头到尾串一遍,而不是只背命令。

我下面讲的内容,全部基于一个典型场景展开:一台三层交换机作为核心,下挂若干接入交换机,划分多个VLAN,终端分布在不同VLAN里,需要互通,同时还要能访问外部网络。这个场景覆盖了绝大多数中小型网络的核心需求,配置逻辑也可以直接迁移到更大规模的网络里。

2. 整体设计思路与方案选型

2.1 为什么用SVI而不是单臂路由

VLAN间路由有两种主流做法:单臂路由和SVI。单臂路由是在路由器上创建一个物理接口的多个子接口,每个子接口对应一个VLAN的网关,流量从交换机 trunk 到路由器,路由器做完路由再 trunk 回来。这个方案的问题是所有跨VLAN流量都要经过那一条物理链路,带宽直接被卡死,而且路由器做路由转发是CPU参与的,延迟和吞吐都上不去。

SVI是Switch Virtual Interface的缩写,直白说就是给每个VLAN配一个虚拟的三层接口,这个接口的IP就是该VLAN内终端的网关。三层交换机内部维护一张路由表,不同VLAN的SVI之间直接硬件转发,不需要外部设备参与。你可以把它理解成:每个VLAN都有一个自己的“门”,三层交换机内部修了高速公路把这些门连起来,数据包从A门进去,直接从B门出来,全程走内部通道。

选SVI的理由很直接:转发性能高、配置简洁、不依赖外部设备、扩展性好。加一个新VLAN,就加一个SVI,不需要动物理连接。这也是为什么现在几乎所有企业网络的核心层都用三层交换机做网关,而不是在路由器上划子接口。

2.2 三层交换机的路由模式选择

三层交换机有两种工作模式需要搞清楚:二层模式和三层模式。二层模式下,它就是一个普通的交换机,VLAN间流量不通。三层模式下,SVI才能生效,路由功能才打开。大部分设备默认是二层模式,需要手动开启路由功能,命令通常是ip routing。这个命令不敲,SVI配了IP也不通,这是新手最容易踩的坑。

另一个需要决策的点是:三层交换机之间怎么互联。如果只有一台三层交换机,那它既是核心又是网关,所有SVI都在这台设备上。如果有两台做冗余,就需要考虑三层互联的链路怎么配,是用物理口直接配IP,还是用VLAN起三层互联。前者简单直接,后者更灵活但多一层VLAN配置。中小型网络里,两台三层交换机之间用一条独立的VLAN做三层互联是最常见的做法,因为这样可以把互联链路也纳入VLAN管理,方便做聚合和冗余。

2.3 地址规划与VLAN划分的对应关系

地址规划这件事,必须在配置之前就定好,不能边配边想。我见过太多人配到一半发现VLAN ID和网段对不上,或者网关地址和终端地址冲突,然后回头改,改一处动全身。

一个清晰的规划逻辑是这样的:先确定需要几个VLAN,每个VLAN大概多少终端,然后按终端数量分配网段大小。比如办公区200人,分两个VLAN各100人,每个VLAN用一个/25的网段就够,网关取网段的第一个可用地址。服务器区单独一个VLAN,用/26或者/27,因为服务器数量少但流量大。管理VLAN单独一个,只放网络设备的带外管理地址。

VLAN ID的分配也有讲究。1是默认VLAN,不要用。2到1001是标准VLAN范围,可以正常使用。建议按功能分段:10到19给办公,20到29给服务器,30到39给管理,40到49给无线,50到59给监控。这样一看VLAN ID就知道是什么用途,排查问题的时候非常省事。

3. 核心配置细节与实操要点

3.1 基础环境准备与VLAN创建

拿到一台三层交换机,第一步不是直接敲配置,而是先确认几个事情:当前配置是不是空的,有没有残留的VLAN和IP,管理地址是什么,能不能通过Console或者带外管理口登录。如果是二手设备或者别人用过的设备,建议先备份配置再清空,避免旧配置干扰。

确认环境干净之后,开始创建VLAN。以一台常见的企业级三层交换机为例,命令逻辑是这样的:

enable configure terminal vlan 10 name Office_A vlan 20 name Office_B vlan 30 name Server vlan 40 name Management exit

这里有一个细节:VLAN名称不是必须的,但强烈建议加上。原因很简单,三个月后你回头看配置,看到vlan 10和看到vlan 10 name Office_A,理解成本完全不一样。而且有些网管软件会读取VLAN名称做拓扑展示,没有名称显示出来就是一堆数字,很难看。

创建完VLAN之后,需要把物理接口划入对应的VLAN。接入交换机的上联口配成trunk,允许所有需要的VLAN通过。三层交换机连接接入交换机的接口也配成trunk。这里要注意trunk的封装协议,现在基本都是802.1Q,ISL已经很少见了。配置命令:

interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30,40

switchport trunk allowed vlan这一行很关键。如果不写,默认允许所有VLAN通过,看起来方便,但实际上是个隐患。万一有人误创建了一个VLAN,流量就会莫名其妙地泛洪过去。明确列出允许的VLAN,既安全又清晰。

3.2 SVI配置与网关地址设置

VLAN创建好、接口划好之后,接下来就是配SVI。SVI的配置逻辑是:进入VLAN接口,配IP地址,开启接口。命令如下:

interface Vlan10 ip address 192.168.10.1 255.255.255.128 no shutdown interface Vlan20 ip address 192.168.10.129 255.255.255.128 no shutdown interface Vlan30 ip address 192.168.30.1 255.255.255.192 no shutdown interface Vlan40 ip address 192.168.40.1 255.255.255.192 no shutdown

这里有几个容易出错的地方。第一,SVI的IP地址必须是该VLAN网段的网关地址,终端上配的默认网关就是这个IP。第二,no shutdown不能忘,SVI默认是shutdown状态,不开启的话接口是down的,路由表里也不会出现直连路由。第三,子网掩码的写法,用点分十进制或者CIDR都可以,但要注意别算错。比如/25的掩码是255.255.255.128,/26是255.255.255.192,这两个经常有人搞混。

配完SVI之后,一定要敲ip routing。这个命令是三层交换机的总开关,不敲的话SVI之间不会路由。敲完之后可以用show ip route查看路由表,应该能看到每个VLAN的直连路由,格式是C 192.168.10.0/25 is directly connected, Vlan10。看到这些条目,说明SVI配置生效了。

3.3 终端网关与DHCP中继的配合

终端要能跨VLAN通信,除了自己的IP和掩码,还必须配默认网关。网关地址就是对应SVI的IP。如果终端是手动配IP,这一步没什么好说的,照着规划填就行。但如果是DHCP分配,就需要考虑DHCP服务器放在哪个VLAN,以及怎么让其他VLAN的终端也能拿到IP。

DHCP中继的配置逻辑是这样的:在三层交换机上,每个需要获取DHCP的SVI接口下,指定DHCP服务器的地址。命令:

interface Vlan10 ip helper-address 192.168.30.10 interface Vlan20 ip helper-address 192.168.30.10

ip helper-address的作用是把DHCP广播包转成单播,发给指定的DHCP服务器。DHCP服务器收到之后,根据请求包里的网关地址信息,从对应的地址池里分配IP。这里的关键是DHCP服务器上要配好每个VLAN的地址池,并且地址池的网关要指向对应的SVI地址。如果地址池配错了,终端可能拿到IP但上不了网,因为网关不对。

注意:ip helper-address不仅可以转发DHCP,默认还会转发其他UDP广播,比如TFTP。如果不需要,可以用no ip forward-protocol udp关掉不需要转发的协议,避免不必要的广播流量。

3.4 静态路由与默认网关的配置

三层交换机内部VLAN间路由靠直连路由就够了,但如果要访问外部网络,比如去互联网或者去其他楼层、其他楼栋的网络,就需要配静态路由或者动态路由。中小型网络里,静态路由是最常见的选择,因为简单、可控、不占资源。

假设三层交换机上联到一台出口路由器,出口路由器的内网接口地址是192.168.40.254,那么三层交换机上需要配一条默认路由:

ip route 0.0.0.0 0.0.0.0 192.168.40.254

这条命令的意思是:所有不知道往哪发的包,都发给192.168.40.254。出口路由器上则需要配回程路由,指向三层交换机所管理的各个网段。回程路由可以是一条汇总路由,比如ip route 192.168.0.0 255.255.0.0 192.168.40.1,也可以每个网段单独配。汇总路由更简洁,但前提是网段规划得比较规整,都在192.168.0.0/16里面。

如果网络里有多个三层交换机,或者有多个出口,静态路由就需要更细致地规划。比如主出口和备出口,可以用浮动静态路由,主路由的管理距离默认是1,备路由设成10或者更高,这样主路由失效时备路由自动生效。

4. 完整实操流程与关键环节记录

4.1 从零开始的上机配置顺序

我把整个配置过程按实际操作顺序梳理一遍,你可以直接照着做。假设设备已经通过Console线连好,终端软件也打开了。

第一步,进入特权模式和全局配置模式:

enable configure terminal

第二步,修改设备名称,方便识别:

hostname Core-SW-01

第三步,开启路由功能:

ip routing

第四步,创建VLAN:

vlan 10 name Office_A vlan 20 name Office_B vlan 30 name Server vlan 40 name Management vlan 50 name Uplink exit

第五步,配置上联口为trunk,允许所有业务VLAN通过:

interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50 no shutdown exit

第六步,配置SVI和网关地址:

interface Vlan10 ip address 192.168.10.1 255.255.255.128 no shutdown interface Vlan20 ip address 192.168.10.129 255.255.255.128 no shutdown interface Vlan30 ip address 192.168.30.1 255.255.255.192 no shutdown interface Vlan40 ip address 192.168.40.1 255.255.255.192 no shutdown interface Vlan50 ip address 192.168.50.1 255.255.255.252 no shutdown exit

第七步,配置默认路由指向出口路由器:

ip route 0.0.0.0 0.0.0.0 192.168.50.2

第八步,配置DHCP中继:

interface Vlan10 ip helper-address 192.168.30.10 interface Vlan20 ip helper-address 192.168.30.10

第九步,保存配置:

end write memory

这套流程走下来,一台三层交换机的基本配置就完成了。终端接入对应的VLAN,配好网关,就能实现VLAN间互通和访问外部网络。

4.2 验证配置是否生效的检查清单

配完不等于通了,必须逐项验证。我习惯按下面的顺序检查:

第一,检查VLAN是否创建成功:show vlan brief,看VLAN ID、名称、状态、端口成员是否都正确。

第二,检查trunk链路:show interfaces trunk,看trunk口是否up,允许的VLAN列表是否和规划一致。

第三,检查SVI状态:show ip interface brief,看每个VLAN接口的IP、状态、协议是否都是up/up。

第四,检查路由表:show ip route,看直连路由和默认路由是否都在。

第五,从一台终端ping同VLAN的网关,再ping其他VLAN的网关,最后ping外部地址。三步都通,说明配置没问题。

第六,如果终端用DHCP,检查终端是否拿到了正确网段的IP,网关是否是SVI地址。

这套检查清单看起来简单,但实际排查问题的时候,按顺序走一遍,90%的问题都能定位到具体环节。

4.3 一个容易忽略的细节:ARP与代理ARP

三层交换机做VLAN间路由的时候,终端把网关的MAC地址当成目的MAC,三层交换机收到包之后,查路由表,发现目的网段是直连的另一个VLAN,于是它需要知道目的终端的MAC地址。这时候它会发ARP请求,目的终端回应之后,三层交换机把包转发过去。

这个过程里有一个细节:如果目的终端没有配网关,或者网关配错了,三层交换机发ARP请求的时候,目的终端可能不会回应,因为它认为源IP不在同一个网段。这时候就需要检查终端的网关配置。另一个情况是,如果三层交换机上开启了代理ARP,它可能会用自己的MAC回应ARP请求,导致流量路径异常。代理ARP默认是关闭的,但有些设备可能默认开启,配之前最好确认一下。

提示:如果发现VLAN间能ping通网关但ping不通终端,优先检查终端的网关和掩码配置,其次检查三层交换机的ARP表show arp,看有没有学到终端的MAC。

5. 常见问题与排查技巧实录

5.1 VLAN间不通的排查思路

VLAN间不通是最常见的问题,表现是终端能ping通自己的网关,但ping不通其他VLAN的网关或终端。排查顺序如下:

先确认三层交换机上ip routing有没有敲。这个命令不敲,SVI之间不会路由,这是最高频的原因。

再确认SVI接口是不是up。show ip interface brief里如果Vlan10的状态是down,说明该VLAN下没有任何up的端口,或者SVI被shutdown了。

然后确认终端的网关是不是配对了。网关必须是SVI的IP,不能是其他地址。

最后确认trunk链路允许的VLAN列表里有没有包含相关VLAN。如果trunk没放行某个VLAN,那个VLAN的流量根本到不了三层交换机。

5.2 能ping通网关但上不了外网

这个问题通常是路由或NAT的问题。三层交换机上要有默认路由指向出口设备,出口设备上要有回程路由指向三层交换机,并且出口设备要做NAT,把内网地址转换成公网地址。

排查的时候,先在三层交换机上show ip route看默认路由在不在。然后在三层交换机上ping出口设备的内网接口,通了说明链路没问题。再在出口设备上ping三层交换机的SVI地址,通了说明回程路由没问题。最后检查NAT配置,看内网网段有没有被排除或者漏配。

5.3 DHCP获取不到地址

终端拿不到IP,先看终端和DHCP服务器之间的链路通不通。如果DHCP服务器在服务器区VLAN,其他VLAN的终端要通过ip helper-address才能把请求转过去。

检查三层交换机上对应SVI有没有配ip helper-address,地址是不是DHCP服务器的真实地址。然后检查DHCP服务器上的地址池,看网关、DNS、租期这些参数有没有配错。还有一个容易忽略的点:DHCP服务器的地址池里,网关地址必须和SVI地址一致,否则终端拿到IP但网关不对,还是上不了网。

5.4 常见问题速查表

现象可能原因排查命令解决方法
VLAN间不通未开启ip routingshow ip route全局配置下敲ip routing
终端ping不通网关SVI未up或网关配错show ip interface brief检查SVI状态和终端网关
能通内网不能通外网缺默认路由或NATshow ip route补默认路由,检查NAT
DHCP拿不到IP中继未配或地址池错show run interface VlanX补ip helper-address
trunk不通允许VLAN列表不含该VLANshow interfaces trunk补switchport trunk allowed vlan
部分终端不通ARP表项异常show arp清除ARP或检查终端

5.5 几个我踩过的坑

第一个坑:SVI配了IP但忘了no shutdown。这个错误很隐蔽,因为配置看起来是对的,但接口就是down的。后来我养成了习惯,配完SVI立刻show ip interface brief确认状态。

第二个坑:trunk口忘了配switchport trunk encapsulation dot1q。有些设备默认是自动协商,但如果对端不支持ISL,协商可能失败,trunk就起不来。手动指定dot1q最稳妥。

第三个坑:默认路由的下一跳地址写成了SVI地址而不是对端接口地址。默认路由的下一跳必须是直连可达的地址,写错了路由不会生效。

第四个坑:保存配置之前重启了设备。这个不用多说了,配完一定要write memory,不然重启之后全没了。

6. 进阶话题:多台三层交换机的互联与冗余

6.1 两台三层交换机做网关冗余的思路

单台三层交换机做网关有个致命问题:设备挂了,所有VLAN间通信全断。解决思路是两台三层交换机做冗余,终端网关指向一个虚拟IP,两台设备通过协议协商谁来做实际转发。这个协议就是VRRP或者HSRP,原理类似,都是把多台设备虚拟成一台。

配置逻辑是:两台三层交换机上为每个VLAN创建SVI,配真实IP,然后配一个虚拟IP作为终端的网关。优先级高的设备成为Master,负责转发,优先级低的做Backup,Master挂了自动接管。切换时间通常在秒级,终端基本无感知。

6.2 三层互联链路的配置要点

两台三层交换机之间需要一条三层互联链路,用来传递路由信息。最简单的做法是单独划一个VLAN,比如VLAN 99,两台设备各配一个同网段的IP,然后跑OSPF或者静态路由。

如果跑OSPF,配置大概是:

router ospf 1 network 192.168.99.0 0.0.0.3 area 0 network 192.168.10.0 0.0.0.127 area 0 network 192.168.10.128 0.0.0.127 area 0

OSPF的好处是自动学习路由,一台设备上新增网段,另一台自动同步。缺点是配置相对复杂,而且如果区域划分不当,可能产生次优路径。中小型网络里,如果拓扑稳定,静态路由也够用,而且更可控。

6.3 冗余场景下的注意事项

做冗余的时候,有几个点必须注意。第一,两台设备的SVI真实IP不能冲突,虚拟IP要单独规划。第二,VRRP或HSRP的优先级要配好,确保主备关系符合预期。第三,如果跑OSPF,要注意router-id不能冲突,否则邻居关系起不来。第四,互联链路的带宽要足够,因为所有跨设备的路由流量都走这条链路。

还有一个容易被忽略的点:如果两台三层交换机同时连接接入交换机,接入交换机到两台核心的链路要做聚合或者STP,避免环路。通常的做法是接入交换机双上联到两台核心,跑STP,其中一条链路阻塞,核心故障时自动切换。

7. 配置备份与日常维护建议

7.1 配置备份的正确姿势

配置配好之后,第一件事是备份。备份分两种:本地备份和远程备份。本地备份是把配置文件复制到flash里,远程备份是通过TFTP或者SFTP传到服务器上。

本地备份命令:

copy running-config flash:backup-20250101.cfg

远程备份命令:

copy running-config tftp://192.168.30.20/core-sw-01.cfg

备份文件命名建议带上日期和设备名,方便回溯。我一般会在每次变更之前和变更之后各备份一次,这样出问题可以快速回滚。

7.2 日常巡检要看什么

三层交换机的日常巡检,重点看几个指标:CPU利用率、内存利用率、接口错包和丢包计数、ARP表项数量、路由表条目数。这些指标异常往往是大故障的前兆。

CPU利用率持续超过60%就要关注,可能是广播风暴或者路由震荡。接口错包增长快,可能是线缆或者光模块问题。ARP表项突然暴增,可能是ARP攻击或者终端异常。路由表条目数突变,可能是邻居震荡或者配置被误改。

巡检命令:

show processes cpu sorted show processes memory sorted show interfaces counters errors show arp | count show ip route summary

7.3 变更管理的经验

网络变更最怕的就是改完出问题,然后不知道改了什么。我的习惯是:每次变更前,先记录当前配置和状态,变更时只改一个点,改完立刻验证,验证通过再改下一个点。如果一次改多个地方,出了问题很难定位是哪个改动导致的。

另外,变更窗口尽量选在业务低峰期,并且提前准备好回滚方案。回滚方案不是“把配置改回去”这么简单,而是要明确回滚的具体命令和验证步骤。比如改SVI地址之前,先想好如果新地址不通,怎么快速改回旧地址,以及改回去之后怎么验证。

8. 从三层交换延伸出去的几个方向

三层交换机的配置逻辑掌握之后,可以往几个方向继续深入。一个是动态路由协议,OSPF是最值得学的,因为它在企业网络里用得最多,而且理解OSPF之后,IS-IS和BGP学起来会容易很多。另一个是网络虚拟化,比如VXLAN和EVPN,这些技术本质上是在三层交换的基础上做叠加,底层逻辑还是路由和转发。

还有一个方向是自动化运维。三层交换机的配置可以通过Python脚本批量下发,比如用Netmiko或者NAPALM。当网络设备数量多的时候,手工配置效率太低而且容易出错,自动化是必然趋势。不过自动化之前,先把单台设备的配置逻辑吃透,不然脚本写出来也是错的。

我个人在实际操作中的体会是,三层交换机配置这件事,命令本身不难,难的是规划。VLAN怎么划、地址怎么分、路由怎么走,这些设计层面的决策比敲命令重要得多。命令敲错了可以改,规划错了改起来伤筋动骨。所以每次上手之前,先在纸上把拓扑和地址规划画清楚,比直接上设备敲命令效率高得多。

最后再分享一个小技巧:如果你不确定某个配置命令的效果,可以在实验环境里先试,或者用show run对比配置前后的差异。三层交换机的配置变更,大部分都可以通过对比配置文件来验证,这比凭记忆判断靠谱得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询