做网络的人对VLAN肯定不陌生划分VLAN能隔离广播域、缩小故障域、提升安全性但有个问题马上跟着来——不同VLAN之间怎么通信总不能让两边的人靠物理换线来互访。这个问题行业内最经典的解法就是两条路一条叫单臂路由拿一台路由器在外围终结各个VLAN的网关另一条叫三层交换让交换机自己用三层接口SVI/VLANIF转发跨VLAN流量。这篇文章我准备了四个实战练习从最简单的单臂路由开始逐步过渡到三层交换、DHCP中继再到综合排错。每个实验我都给出了配置思路、完整命令、验证方法和踩坑记录适合刚学完VLAN基础、准备考网络认证或者工作中第一次接触VLAN间通信的兄弟参考。你不需要多高深的基础只要会配Access口和Trunk口跟着一步步做完基本就能把VLAN间通信这条线彻底打通。1. 先想明白VLAN间通信到底在解决什么问题1.1 网关放哪决定了用什么方案VLAN间通信的本质是路由。PC的报文要跨出广播域必须经过一个三层设备这个三层设备就是网关。问题是这个网关放在哪里放在路由器上就是单臂路由。路由器的一个物理接口分成多个子接口每个子接口对应一个VLAN子接口的IP就是该VLAN内PC的网关。所有跨VLAN流量都从交换机Trunk口送出去到达路由器子接口路由器查路由表后转发回交换机再送到目的VLAN。放在交换机上就是三层交换。交换机上为每个VLAN创建一个SVISwitch Virtual Interface交换机虚拟接口这个SVI的IP就是这个VLAN的网关。跨VLAN流量在交换机内部查表转发根本不经过外部路由器。所以你看这不是两种互斥的技术而是“网关部署位置不同”带来的两种自然方案。理解这一点后面四个实验的逻辑就通了。1.2 为什么三层交换能替代单臂路由单臂路由最大的问题是性能瓶颈。所有VLAN间流量都要经过那条Trunk链路跑到路由器再跑回来数据路径长了一倍转发性能受限于路由器的处理能力。早期网络设备性能弱这种架构在流量小的时候还能用流量一大就开始丢包。三层交换机的思路完全不同。它把路由功能做进了交换芯片SVI收到报文后直接在硬件里查路由表、做转发不需要绕行外部链路。再加上现在企业级交换机基本都支持三层功能价格也下来了所以实际组网中VLAN间通信绝大多数用三层交换完成。但我依然建议你先做单臂路由实验。不是因为工作中用得上而是它能帮你把“VLAN间通信依赖三层终结”这个原理看得清清楚楚。先学会原理再去理解SVI就顺理成章了。2. 实验准备环境、拓扑与IP规划2.1 用什么环境做实验推荐用模拟器完成别一上来就搬真机。模拟器能随便折腾不用考虑物理线缆、接口损坏也不影响现网。你只需要准备一台支持创建VLAN和配置Trunk的交换机二层即可练习二开始需要支持SVI的三层交换机再加一台路由器以及两台PC就可以完成全部四个练习。如果你手头有真实设备就更好了模拟器和真机有个差别要记住真机的物理接口必须协商起来接口状态是Up子接口才可能转发流量。模拟器里往往默认就Up真机容易在这里踩坑。2.2 拓扑设计与地址规划以最经典的两台PC跨VLAN互访为例拓扑长这样PC1属于VLAN 10IP为192.168.10.10/24网关192.168.10.1PC2属于VLAN 20IP为192.168.20.10/24网关192.168.20.1交换机上接PC1的接口划分到VLAN 10接PC2的接口划分到VLAN 20连接路由器的接口配置为Trunk练习一用的是“交换机路由器”组合练习二开始换成“三层交换机PC”。IP规划这两个VLAN保持不变只是网关的位置变了从路由器子接口变成交换机的SVI。这样你在对比学习时能直观感受同样的地址段网关在不同设备上的配置方式差异。注意PC的网关必须跟VLAN的网关地址在同一网段且不能和VLAN内其他主机地址冲突。我见过不少人把网关写错成相邻网段的地址结果怎么ping都不通排查半天才发现是配置层面的低级失误。3. 练习一单臂路由用一台路由器终结两个VLAN3.1 配置思路先在交换机上划VLAN再在路由器上拆子接口单臂路由的实验关键动作有两个交换机侧把VLAN划分好、把Trunk链路上的VLAN放行路由器侧把一个物理接口拆成多个子接口每个子接口对应一个VLAN并配置网关地址。交换机侧配置创建VLAN 10、VLAN 20接PC1的接口设为Access划入VLAN 10接PC2的接口设为Access划入VLAN 20连接路由器的接口设为Trunk并放行VLAN 10和VLAN 20这里有个细节值得多说一句Trunk接口默认会放行所有VLAN但在生产环境中我习惯显式指定放行的VLAN范围而不是用默认全部放行。原因是防止VLAN没规划好时Trunk把不该互通的VLAN也带通了存在安全隐患。路由器侧配置以常见的子接口命令风格为例interface GigabitEthernet0/0 no shutdown interface GigabitEthernet0/0.10 encapsulation dot1q vlan 10 ip address 192.168.10.1 255.255.255.0 interface GigabitEthernet0/0.20 encapsulation dot1q vlan 20 ip address 192.168.20.1 255.255.255.0第一条no shutdown是物理接口的总开关很多人配完子接口才发现流量不通回头一查物理接口是shutdown状态。真机上这个坑非常常见。子接口上的encapsulation dot1q vlan 10意思是这个子接口专门用来处理带VLAN 10标签的帧路由器根据标签把流量送到对应的子接口处理。3.2 验证与测试从PC1 ping PC2配置完成后在PC1上ping PC2的地址。通了说明整个链路没问题。如果不通按顺序检查PC1的网关是否指向192.168.10.1交换机上Trunk是否放行了VLAN 10和20路由器物理接口是否Up子接口的封装VLAN和IP是否对应正确这里我强烈建议你在PC1上先ping网关再ping PC2。先ping网关能确认本端二三层是否正常再ping跨VLAN能确认整个路由链路是否正常。分段测试是最快的排错方式不要一上来就盯着跨网段的目标狂ping。我在模拟器里做这个实验时有次怎么都ping不通排查了很久发现是交换机的Trunk口忘记敲了放行VLAN 20的命令VLAN 20的帧到了Trunk口直接被丢弃路由器根本收不到。这种问题在配置命令的“查漏”阶段很难发现因为你看着拓扑图Trunk口确实是连着的但数据层面走不通。3.3 这个实验能让你看懂什么单臂路由做完你会在路由器上观察到有意思的现象子接口是两个不同的网段路由器生成两条直连路由。PC1发往PC2的报文先到网关192.168.10.1路由器查路由表发现192.168.20.0/24走子接口0.20于是重新封装报文从0.20子接口转发出去再进Trunk回到交换机交换机解封装后从Access口送给PC2。这就是“路由”的本质根据目的IP查路由表确定出接口然后重新封装。4. 练习二三层交换用SVI直接在交换机内部完成路由4.1 配置思路VLAN里建一个虚拟接口三层交换机的逻辑比单臂路由更直接交换机里为每个VLAN创建一个虚拟接口这个接口的IP就是这个VLAN的网关。你不需要外边再接一台路由器所有VLAN间流量在交换机内部就转完了。配置命令大致如下vlan 10 vlan 20 interface vlanif 10 ip address 192.168.10.1 255.255.255.0 interface vlanif 20 ip address 192.168.20.1 255.255.255.0关键点来了SVI接口必须对应的VLAN已经创建而且这个VLAN里至少有一个接口是Up状态SVI才会从Down变Up。很多新手配完VLANIF接口发现状态是Down第一反应是接口配置错了其实是VLAN里没有活跃接口。接入PC的接口配置还是一样的接PC1的接口划入VLAN 10接PC2的接口划入VLAN 20。三层交换机不需要Trunk到外部路由器因为网关已经在内部了。4.2 为什么SVI比单臂路由更适合实际组网这里我多说几句经验之谈。SVI方案的第一个好处是节省设备成本不需要一台专门的路由器第二个好处是转发性能高交换机芯片直接处理第三个好处是管理方便所有VLAN的网关都集中在交换机上配置清晰排错也简单。在实际组网里你会看到一种很常见的架构接入层是二层交换机汇聚层是三层交换机用户的网关统一放在汇聚层的SVI上。这样接入层只管转发汇聚层只管路由层次分明。等做完练习三你就能亲手把这种架构搭出来。注意在部分三层交换机上SVI默认是开启路由功能的但也有部分设备需要手动打开路由开关。模拟器里可能默认就开着真机上最好确认一下。如果你发现SVI配置没问题但VLAN间就是不互通去查全局路由功能是否开启。4.3 对比实验同一个ping路径完全不同做完练习二建议你做一个直观对比分别抓包看单臂路由和三层交换环境下PC1 ping PC2的报文路径。单臂路由的场景下报文从PC1发出到达交换机交换机从Trunk口转发给路由器路由器再送回交换机交换机最终转给PC2。一次ping数据走了两遍Trunk链路。三层交换的场景下报文从PC1发出到达交换机交换机直接查找路由表从SVI 20那个方向找下一跳内部转发给PC2。你根本看不到外部链路有流量。理解了这两者的差异你就明白为什么三层交换是主流方案了。5. 练习三汇聚三层交换接入二层交换搭建多VLAN互通环境5.1 更贴近实战的拓扑网关集中到汇聚层前面两个练习都是最小化拓扑适合学原理。第三个练习我建议你把规模拉大一点一台汇聚三层交换机下接两台接入二层交换机每台接入交换机下挂不同VLAN的PC。这样一来你就要处理跨交换机的Trunk链路还要理解为什么网关要放在汇聚层而不是每台接入交换机上。拓扑设计汇聚交换机创建VLAN 10、VLAN 20配置两个SVI作为网关接入交换机1连接汇聚交换机的接口用Trunk下联PC的接口按VLAN划分接入交换机2同样连接汇聚交换机Trunk放行VLAN 10和VLAN 20PC1接在接入交换机1的VLAN 10PC2接在接入交换机2的VLAN 20这个拓扑里有个关键点接入交换机只做二层它不需要任何三层接口也不需要考虑路由。VLAN 10和VLAN 20的网关都在汇聚交换机上所有跨VLAN流量从接入交换机出来沿着Trunk到汇聚交换机汇聚交换机查SVI路由后再沿Trunk送回对应的接入交换机。这种架构的好处是接入交换机可以很便宜、很简单汇聚交换机承担三层压力网络规模可以横向扩展。如果你有二三十个VLAN分布在几十台接入交换机下面只要汇聚层做好SVI和路由整体架构依然清晰。5.2 配置示例接入交换机和汇聚交换机分工不同接入交换机1的配置vlan 10 vlan 20 interface GigabitEthernet0/0/1 switchport access vlan 10 interface GigabitEthernet0/0/2 switchport mode trunk switchport trunk allowed vlan 10 20接入交换机2的配置类似区别是下联PC的接口划到VLAN 20Trunk放行VLAN 10和20。汇聚交换机的配置vlan 10 vlan 20 interface vlanif 10 ip address 192.168.10.1 255.255.255.0 interface vlanif 20 ip address 192.168.20.1 255.255.255.0 interface GigabitEthernet0/0/1 switchport mode trunk switchport trunk allowed vlan 10 20 interface GigabitEthernet0/0/2 switchport mode trunk switchport trunk allowed vlan 10 20注意汇聚交换机下连接入交换机的接口是Trunk但汇聚交换机自己也在这些VLAN里所以SVI才能在这些VLAN中正常工作。这里有个容易被忽略的点如果汇聚交换机上没有创建VLAN 10即使Trunk放行了VLAN 10SVI 10也可能无法正常转发流量。配置完成后测试PC1 ping PC2能通说明跨交换机、跨VLAN的流量没问题在汇聚交换机上查看ARP表和路由表能看到两个VLAN的网关地址以及PC的MAC地址5.3 进阶玩法给这个环境加上DHCP中继如果你觉得这个实验还不够过瘾可以再多做一步——在汇聚交换机上配置DHCP中继。假设你有一台独立的DHCP服务器地址是192.168.99.10PC1、PC2通过DHCP自动获取IP地址。但是DHCP服务器和PC1不在同一个广播域PC1的DHCP发现报文无法直接到达服务器。这时候就需要汇聚交换机充当DHCP中继把PC1的DHCP请求转发给服务器再把服务器的应答转回PC1。配置思路是在SVI 10和SVI 20上分别指定DHCP服务器的地址开启DHCP中继功能。这样VLAN 10里的PC发DHCP请求到达SVI 10后交换机把请求单播转发到192.168.99.10服务器回包后交换机再通过SVI 10转回PC。DHCP中继在实际组网里简直是标配因为不会给每个VLAN单独放一台DHCP服务器。这个练习做完你的组网能力已经能覆盖很多中小型项目的需求了。5.4 这个实验最容易踩的三个坑第一Trunk放行VLAN时漏了VLAN。接入交换机1的Trunk忘了放行VLAN 20PC1 ping PC2不通但ping网关可能通因为网关在汇聚交换机流量根本到不了汇聚交换机。第二接入交换机的接口模式搞错。下联PC的接口必须用Access口如果你误配成Trunk口PC虽然能连通但带标签的帧发到PC上PC一般无法识别。我见过有人图省事把下联口也配成Trunk结果PC上的抓包工具能看到奇怪的VLAN标签。第三网关不在同一个VLAN对应的SVI上。PC1的网关应该是192.168.10.1如果手误把网关配成了192.168.20.1那么PC1发出的跨VLAN流量根本到不了正确的网关路由无从谈起。6. 练习四综合排错把VLAN间通信的故障一网打尽6.1 故障排查的思路分层定位第四个练习不是配置新设备而是“破坏性测试”。我有意模拟出几个典型的故障场景让你自己动手排查。这个练习的价值比前面三个加起来都大因为真正工作里配置大多是现成的最难的是出了问题怎么定位。我的建议是在练习三的环境基础上依次制造以下故障然后按固定思路排查。故障一接入交换机1的Trunk接口没有放行VLAN 20故障二汇聚交换机上SVI 20接口是shutdown状态故障三PC2的网关配置错误指向了192.168.10.1故障四汇聚交换机与接入交换机2之间的物理链路Down了排查思路我推荐“从底往上”第一步看物理层。接口状态是否Up网线、光模块是否正常。物理层不通后面查什么都没意义。第二步看链路层。Trunk接口是否协商成功放行了哪些VLANNative VLAN是否一致。用命令查看接口的Trunk信息比对两端放行的VLAN列表。第三步看网络层。PC的IP、掩码、网关是否配对SVI是否处于Up状态设备路由表里有没有对应网段。第四步看应用层。VLAN间ping通但业务不通可能是防火墙策略、ACL规则或其他安全策略拦截了流量。这套流程看起来简单但没有经验的人往往跳着查一会查路由表一会查Trunk效率很低。我建议你每次排查都按这个顺序写下来哪里断了就停在哪里深挖。6.2 常见问题速查表我把VLAN间通信最常见的故障整理成一张表配合练习四的排查流程用起来很方便。现象可能原因排查与解决PC ping不通网关PC的IP/网关配置错误核对PC静态IP、子网掩码、网关地址PC ping通网关但ping不通跨VLAN主机SVI或子接口配置错误或VLAN间路由未生效查看SVI状态是否Up查看路由表是否有对应网段PC ping不通任何设备但接口显示UpTrunk上VLAN未放行查看Trunk接口放行VLAN列表确认两端一致跨VLAN流量时通时不通Trunk的Native VLAN不一致检查两端Native VLAN配置保持一致SVI一直是DownVLAN下无活跃接口或SVI被shutdown确认VLAN内有接口UpSVI执行undo/shutdown恢复路由器子接口收不到流量物理接口down或Trunk未放行VLAN确认物理接口UpTrunk放行对应VLAN跨VLAN能ping通但业务应用不通三层通了四层或应用层被策略拦截检查ACL、防火墙策略、服务器服务状态这张表里的问题我在做实验和写方案时都反复遇到过其中Native VLAN不一致这个坑最隐蔽。两台交换机对接Trunk口如果一边Native VLAN是1另一边Native VLAN是10那么不带标签的帧就会在两端被归到不同VLAN导致流量异常。模拟器里默认都是VLAN 1你可能碰不到但真实设备上改过默认VLAN的情况很常见。6.3 排错的两条独家经验经验一永远先做端到端的“最小化测试”。也就是先让PC1 ping网关通了再去ping远端。如果网关都不通说明问题在本端网关通了远端不通问题在路由链路。很多人一上来就用PC1 ping PC2一旦不通你根本不知道是哪里断了。经验二学会看ARP表。VLAN间通不通用ARP表就能看出端倪。在汇聚交换机上查看ARP表如果能看到PC1和PC2的ARP记录说明两台PC都成功解析到了网关的MAC地址如果PC1有ARP记录、PC2没有问题大概率在PC2侧到SVI 20之间的链路。ARP表是判断“谁在广播域里正常通信”的很好的侧面证据。7. 最后再说点个人体会四个练习做完你会经历一个很有意思的变化一开始觉得VLAN间通信就是“配个IP、设个网关”的事做完单臂路由后开始理解子接口和封装做完三层交换后理解了SVI和路由表做完综合实验后开始有组网的整体观。这种从点到面的认知提升才是这四个练习真正的收获。我自己印象最深的一个坑是很多年前在真机上配单臂路由子接口配置完全正确VLAN也放行了但PC就是ping不通网关。后来发现物理接口默认为shutdown状态子接口配得再漂亮也没用物理层没起来一切白搭。从那以后我养成了一个习惯任何设备配置完第一步先看接口状态第二步再看协议状态这个习惯到现在都在用。另外一个小技巧练完单臂路由和三层交换后建议你把路由器拿走重新看看这个网络怎么设计才能保证VLAN间通信你会发现只有三层交换这条路可以走。这就是为什么实际组网里三层交换几乎是标配路由器更多地负责出口NAT、ACL、广域网接入这些任务而不是每天忙着转发内部的VLAN流量。这四个练习不是互相替代的关系而是帮你建立一条完整的技术认知链。你先看到外部路由的笨拙才能理解内部交换的高效你先体验到Trunk和VLAN放行的链路细节才好在现网上快速定位问题。接下来你可以在这个基础上扩展比如加一台出口路由器做VLAN间互访的集中控制或者在汇聚层上做VRRP保证网关冗余这些都是顺着这条认知链继续往下走的自然延伸。
阅读完成 · 觉得有帮助?