
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.1QISL已经很少见了。配置命令interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30,40switchport 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.10ip 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第四步创建VLANvlan 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补默认路由检查NATDHCP拿不到IP中继未配或地址池错show run interface VlanX补ip helper-addresstrunk不通允许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负责转发优先级低的做BackupMaster挂了自动接管。切换时间通常在秒级终端基本无感知。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 0OSPF的好处是自动学习路由一台设备上新增网段另一台自动同步。缺点是配置相对复杂而且如果区域划分不当可能产生次优路径。中小型网络里如果拓扑稳定静态路由也够用而且更可控。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 summary7.3 变更管理的经验网络变更最怕的就是改完出问题然后不知道改了什么。我的习惯是每次变更前先记录当前配置和状态变更时只改一个点改完立刻验证验证通过再改下一个点。如果一次改多个地方出了问题很难定位是哪个改动导致的。另外变更窗口尽量选在业务低峰期并且提前准备好回滚方案。回滚方案不是“把配置改回去”这么简单而是要明确回滚的具体命令和验证步骤。比如改SVI地址之前先想好如果新地址不通怎么快速改回旧地址以及改回去之后怎么验证。8. 从三层交换延伸出去的几个方向三层交换机的配置逻辑掌握之后可以往几个方向继续深入。一个是动态路由协议OSPF是最值得学的因为它在企业网络里用得最多而且理解OSPF之后IS-IS和BGP学起来会容易很多。另一个是网络虚拟化比如VXLAN和EVPN这些技术本质上是在三层交换的基础上做叠加底层逻辑还是路由和转发。还有一个方向是自动化运维。三层交换机的配置可以通过Python脚本批量下发比如用Netmiko或者NAPALM。当网络设备数量多的时候手工配置效率太低而且容易出错自动化是必然趋势。不过自动化之前先把单台设备的配置逻辑吃透不然脚本写出来也是错的。我个人在实际操作中的体会是三层交换机配置这件事命令本身不难难的是规划。VLAN怎么划、地址怎么分、路由怎么走这些设计层面的决策比敲命令重要得多。命令敲错了可以改规划错了改起来伤筋动骨。所以每次上手之前先在纸上把拓扑和地址规划画清楚比直接上设备敲命令效率高得多。最后再分享一个小技巧如果你不确定某个配置命令的效果可以在实验环境里先试或者用show run对比配置前后的差异。三层交换机的配置变更大部分都可以通过对比配置文件来验证这比凭记忆判断靠谱得多。