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/24,VLAN 20用192.168.20.0/24,这样一看IP就知道属于哪个VLAN,排错时效率极高。
VLAN划分方面,我设计两个业务VLAN:VLAN 10和VLAN 20。VLAN 10对应网段192.168.10.0/24,网关是192.168.10.254;VLAN 20对应192.168.20.0/24,网关是192.168.20.254。为什么网关用254而不是1?纯粹是个人习惯,254在地址段末尾,视觉上和普通主机地址区分明显,不容易误配。你用1也完全没问题,只要全网一致就行。
终端地址分配:VLAN 10里放两台PC,地址分别是192.168.10.1和192.168.10.2;VLAN 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.254;VLAN 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未up | display ip interface brief | 检查VLAN下是否有活跃端口 |
| 同VLAN能通,跨VLAN不通 | Trunk未放行对应VLAN | display port vlan | 在Trunk口放行VLAN |
| 同VLAN不通 | Access口VLAN划错 | display port vlan | 修正Access口VLAN ID |
| 同VLAN不通 | 终端IP不在同一网段 | 检查PC的IP和掩码 | 修正IP地址 |
| 全部不通 | Trunk口未配置或down | display 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配置这三处是否一致。很多时候问题就出在某一台设备的某一处配置和规划不一致,对比一下就能发现。这个习惯我在实际项目中一直保持,省下了大量排查时间。