VLAN间通信实战:单臂路由与三层交换SVI配置详解

发布时间:2026/10/22 14:26:51
VLAN间通信实战:单臂路由与三层交换SVI配置详解 学网络的人基本都有这么一段经历VLAN划分一看就会可真到“让两个VLAN互相通信”的时候就卡住了。VLAN本身的作用是隔离广播域可隔离之后业务又要求互通这中间的矛盾正是路由要解决的核心问题。而解决VLAN间通信最经典的两条技术路线就是单臂路由和三层交换SVI。单臂路由靠路由器的子接口终结VLAN标签三层交换则直接用交换机上的Vlanif虚拟接口当网关。这两种方案表面看都是“给接口配个IP”但背后的转发逻辑、适用场景和踩坑点完全不一样。这篇文章我准备了四个实战练习从最简单的单臂路由开始逐步过渡到三层交换SVI再到两者混合组网最后是故障排查专项。全部基于eNSP模拟器命令是华为VRP风格你可以跟着一步步敲四遍下来基本就能把VLAN间通信这块吃透。适合正在备考网络认证、刚入行的运维新人也适合想把手头网络重新梳理一遍的老同事。1. 先把思路理清楚VLAN间通信到底难在哪1.1 为什么VLAN天生“自闭”VLAN的本质是把一台物理交换机划分成多台逻辑交换机。同一个VLAN内的设备二层帧可以在交换机上直接转发靠的是MAC地址表不同VLAN之间端口默认是隔离的广播、组播、单播帧都不会跨VLAN乱跑。你可以把VLAN想象成一栋楼里的不同房间同一房间里的人能听到彼此说话不同房间之间隔着一堵墙声音传不过去。这就是VLAN的价值抑制广播风暴、隔离故障域、提升安全性。可一旦业务需要跨房间交流就必须要有人充当“门房”——这个门房就是三层路由设备。关键点在于二层交换机只认MAC地址它根本不知道IP地址和网段的概念。要让VLAN 10的报文到达VLAN 20必须有设备能把报文从“基于MAC的转发”升级到“基于IP的转发”这个升级动作就叫路由。1.2 三种常见方案对比初学者最容易想到的方案是给每个VLAN配一个路由器物理接口。一个VLAN占一个端口两个VLAN就占两个端口三个VLAN占三个。这在VLAN数量少的时候能用但VLAN一多路由器端口根本不够用而且每个物理接口都要单独拉线到交换机布线也痛苦。于是有了单臂路由交换机用一条trunk链路连到路由器的一个物理口路由器在这个物理口上创建多个子接口每个子接口对应一个VLAN子接口带着802.1Q的VLAN标签工作。这样一条物理链路就承载了所有VLAN的流量路由器既做VLAN标签的“拆”和“装”又做IP路由转发。再往后企业核心网络普遍用三层交换机。三层交换机在硬件层面集成了路由能力直接在交换机上给每个VLAN创建Vlanif虚拟接口也就是SVI交换虚拟接口配好IP后它就是该VLAN所有终端的网关。终端把报文发给网关三层交换机内部完成路由转发不需要外部路由器参与VLAN间通信。方案转发性能端口利用率配置复杂度典型适用场景路由器物理接口高低一个VLAN占一个口简单实验环境、VLAN极少单臂路由子接口中高一个口终结所有VLAN中等小型网络、实验室、毕设三层交换SVI高高直接在交换机内完成简单企业核心、大中型园区记住一个结论单臂路由是“用软件路由换端口”三层交换是“用硬件转发换性能”。现在生产环境几乎都用三层交换但单臂路由的思路依然是理解VLAN间通信的最佳入门教材。2. 实验环境与基础准备2.1 模拟器选型与设备清单我用的是eNSP华为官方的网络模拟器免费网上就能下。选它的理由很实在设备模型齐全AR系列路由器支持子接口和路由协议S5700交换机支持Vlanif三层接口而且自带Wireshark抓包排查问题非常直观。本次四个练习涉及的设备如下设备型号eNSP内角色SW1S5700二层/三层交换机按练习切换角色R1AR2220路由器练习一、三中承担路由职责PC1PCVLAN 10 终端PC2PCVLAN 20 终端PC3PC外网侧终端练习三IP和VLAN规划统一成一套四个练习都基于这张表避免反复改地址对象VLAN网段网关/接口地址PC110192.168.10.0/24192.168.10.254PC220192.168.20.0/24192.168.20.254PC3无独立网段172.16.1.0/24172.16.1.254交换机-Router互联10010.0.0.0/30交换机10.0.0.2 / 路由器10.0.0.12.2 二层基础配置先打好不管单臂路由还是三层交换交换机侧的二层配置是一样的创建VLAN、把终端口设为access并划入对应VLAN、把上行口设为trunk并放行VLAN。Huawei system-view [Huawei] sysname SW1 [SW1] vlan batch 10 20 Info: This operation may take a few seconds. Please wait for a moment... [SW1] interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1-GigabitEthernet0/0/1] quit [SW1] interface GigabitEthernet0/0/2 [SW1-GigabitEthernet0/0/2] port link-type access [SW1-GigabitEthernet0/0/2] port default vlan 20 [SW1-GigabitEthernet0/0/2] quit [SW1] interface GigabitEthernet0/0/3 [SW1-GigabitEthernet0/0/3] port link-type trunk [SW1-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/3] quitPC这边也统一配置PC1地址192.168.10.1掩码255.255.255.0网关192.168.10.254PC2地址192.168.20.1掩码255.255.255.0网关192.168.20.254。eNSP的PC在命令行里直接配置就行注意网关必须填不填网关就是“只能看不能出门”。3. 练习一单臂路由让两个VLAN互相访问3.1 拓扑与核心思路拓扑非常简单SW1的GE0/0/1接PC1VLAN 10GE0/0/2接PC2VLAN 20GE0/0/3用trunk上行接到R1的GE0/0/0。R1的GE0/0/0上创建两个子接口GE0/0/0.10和GE0/0/0.20。单臂路由的核心思路就两个字终结。交换机在trunk链路上发出的帧是带VLAN Tag的路由器子接口通过dot1q termination vid命令识别出这个Tag属于哪个VLAN把帧交给对应的子接口处理子接口配置了IP后就能作为该VLAN的网关完成跨VLAN路由。3.2 路由器子接口配置在R1上执行Huawei system-view [Huawei] sysname R1 [R1] interface GigabitEthernet0/0/0.10 [R1-GigabitEthernet0/0/0.10] dot1q termination vid 10 [R1-GigabitEthernet0/0/0.10] ip address 192.168.10.254 255.255.255.0 [R1-GigabitEthernet0/0/0.10] arp broadcast enable [R1-GigabitEthernet0/0/0.10] quit [R1] interface GigabitEthernet0/0/0.20 [R1-GigabitEthernet0/0/0.20] dot1q termination vid 20 [R1-GigabitEthernet0/0/0.20] ip address 192.168.20.254 255.255.255.0 [R1-GigabitEthernet0/0/0.20] arp broadcast enable [R1-GigabitEthernet0/0/0.20] quit有三条命令必须强调。第一dot1q termination vid 10是子接口和VLAN绑定的关键它告诉路由器“凡是带着VLAN 10 Tag进来的帧都交给这个子接口处理”。很多新人漏了这条结果子接口完全不认帧路由表里接口状态永远是down。第二arp broadcast enable在eNSP里必须配。原因是子接口默认不处理广播帧而终端要通信必须先发ARP广播请求去解析网关的MAC地址。不开启这个功能子接口收到ARP请求不回应终端永远解析不到网关MACping自然全不通。这句命令是单臂路由实验里最经典的一个坑几乎人人踩过。第三子接口配完后检查一下物理接口GE0/0/0是否up用display interface GigabitEthernet0/0/0看状态。物理口down子接口不可能up这是最容易被忽略的“前置条件”。3.3 验证连通性配置完毕从PC1 ping PC2PC ping 192.168.20.1 Ping 192.168.20.1: 32 data bytes, Press Ctrl_C to break Reply from 192.168.20.1: bytes32 Sequence1 ttl127 time10 ms Reply from 192.168.20.1: bytes32 Sequence2 ttl127 time10 ms Reply from 192.168.20.1: bytes32 Sequence3 ttl127 time10 ms通了之后再看路由器上的路由表[R1] display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 6 Routes : 6 Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.10.0/24 Direct 0 0 D 192.168.10.254 GigabitEthernet0/0/0.10 192.168.20.0/24 Direct 0 0 D 192.168.20.254 GigabitEthernet0/0/0.20两条直连路由都在说明子接口已经作为两个网段的网关生效了。TTL值为127而不是128说明中间经历了一次路由器转发这也是判断流量是否走了三层设备的一个小技巧。3.4 数据包转发路径拆解用抓包软件或者脑子里过一遍完整路径PC1要访问PC2先把数据包发给网关192.168.10.254。因为PC2和PC1不在同一网段PC1查ARP表发现网关MAC是路由器的MAC于是把帧的目标MAC写成路由器子接口的MAC帧头打上VLAN 10的Tag从SW1的GE0/0/1进入。交换机在VLAN 10里查MAC表把帧从trunk口GE0/0/3转发出去Tag还是10。路由器GE0/0/0收到帧后发现Tag是10把它交给子接口GE0/0/0.10子接口剥掉Tag根据目的IP 192.168.20.1查路由表发现匹配的直连网段在GE0/0/0.20。于是路由器重新封装源MAC改成子接口GE0/0/0.20的MAC目标MAC改成PC2的MAC如果ARP表里没有就发ARP请求查询帧头打上VLAN 20的Tag从同一个物理口发回交换机。交换机收到后依据Tag 20查MAC表最终转发到GE0/0/2到达PC2。整个过程里路由器既当“拆标签的人”又当“换标签的人”这正是“单臂”的含义——一条物理链路进也走它出也走它流量在这里会形成V字形的转发路径。4. 练习二三层交换机的SVI路由4.1 拓扑与思路变化练习二去掉路由器直接把SW1换成支持三层功能的交换机eNSP里的S5700就支持。PC1接GE0/0/1划入VLAN 10PC2接GE0/0/2划入VLAN 20然后交换机上创建Vlanif10和Vlanif20两个三层虚拟接口。这里必须理解Vlanif是什么。Vlanif不是一个物理接口而是交换机内部的一个三层接口它对应某个VLAN。只要这个VLAN存在且至少有一个access口在线Vlanif就可以保持up状态配上IP就成了这个VLAN的网关。4.2 配置SVI二层基础配置和前面一样先建VLAN、划端口然后在交换机上创建Vlanif[SW1] interface Vlanif10 [SW1-Vlanif10] ip address 192.168.10.254 255.255.255.0 [SW1-Vlanif10] quit [SW1] interface Vlanif20 [SW1-Vlanif20] ip address 192.168.20.254 255.255.255.0 [SW1-Vlanif20] quit就这么简单。不需要在交换机上启动额外命令S5700本身就是三层设备支持Vlanif之间直接路由转发。敲完之后从PC1 ping PC2同样能通。用display ip routing-table看交换机上也有两条直连路由下一跳分别是Vlanif10和Vlanif20。4.3 单臂路由与SVI的转发差异虽然结果一样但内部机制完全不同。单臂路由收到的是带Tag的帧要剥Tag、查路由、再打Tag所有处理都由CPU完成性能上不去。SVI模式下交换机在芯片层面做转发第一个报文到达时三层引擎查路由表找到出接口Vlanif20然后把MAC地址信息写入硬件转发表后续同一流的报文直接在硬件里转发根本不再走CPU。这就是业内常说的“一次路由多次交换”。用数字说话单臂路由的转发瓶颈就是路由器CPU的处理能力AR2220这类设备在小流量下没问题但几百台终端同时跨VLAN访问时CPU占用会直线上升。三层交换机的硬件转发速率能达到线速级别这才是企业核心网络选它的根本原因。4.4 二层交换机与三层交换机的区分练习二里有个很常见的困惑同样是S5700为什么有的型号能配Vlanif有的不能关键看交换机是否具备三层转发能力。纯二层交换机内部只有MAC地址表没有路由表interface Vlanif命令敲上去会报错三层交换机在硬件上集成了路由转发引擎Vlanif接口对它来说就是一个普通的三层接口。区分的实用方法进设备敲display capability或者直接试着配置Vlanif能配上IP并出现在路由表里就是三层交换机。在企业组网里一般用三层交换机做核心二层交换机做接入接入层负责连接终端和划分VLAN核心层负责跨VLAN路由和上行出口这就是最常见的“核心-接入”两层架构。5. 练习三混合组网——三层交换做核心单臂路由做出口5.1 为什么大网要用混合方案把练习一和练习二连起来想一个问题如果整个公司的VLAN间通信都在三层交换机上完成那路由器干什么答案是连接外部网络。三层交换机负责内部VLAN之间高速互访路由器负责把内部流量送出去同时也把外部流量接进来。这个实验的拓扑是SW1仍作为三层核心PC1在VLAN 10PC2在VLAN 20网关都是SW1上的Vlanif。SW1的GE0/0/3接R1的GE0/0/0互联网段10.0.0.0/30。R1的GE0/0/1再接一台PC3172.16.1.1/24模拟外网服务器。5.2 交换机与路由器的互联配置SW1侧GE0/0/3划入VLAN 100创建Vlanif100[SW1] vlan 100 [SW1-vlan100] quit [SW1] interface GigabitEthernet0/0/3 [SW1-GigabitEthernet0/0/3] port link-type access [SW1-GigabitEthernet0/0/3] port default vlan 100 [SW1-GigabitEthernet0/0/3] quit [SW1] interface Vlanif100 [SW1-Vlanif100] ip address 10.0.0.2 255.255.255.252 [SW1-Vlanif100] quitR1侧GE0/0/0不再用子接口直接配物理接口地址[R1] interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0] ip address 10.0.0.1 255.255.255.252 [R1-GigabitEthernet0/0/0] quit [R1] interface GigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1] ip address 172.16.1.254 255.255.255.0 [R1-GigabitEthernet0/0/1] quit这里有个很容易绕晕的点SW1和R1之间的链路为什么用access配VLAN 100而不是子接口因为这条链路的业务就一个——三层互联它在SW1上属于哪个VLAN只影响本机Vlanif的建立并不需要在链路上跑多个VLAN的带Tag流量。用access加上Vlanif逻辑清晰配置也简单。如果以后要在一条链路上跑多个互联VLAN才需要再考虑子接口或trunk方案。5.3 静态路由默认路由加回程路由互联地址配好后两张路由表里只有直连路由PC1能ping通网关10.0.0.1但ping不通PC3。因为SW1不知道172.16.1.0/24怎么走R1也不知道192.168.10.0/24和192.168.20.0/24怎么走。需要配两条方向相反的路由。SW1作为内部核心对外部网络的了解很简单——所有不知道去哪的流量都丢给R1就好所以配默认路由[SW1] ip route-static 0.0.0.0 0.0.0.0 10.0.0.1R1知道内部有两个网段都从10.0.0.2方向到达配两条明细静态路由[R1] ip route-static 192.168.10.0 255.255.255.0 10.0.0.2 [R1] ip route-static 192.168.20.0 255.255.255.0 10.0.0.2为什么要“一默认、两明细”因为内部网段是确定的明细路由精确可控外部网段是不确定的默认路由兜底。如果SW1也配明细的172.16.1.0路由、R1也配默认路由当然也能通但一旦内部新增VLANR1就要跟着加路由维护成本高。生产环境中“内部明细、出口默认”是最常见的路由设计思路。配完路由PC1先ping PC3验证PC ping 172.16.1.1 Reply from 172.16.1.1: bytes32 Sequence1 ttl126 time20 msTTL值为126说明经过了两次路由转发SW1一次R1一次。对照练习一的TTL 127可以直观感受到每一跳路由都会让TTL减1。再用tracert看路径应该能看到两个跳点第一跳10.0.0.1R1第二跳172.16.1.1PC3。这就是三层核心加出口路由的完整链路。5.4 混合组网的转发路径复盘PC1访问PC3的完整路径是PC1把报文发给网关Vlanif10SW1查路由表命中默认路由从Vlanif100发出帧头目标MAC是10.0.0.1R1同时源IP、目的IP保持不变R1收到后查明细路由表命中172.16.1.0/24从GE0/0/1发出给PC3。回程刚好相反PC3发给网关172.16.1.254R1查明细路由从GE0/0/0发给SW1的10.0.0.2SW1再转发给PC1。这个练习揭示了一个关键判断单臂路由不是只能接二层交换机三层交换机也一样可以接路由器的物理接口或子接口。真正的决定因素是链路要承载什么流量、需要多少VLAN终结而不是路由器装在哪一侧。6. 练习四从零开始的排障实战6.1 排查的总顺序前三个练习都顺利的话建议做一件事故意把配置改错再尝试快速定位。我个人排查VLAN间通信问题时习惯按“物理状态 → 二层划分 → 三层地址 → 路由表 → 数据面验证”的顺序来每一步都有对应的display命令绝不瞎猜。排查层检查内容核心命令物理接口是否up线缆是否正常display interface brief二层VLAN是否存在端口划没划对display vlan, display port vlan二层trunk放行是否完整display interface GigabitEthernet0/0/3三层网关地址、子接口状态display ip interface brief三层路由表是否完整display ip routing-table数据面ARP是否学习到MAC表是否正常display arp, display mac-address6.2 症状一PCping不通自己的网关最常见的原因就是access端口VLAN划错。比如PC1实际在GE0/0/1口但配置里把该端口划到了VLAN 20PC1的IP还在192.168.10.0/24网关192.168.10.254又不在VLAN 20里自然不通。排查方法很简单display port vlan一看就知道每个端口的VLAN归属[SW1] display port vlan Port Link Type PVID Trunk VLAN List GigabitEthernet0/0/1 access 10 - GigabitEthernet0/0/2 access 20 -看到端口PVID正确后再看PC的网卡配置是否正确。这里有个小教训别高估终端配置很多人折腾半天最后发现是PC的IP或者网关填错了。排查永远从最简单的配置开始。6.3 症状二网关通跨VLAN不通网关能ping通说明终端到网关的二层链路没问题问题出在三层路由侧。第一个怀疑对象是trunk放行。练习一的拓扑里SW1的GE0/0/3必须port trunk allow-pass vlan 10 20如果只放行了VLAN 10PC2发的带Tag 20的帧在trunk口就直接被丢弃路由器根本收不到。用display interface GigabitEthernet0/0/3查看trunk配置重点看PVID和Allowed VLAN列表[SW1] display interface GigabitEthernet0/0/3 Port link-type : trunk VLAN passing : 10, 20 VLAN permitted : 10, 20 Trunk port PVID : 1第二个怀疑对象是路由器子接口的arp broadcast enable漏配。刚才说过漏配这条命令子接口不会响应ARP广播现象是PC ping网关能通因为网关可能已经在ARP缓存里但重新开机或者清ARP后突然全不通出现这种“时通时不通”的诡异现象优先查单臂路由的ARP配置。6.4 症状三Vlanif接口状态一直是down练习二里配好Vlanif10后发现接口状态是downIP配了也没用。原因通常是这个VLAN在交换机上没有任何在线端口。Vlanif的三层状态依赖对应的二层VLAN“活着”如果VLAN 10里一个access口都没划或者划了但线缆没接设备Vlanif10就会处于down状态。确认方法[SW1] display interface Vlanif10 Vlanif10 current state : down然后查display vlan 10看VLAN 10下有没有物理端口。常见解决办法是把PC接入交换机的端口正确划入VLAN 10确保端口up。此外VLAN 10不能是保留VLAN 1把Vlanif1配成网关地址是很多新手会犯的错VLAN 1比较特殊强烈建议业务VLAN从10开始规划。6.5 症状四路由表里看不到远端网段练习三里配置了静态路由但PC1还是访问不到PC3查SW1的display ip routing-table发现没有默认路由。常见原因有三个静态路由的下一跳写错、网关地址敲错、以及最重要的——设备没保存配置重启后丢失。还有一个隐蔽问题SW1上静态路由的下一跳10.0.0.1必须在Vlanif100的直连网段内。如果Vlanif100配的是10.0.0.2/24而R1是10.0.0.1没问题但如果你把掩码写成了/30却配了个/24路由表虽然能生成实际转发时ARP解析会出问题。所以敲ip route-static之前先确认互联接口的两端地址和掩码完全匹配再用display ip interface brief核对一遍。6.6 快速判断口诀排障练多了我自己总结了一句口诀先看端口、再看VLAN、三看Tag、四看路由、五看ARP。端口up不代表VLAN对VLAN对不代表trunk放行放行不代表示口Tag匹配Tag匹配不代表路由表有路由路由有也不代表ARP能解析到对端MAC。每一层都要验证而不是层层跳过去直接ping。7. 踩坑经验与个人建议7.1 eNSP操作里的几个实用细节先说模拟器本身。eNSP里设备启动慢是常态我习惯先把所有设备拖好、连线再启动拓扑而不是一台台开。设备启动后等两三分钟确认所有设备名字旁边的状态变成绿色再开始敲命令。配置过程中务必养成随手保存的习惯在用户视图执行save否则模拟器崩溃或者关闭后一切归零。抓包功能值得多用。右键设备接口启动抓包就能看到实时的802.1Q帧。做练习一的时候我强烈建议抓一次trunk口的数据你能亲眼看到PC1的报文带着VLAN 10的Tag到达路由器路由器回应时Tag变成了20。这种直观感受比背十遍转发原理都管用。7.2 配置规范建议四个练习做完建议养成的配置习惯给设备改sysname给端口写description给VLAN命名。比如接入PC1的端口写description To-PC1-VLAN10VLAN 10命名为OfficeVLAN 20命名为Server。网络排障时一条清晰的description能省掉大量“这是哪个口”的疑问。命令很简单但这属于职业习惯越早建立越好。7.3 后续还能怎么深入这四套练习覆盖了VLAN间通信的骨架但真实网络远不止这些。想继续深入建议在练习二的基础上增加DHCP中继交换机Vlanif作为网关终端通过DHCP获取IP理解报文如何跨VLAN请求地址。再进一步可以加ACL在Vlanif上配置过滤规则实现VLAN 10能访问VLAN 20但VLAN 20不能主动访问VLAN 10这对理解安全策略很有价值。如果还想碰高可用给两个Vlanif配置VRRP用两台三层交换机做网关冗余这是园区网核心最典型的架构之一。我个人实际做这些练习时收获最大的不是记住了几条命令而是建立了一个习惯每配完一层就立刻用display验证一层。网络配置本身就是“有状态”的工作链路、VLAN、路由、ARP每一层都是上一层的依赖任何一层断了上层配得再漂亮也是白搭。把这四套练习从头到尾敲一遍再自己故意制造几个故障练排查VLAN间通信这个主题基本就彻底拿下了。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询