1. 实验背景与整体设计思路1.1 为什么这个组合值得单独拿出来做实验三层交换机加二层交换机的组合几乎是每一个做企业网、园区网、校园网的人绕不开的经典拓扑。很多人第一次接触网络设备配置就是从“一台三层交换机当核心几台二层交换机当接入”这种结构开始的。它看起来简单但真正动手配的时候坑一点都不少VLAN怎么划、Trunk怎么放行、三层接口怎么起、路由怎么通、终端网关指向谁每一步都有讲究。这个实验的核心价值在于它把“二层转发”和“三层转发”这两件事放在同一个网络里让你亲眼看到数据包是怎么从一台接入交换机进入经过Trunk链路到达核心三层交换机再由三层交换机完成VLAN间路由最终到达另一个VLAN的终端。整个过程涉及MAC地址表、ARP表、路由表三张表的协同工作是理解交换与路由分界点的最佳切入点。适合谁来参考刚学完VLAN和Trunk基础、准备进阶到三层交换的初学者需要快速搭建小型园区网原型的技术人员以及想通过模拟器验证自己配置思路的备考人员。只要你手上有模拟器环境跟着走一遍基本能把这类拓扑的配置逻辑吃透。1.2 实验拓扑的选型逻辑与设备角色分配我这次采用的拓扑是典型的“核心-接入”两层结构。核心位置放一台三层交换机接入位置放两台二层交换机终端PC分别挂在两台二层交换机下面。为什么不用路由器做核心因为三层交换机在VLAN间路由的场景下转发性能远高于单臂路由方案而且配置更简洁不需要在物理接口上划分子接口。三层交换机在这里承担两个角色一是作为所有VLAN的网关每个VLAN对应一个VLANIF接口配置IP地址二是作为Trunk链路的汇聚点接收来自二层交换机的带标签流量。二层交换机则只负责一件事把终端PC的流量按VLAN打上标签通过Trunk口送到核心。终端PC的网关统一指向三层交换机对应VLANIF的IP地址。这种角色分配的好处是职责清晰二层交换机不需要任何路由功能配置量极小三层交换机集中处理所有跨VLAN流量策略也好统一部署。实际项目中接入层交换机可能有很多台但核心三层交换机的配置逻辑和这个实验完全一致只是接口数量变多而已。1.3 地址规划与VLAN划分的底层考量地址规划这件事很多人觉得随便填就行但实际做实验时如果规划混乱后面排查问题会非常痛苦。我习惯按VLAN编号来分配网段比如VLAN 10用192.168.10.0/24VLAN 20用192.168.20.0/24这样一看IP就知道属于哪个VLAN排错时效率极高。VLAN划分方面我设计两个业务VLANVLAN 10和VLAN 20。VLAN 10对应网段192.168.10.0/24网关是192.168.10.254VLAN 20对应192.168.20.0/24网关是192.168.20.254。为什么网关用254而不是1纯粹是个人习惯254在地址段末尾视觉上和普通主机地址区分明显不容易误配。你用1也完全没问题只要全网一致就行。终端地址分配VLAN 10里放两台PC地址分别是192.168.10.1和192.168.10.2VLAN 20里放两台PC地址分别是192.168.20.1和192.168.20.2。这样设计是为了后续验证同VLAN互通和跨VLAN互通两个场景。同VLAN互通走二层转发跨VLAN互通走三层路由两种路径都能测到。2. 核心细节解析与实操要点2.1 三层交换机VLANIF接口的配置要点三层交换机上最关键的配置就是VLANIF接口。你可以把它理解为一个“虚拟的三层接口”它不属于任何一个物理端口而是绑定在某个VLAN上。当三层交换机收到某个VLAN的流量时如果目的MAC是自己的VLANIF接口MAC就会交给三层引擎去查路由表。配置VLANIF的步骤很直接先创建VLAN然后进入VLANIF接口视图配置IP地址最后确保接口状态是up的。这里有一个容易忽略的点VLANIF接口的up状态依赖于该VLAN下至少有一个物理端口是up的。如果你创建了VLANIF但没把任何端口划进这个VLAN或者划进去的端口全是down的VLANIF就不会up路由也就不会生效。提示配置完VLANIF后一定要用display ip interface brief确认接口的物理状态和协议状态都是up。如果协议状态是down优先检查该VLAN下有没有活跃的物理端口。另一个细节是VLANIF接口的MAC地址。三层交换机为每个VLANIF接口自动分配一个MAC地址这个MAC地址会成为该VLAN内所有终端的网关MAC。终端PC在发送跨网段数据时会先ARP请求网关MAC得到的正是VLANIF接口的MAC。这个机制保证了流量能被正确送到三层引擎。2.2 二层交换机Trunk链路的放行规则二层交换机在这个拓扑里的核心任务就是Trunk配置。Trunk链路的作用是承载多个VLAN的流量通过802.1Q标签来区分不同VLAN。配置Trunk时最关键的一步是设置允许通过的VLAN列表。很多初学者在这里翻车Trunk口默认只允许VLAN 1通过如果你不手动放行VLAN 10和VLAN 20流量到了Trunk口就被丢弃了。我的习惯是先把Trunk口配置成port link-type trunk然后用port trunk allow-pass vlan 10 20明确放行需要的VLAN。有些模拟器版本支持port trunk allow-pass vlan all但实际项目中不建议这么写因为放行所有VLAN会带来不必要的广播流量和安全风险。精确放行是更好的实践。还有一个容易混淆的点二层交换机上连接终端的接口需要配置成Access模式并划入对应VLAN。Access口收到终端发来的无标签帧后会打上该接口所属VLAN的标签然后从Trunk口送出去。这个过程是自动的不需要额外配置。但如果你把终端接口误配成Trunk终端发来的无标签帧会被打上VLAN 1的标签导致VLAN 10的终端实际上跑到了VLAN 1里网关不通问题就来了。2.3 终端网关与ARP解析的联动机制终端PC的网关配置看起来简单但它是整个跨VLAN通信的起点。当VLAN 10的PC要访问VLAN 20的PC时它发现目的IP和自己不在同一网段于是把数据包发给网关。网关IP是192.168.10.254对应三层交换机的VLANIF 10接口。PC首先会检查自己的ARP缓存里有没有192.168.10.254对应的MAC地址。如果没有就发一个ARP请求广播“谁是192.168.10.254”这个广播会在VLAN 10内传播三层交换机的VLANIF 10接口收到后发现是在问自己的MAC就会单播回复。PC拿到网关MAC后把数据帧的目的MAC填成网关MAC目的IP仍然是VLAN 20的PC地址。三层交换机收到这个帧后发现目的MAC是自己的VLANIF 10接口MAC于是剥掉二层头部把数据包交给三层引擎。三层引擎查路由表发现192.168.20.0/24直连在VLANIF 20上于是重新封装二层头部目的MAC填成VLAN 20那台PC的MAC通过ARP获取从VLANIF 20接口发出去。整个过程涉及两次ARP解析PC解析网关MAC三层交换机解析目的PC的MAC。注意如果终端PC的网关配错了或者三层交换机上没有对应的VLANIF接口跨VLAN通信就会失败。排查时先用display arp看三层交换机有没有学到终端的ARP条目再用display mac-address看MAC地址表有没有正确学习。3. 实操过程与核心环节实现3.1 三层交换机完整配置流程先在三层交换机上创建VLAN 10和VLAN 20然后把连接二层交换机的接口配置成Trunk放行这两个VLAN。接着配置VLANIF 10和VLANIF 20的IP地址作为对应VLAN的网关。最后开启路由功能三层交换机默认开启但有些型号需要手动确认。# 创建VLAN vlan batch 10 20 # 配置连接二层交换机的Trunk接口 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 quit # 配置VLANIF接口作为网关 interface Vlanif10 ip address 192.168.10.254 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quit配置完成后用display ip interface brief检查VLANIF接口状态。如果VLANIF 10和VLANIF 20的物理状态和协议状态都是up说明配置正确。如果协议状态是down检查对应的VLAN下有没有活跃端口。3.2 二层交换机配置与终端接入二层交换机的配置更简单创建VLAN把连接终端的接口划入Access模式并指定VLAN把连接三层交换机的接口配成Trunk并放行对应VLAN。两台二层交换机的配置逻辑完全一样只是VLAN分配可能不同。# 二层交换机A的配置 vlan batch 10 20 # 连接终端的接口划入VLAN 10 interface Ethernet0/0/1 port link-type access port default vlan 10 quit # 连接终端的接口划入VLAN 20 interface Ethernet0/0/2 port link-type access port default vlan 20 quit # 连接三层交换机的Trunk接口 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit二层交换机B的配置同理根据终端所属VLAN调整Access口的VLAN ID。配置完成后用display vlan确认VLAN创建成功用display port vlan确认接口的VLAN归属正确。3.3 终端配置与连通性验证终端PC的配置包括IP地址、子网掩码和网关。VLAN 10的PC配置192.168.10.1/24网关192.168.10.254VLAN 20的PC配置192.168.20.1/24网关192.168.20.254。配置完成后先测试同VLAN互通VLAN 10的PC ping VLAN 10的另一台PC应该能通。这个测试验证的是二层转发路径是否正常。然后测试跨VLAN互通VLAN 10的PC ping VLAN 20的PC。如果通说明三层路由正常。如果不通按以下顺序排查先看PC的ARP缓存里有没有网关MAC再看三层交换机的ARP表里有没有目的PC的ARP条目最后看路由表里有没有直连网段的路由。# 在三层交换机上查看ARP表 display arp # 查看路由表 display ip routing-table # 查看MAC地址表 display mac-address实测下来只要VLANIF接口up、Trunk放行正确、终端网关配置无误跨VLAN通信基本一次就能通。如果遇到问题九成以上是Trunk放行列表漏了某个VLAN或者Access口划错了VLAN。3.4 抓包验证与转发路径确认如果想更直观地看到转发过程可以在Trunk链路上抓包。你会看到VLAN 10的PC发出的数据帧在Trunk链路上带有VLAN 10的标签到达三层交换机后三层交换机重新封装从另一个Trunk口发出时带有VLAN 20的标签。这个标签的替换过程就是三层交换的直观体现。抓包时注意观察几个关键字段源MAC、目的MAC、VLAN标签、IP源地址、IP目的地址。跨VLAN通信时源MAC和目的MAC在每一跳都会变化但IP地址始终不变。这个特性是理解“二层转发改变MAC、三层转发不改变IP”的最佳案例。提示抓包时如果看到大量ARP请求广播说明ARP解析正在进行。正常情况下ARP解析完成后会有短暂的广播之后就是单播通信。如果持续出现ARP广播可能是网关配置错误或VLANIF接口down了。4. 常见问题与排查技巧实录4.1 跨VLAN不通的典型原因速查表现象可能原因排查方法解决方法同VLAN能通跨VLAN不通终端网关未配或配错检查PC的网关地址改为对应VLANIF的IP同VLAN能通跨VLAN不通三层交换机VLANIF未updisplay ip interface brief检查VLAN下是否有活跃端口同VLAN能通跨VLAN不通Trunk未放行对应VLANdisplay port vlan在Trunk口放行VLAN同VLAN不通Access口VLAN划错display port vlan修正Access口VLAN ID同VLAN不通终端IP不在同一网段检查PC的IP和掩码修正IP地址全部不通Trunk口未配置或downdisplay interface brief检查物理连接和Trunk配置这张表是我在实际操作中反复验证过的覆盖了九成以上的常见问题。遇到故障时按表逐项排查基本能在几分钟内定位问题。4.2 几个容易踩的坑和独家避坑技巧第一个坑是VLANIF接口的up依赖关系。很多人创建了VLANIF、配了IP但忘了把物理端口划进对应VLAN结果VLANIF一直是down的。这个问题的隐蔽性在于配置看起来完全正确但接口就是不通。我的习惯是配完VLANIF后立刻用display vlan确认VLAN下有活跃端口。第二个坑是Trunk口的默认VLAN。有些模拟器上Trunk口的默认VLAN是1如果终端不小心发到了默认VLAN里流量就会跑到VLAN 1去。避免这个问题的方法是确保所有Access口都明确指定了VLAN不要依赖默认配置。第三个坑是三层交换机的路由功能。极少数型号的三层交换机默认关闭路由功能需要手动执行ip routing或类似命令。如果你确认VLANIF都up了、Trunk也放行了但跨VLAN就是不通检查一下路由功能是否开启。注意模拟器环境和真实设备在默认配置上可能有差异。比如某些模拟器的Trunk口默认允许所有VLAN通过而真实设备默认只允许VLAN 1。做实验时以display current-configuration的实际输出为准不要凭记忆判断。4.3 性能与扩展性的实际考量这个实验的拓扑虽然小但扩展性很好。如果要把接入层扩展到多台二层交换机只需要在三层交换机上增加Trunk口放行相同的VLAN列表即可。VLANIF接口不需要改动终端网关也不需要改动。这种“核心不变、接入扩展”的特性正是三层交换机在园区网中广泛使用的原因。性能方面三层交换机的VLAN间路由是硬件转发延迟极低吞吐量远高于路由器单臂路由方案。在实际项目中如果VLAN间流量较大优先选择三层交换机做核心。如果只是少量VLAN间通信路由器单臂路由也能凑合但性能和配置复杂度都不如三层交换方案。最后分享一个小技巧配置完成后用display current-configuration把三层交换机和二层交换机的配置分别保存下来对比检查VLAN创建、Trunk放行、VLANIF配置这三处是否一致。很多时候问题就出在某一台设备的某一处配置和规划不一致对比一下就能发现。这个习惯我在实际项目中一直保持省下了大量排查时间。