
1. 实验背景为什么两台交换机之间的VLAN配置值得单独做一次实验很多初学者第一次接触交换机都是从单台设备划分VLAN开始的。给几个端口划到VLAN 10几个端口划到VLAN 20同一VLAN内的主机能互通不同VLAN之间默认隔离——这个逻辑在单台交换机上非常直观一两条命令就能验证。但一旦把场景扩展到两台交换机事情就开始变得微妙了VLAN信息是每台交换机本地的概念左边的交换机知道VLAN 10是什么右边的交换机凭什么也认VLAN 10两台设备之间的端口该怎么配才能让同一VLAN的主机跨设备通信这正是实验七的核心价值所在。它把VLAN是二层广播域隔离手段这个理论概念落到了一个必须处理实际链路协商的场景里。你可以把每台交换机想象成一个独立的社区VLAN就是社区里不同楼栋的门禁闸机——单台交换机时门禁系统是统一管理的两台交换机互联后两个社区之间必须有约定否则A社区的10号楼住户走到B社区门口保安根本不知道这人是该放行还是该拦住。image ignored从计算机网络课程的知识体系来看这个实验处在数据链路层——交换机工作原理——VLAN机制这条线上是后续学习三层交换、VLAN间路由、子接口、ACL的基础。很多教材里会用一页篇幅讲IEEE 802.1Q的帧格式告诉你Tagged帧和Untagged帧的区别但只有亲手在两台交换机上配完Trunk口抓包看到带VLAN Tag的以太网帧在链路里跑你才会真正理解那个4字节Tag存在的意义。所以这个实验适合谁正在上计算机网络实验课的学生、准备考取网络工程师认证的考生、刚入行需要快速上手交换机配置的运维新人。它不像企业级组网方案那样复杂但它是所有复杂二层网络设计的起点。我甚至建议已经工作的人把这篇当作快速回顾——很多线上故障排查到最后根源就是当年实验课没搞透的那点Trunk与Access的边界问题。2. 实验环境与拓扑规划用两台交换机之前先把这张图画明白实验指导书里给出的通常是双交换机加四台PC的结构但很多同学上来就急着敲命令拓扑都不画结果配完了发现PC之间Ping不通也不知道该查哪一边。做网络实验第一步永远是画图、标IP、标接口这一步花不了五分钟却能省下后面半小时的排查时间。2.1 标准实验拓扑与关键参数推荐使用如下拓扑这也是绝大多数指导书默认的结构PC1 --- [SW1] --- [SW2] --- PC3 PC2 --- [SW1] [SW2] --- PC4SW1与SW2之间用一条直连线互联这条链路就是实验的核心——Trunk链路。四台PC分别连接SW1和SW2的普通端口。参数规划建议如下设备接口所属VLANIP地址PC1SW1的G0/0/1VLAN 10192.168.10.1/24PC2SW1的G0/0/2VLAN 20192.168.20.1/24PC3SW2的G0/0/1VLAN 10192.168.10.2/24PC4SW2的G0/0/2VLAN 20192.168.20.2/24SW1与SW2互联SW1的G0/0/24、SW2的G0/0/24Trunk不配置IP这个规划里最容易被忽视的是IP网段的划分VLAN 10和VLAN 20的PC必须使用不同的网段。有些同学会偷懒全配成192.168.1.x觉得只要VLAN不同就能隔离等做VLAN间路由实验时才发现地址规划一塌糊涂。记住VLAN的隔离是二层隔离IP网段是三层地址规划两者要对应好否则后面要推翻重来。2.2 交换机选型与准备工作的三个细节如果实验室用的是华为eNSP模拟器那设备选型上直接用S5700系列即可模拟器里默认就有这个型号。如果是真机操作可能是华为S5700系列、华三S5130系列或者思科2960系列。不同厂商的命令语法有差异但核心逻辑完全一致我会以华为命令为主在关键位置补充思科的对照写法方便不同环境的学习者参考。准备工作有三个容易忽略的细节我逐一说明。第一个是恢复交换机出厂配置。上一组同学做完实验后交换机里可能残留了VLAN配置、端口配置甚至管理IP。千万别说看着能用就直接用VLAN列表里残留的旧VLAN会让你的验证结果变得莫名其妙。华为设备上重置命令是reset saved-configuration然后重启或者直接factory-configuration reset思科设备则是write erase加reload。每次实验前花一分钟做这个动作能避免99%的灵异现象。第二个是Console线连接与终端参数。真机操作时Console线连上电脑的COM口后用SecureCRT或Xshell建立串口会话波特率96008位数据位、1位停止位、无校验、无流控。这些参数缺一不可很多同学连上后屏幕全是乱码十有八九是波特率选错了。第三个是给PC配置静态IP。模拟器里双击PC图标就能配置真机实验则可能是用笔记本直接连交换机。有一点要特别注意如果笔记本开了无线网卡一定要禁用否则路由表会混乱Ping测试的结果不可信。3. 交换机基础配置创建VLAN、划分端口这一步决定后面所有验证的成败很多人觉得这步简单无非就是几条命令。但恰恰是这步最能看出一个人对VLAN工作原理的理解深度。我问一个很基础的问题当你把某个Access端口划分到VLAN 10之后从这台PC发出来的数据帧在交换机内部处理时是带着VLAN标签的吗答案是不带。Access端口的行为逻辑是收到Untagged帧打上该端口PVID对应的VLAN Tag发送帧时剥离Tag以Untagged形式送给PC。所以PC完全感知不到VLAN的存在整个VLAN划分过程对终端设备是透明的。理解了这个你才能理解后面对Trunk配置时为什么PVID和允许通过的VLAN列表是两个独立的概念。3.1 创建VLAN的两种方式及推荐写法华为设备上创建VLAN有两种方式# 方式一逐个创建 system-view vlan 10 quit vlan 20 quit# 方式二批量创建推荐效率更高 system-view vlan batch 10 20方式二的优势在实验场景里还不明显但如果你要创建一批连续VLAN比如VLAN 100到VLAN 120vlan batch 100 to 120一条命令就搞定了。在真实网络改造中这种批量创建能节省大量时间。我见过有些网工还在用方式一一条条敲纯属跟自己过不去。创建完VLAN后用display vlan查看一下确认两个VLAN的状态是Active。这里有个小细节华为交换机创建VLAN后如果VLAN里没有加入任何端口它不会自动消失但也不参与任何数据转发。所以你看到VLAN 10 Active并不代表配置完成还要继续往里面加入端口。3.2 把端口加入VLANAccess模式的完整配置接下来进入每台交换机把连接PC的端口模式改成Access并加入对应VLAN。以SW1为例system-view interface GigabitEthernet 0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet 0/0/2 port link-type access port default vlan 20 quitSW2上做同样操作只是G0/0/1加VLAN 10、G0/0/2加VLAN 20。这里我要特别强调一个初学者反复踩的坑端口必须先改成Access模式再设默认VLAN。如果顺序反了比如先把port default vlan 10敲了再改port link-type access华为设备会报错或产生不可预期的行为。原因是端口在默认的Hybrid模式下处理VLAN的逻辑和Access不同。同样的坑在思科上不存在因为思科的端口默认就是Access模式但这不代表你可以在华为设备上乱来。配置完成后用display port vlan查看端口和VLAN的对应关系。输出会显示每个端口的Port Type、PVID和允许通过的VLAN列表。检查无误后先做一次单交换机内的连通性测试——PC1 ping PC2此时应该不通因为它们在不同VLAN且Cloud层不做任何路由但你可以临时把PC1和PC2的IP配到同一网段再测会发现依然不通这正是VLAN隔离在起作用。这个验证能让你直观感受到VLAN的隔离与IP网段无关它是二层广播域的隔离。4. 跨交换机通信的核心Trunk链路配置与原理拆解现在到了整个实验最关键的部分。SW1上面的VLAN 10想跨过交换机间的链路与SW2上的VLAN 10通信这条链路上跑的数据帧必须是带Tag的——否则SW2收到一个没有VLAN标识的帧根本不知道该放到哪个VLAN里去处理。而Trunk链路干的事就是让交换机之间的这条物理链路成为一条多VLAN承载管道。4.1 为什么Access口不能用于交换机互联我们先从反面理解。如果交换机互联端口也设成Access会出现什么情况假设SW1的G0/0/24设成Access且PVID为10SW2的G0/0/24设成Access且PVID为10。那么从SW1内部转发的、带着VLAN 10 Tag的帧到了G0/0/24由于Access口发帧要剥离Tag这个帧会变成Untagged帧送给SW2SW2的G0/0/24收到后以PVID 10打上Tag进入VLAN 10。听起来好像能通但你别忘了这条链路同时在承载VLAN 20的流量。VLAN 20的帧到了SW1的G0/0/24同样被剥掉Tag变成Untagged发给SW2后却被SW2打上了PVID 10的Tag直接跑到了VLAN 10去。这完全是灾难。所以Access模式只能承载一个VLAN想要一条链路承载多个VLAN的流量必须用Trunk或思科的Dot1q封装中继。这也解释了一个常见误区Trunk不是用来放行所有VLAN的而是用来承载需要跨设备通信的那些VLAN的。它需要有明确的允许列表。4.2 华为Trunk配置命令与PVID的精确定义华为设备上的Trunk配置如下SW1和SW2的操作完全对称system-view interface GigabitEthernet 0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 quit这三条命令缺一不可。第一条把端口类型设为Trunk第二条指定链路承载哪些VLAN的流量。注意华为的Trunk端口默认允许VLAN 1也就是默认VLAN通过默认PVID是1。如果实验中的VLAN就是10和20那必须显式放行它们如果不放行VLAN 10和20的帧到了这个端口会被直接丢弃。这里引入今天最重要的一个概念——PVID的收发不对称逻辑Trunk口收到一个Untagged帧时会打上PVID对应的Tag然后查VLAN转发表进行转发。Trunk口发出帧时如果该帧的VLAN ID等于PVID则会剥掉Tag以Untagged形式发出如果不等则保留Tag发出。所以如果两台交换机互联的Trunk口PVID不一致比如SW1的PVID是1SW2的PVID是10那么从SW1发出的VLAN 1的Untagged帧到了SW2会被当成VLAN 10来处理直接导致链路错乱。务必保证两端Trunk口的PVID一致默认都是1就不需要额外改但如果你有特殊需求改了其中的PVID另一台必须同步修改。思科设备的命令做一个对照参考interface GigabitEthernet0/1 switchport mode trunk switchport trunk allowed vlan add 10,20华为命令里的allow-pass vlan对应思科的allowed vlan逻辑一致但默认放行长路思科是只放行VLAN 1而华为是放行所有VLAN。两个厂商对Trunk口的出厂默认策略完全不同这个差异在跨厂商设备对接时最坑人。4.3 配置Trunk后的两分钟自检配完Trunk别急着跑去点PC的Ping命令先在交换机上做两件事第一display port vlan查看端口信息确认G0/0/24的类型是TrunkPVID是1VLAN列表里有10和20。第二也是很多人不知道的——display interface GigabitEthernet 0/0/24查看链路状态。重点关注物理状态是不是UP如果显示DOWN那就是物理层问题查线缆、查对端设备是否开机。image ignored第三如果模拟器里做完上一步发现接口还是DOWN那十有八九是模拟器的端口没启动或连接线没连好。在eNSP里你可以直接点击线缆查看两端连接的端口号是否匹配这是模拟器环境里最常见的问题没有之一。5. 连通性验证与故障排查Ping通不够还要会看现象背后的原因配置到这里理论上是全通了。但实验课总有翻车的时候。下面我按验证步骤和故障排查两条线把最常遇到的场景都过一遍。5.1 分层次验证单交换机与跨交换机的测试用例推荐按照下面的顺序测试每走一步都能精确定位问题出在哪一层测试用例一PC1 ping PC3同VLAN跨交换机预期结果通。这条测试通过说明Trunk链路工作正常、VLAN 10的帧能正确跨设备转发。测试用例二PC2 ping PC4同VLAN跨交换机预期结果通。这条测试通过说明VLAN 20的帧也没问题Trunk的允许列表没有漏掉VLAN 20。测试用例三PC1 ping PC2不同VLAN同交换机预期结果不通。如果这条居然通了那是严重错误说明端口配置有误可能把两个口划到了同一个VLAN。测试用例四PC1 ping PC4不同VLAN跨交换机预期结果不通。如果这条通了说明Trunk链路把VLAN 10和VLAN 20的广播域错误地合并了最常见原因是PVID配置不一致。5.2 从Ping不通到根因定位一套完整的排查链路我见过太多同学Ping不通就举手喊老师老师过来看了一眼端口就找到问题了但你自己却完全没思路。下面我把排查思路整理成一个可复现的链路按顺序走一遍超过80%的问题都能自己定位。第一步查物理层。display interface看互联端口是否UP。模拟器里物理层DOWN通常是线缆没连对真机里则是线缆或对端电源问题。第二步查端口模式。在SW1上执行display port vlan确认G0/0/24是Trunk模式且PVID正确。再在SW2上执行同样的命令对照两端是否一致。两端模式不对称一边Trunk一边Access是最常见的配置错误。第三步查VLAN允许列表。在Trunk口上执行display port vlan确认VLAN 10和20都在允许列表里。华为默认Trunk口放行所有VLAN但如果之前有人用了undo port trunk allow-pass vlan之类的命令清理过列表可能就剩VLAN 1了。第四步抓包确认Tag。如果你在模拟器里可以在SW1的G0/0/24和SW2的G0/0/24之间串联一个集线器或直接在该链路上开启抓包用WireShark抓到PC1发给PC3的ICMP报文检查以太网帧头里是否带VLAN TagTag的VLAN ID是不是10。能抓到带正确Tag的帧说明交换机处理链路没问题问题大概率在对端接收处理。第五步查MAC地址表。在SW2上执行display mac-address vlan 10看看PC3的MAC地址是否出现在VLAN 10的转发表里。如果PC3一直在发ARP请求但SW2根本没有学习到它的MAC说明帧根本没到达SW2或到达后被丢弃了。这个命令能把排查范围进一步缩小。5.3 一个极易混淆的概念Trunk可以承载但没有路由有同学在做测试用例三、四时发现同VLAN能通、跨VLAN不通后会尝试把PC的网关配到交换机上或者给交换机配一个VLANIF地址然后问为什么配了网关还是不通注意VLAN间的路由是三层功能需要三层设备介入。你在实验七里用的是二层交换机S5700虽然是三层交换机但默认没有开启VLAN间路由功能也没有任何路由条目告诉它192.168.10.0/24网段的包要怎么送去192.168.20.0/24。Trunk链路只负责承载被允许通过的VLAN流量它不负责也负责不了跨VLAN的包转发。如果你现在就想让跨VLAN能通那需要配VLANIF或单臂路由这是实验八或实验九的内容这里先不要越级。6. 我踩过的坑与真实经验那些实验指导书不会写但你必须知道的事这部分是我最想分享的。实验指导书只会写按步骤配置就能成功但实际情况往往充满意外。我把自己和带过的学生踩过的坑汇总成清单每一条都对应过一个真实的翻车现场。6.1 模拟器里的反直觉现象如果你用的是eNSP我第一个要提醒的就是关闭所有PC的防火墙。模拟器里Windows镜像自带防火墙有时会拦截ICMP报文导致你交换机配置全对但Ping测试依然不通白白浪费时间排查网络配置。这个坑看上去很蠢但真实发生频率极高。第二个模拟器特有的坑是华为官方版本的eNSP对部分电脑的兼容性问题。如果某台交换机启动后接口始终是DOWN重启设备、重新连线都没用试着降低模拟器的硬件资源占用或者换用5.3版本往往能解决。第三个是PC的IP配置后没有生效。在eNSP的命令行窗口里给PC配IP偶尔会遇到配置完但ipconfig看不到的情况重启PC节点通常能解决。6.2 真机操作中电信级经验的三个细节真机上做实验有几个模拟器永远教不会你的细节。第一个是Console口的线序与接口損坏问题。实验室的Console线长期插拔容易松动如果连上终端后没有任何显示动一动线缆或换一个USB转串口头再多试一次。不要一上来就怀疑交换机坏了。第二个是交换机型号的差异性。同样是华为S5700系列和S2700系列的命令略有差异S2700的部分型号不支持Trunk口放行指定VLAN的命令只能放行所有VLAN。做实验前先用display version确认设备型号再决定要不要按指导书的命令敲。第三个是关于配置保存。模拟器里默认关闭设备后配置就丢了真机也一样。如果你辛辛苦苦配完想在下一节课继续用就必须执行save华为设备会提示确认输入y回车即可。保存后可以用display saved-configuration查看已保存的配置内容。千万别高估自己在断电前的记忆力我见过太多人配完不保存第二天全部清零重来。6.3 排查思路比记住命令更重要最后说一个观念层面的东西。每次实验课我都会跟学生强调命令敲不出来可以查、可以问但排查思路必须是你自己的。你不需要背下每一家厂商的每一条命令但你要知道物理层如果正常应该查什么数据链路层如果正常应该抓什么包帧丢了应该看哪个转发表。这些分析路径不依赖具体设备是通用的网络排障方法论。所以当你再遇到两台交换机VLAN配置后无法通信时心里应该有一个清晰的场景图源PC发出Untagged帧到达Access口被打上Tag在交换机内部查表转发到Trunk口以Tagged形式送出对端Trunk口接收继续查表从Access口剥离Tag送达目的PC。链路里任何一个环节出错都能对应到相应的命令去排查。这才是实验七真正想训练你的能力。7. 扩展思考在实验基础上多走一步让配置活起来实验做完了验证也通过了但到这里就收手我觉得有点亏。这个实验背后还能延伸出好几个值得动手验证的点每一个都能加深对VLAN和Trunk的理解。7.1 尝试抓包看看Tagged帧长什么样如果你在eNSP里把SW1的G0/0/24接口作为抓包点然后让PC1去ping PC3你会看到ICMP报文外层是一个带VLAN Tag的以太网帧。802.1Q的Tag一共4字节前2字节是TPID固定为0x8100后2字节是TCI其中包含12比特的VLAN ID0~4095。看到抓包结果里VLAN字段等于10你会对VLAN Tag的封装产生极强的直观认知这是只看教材永远达不到的效果。image ignored7.2 把Trunk的PVID改成非默认值验证收发不对称你可以在SW1上把Trunk口的PVID改成10然后在SW2上保持不变做一次PC1 ping PC3的测试。大概率会失败。再用display interface查看两端Trunk状态的差异然后手动把两端的PVID改成一致测试恢复正常。这个操作的目的是让你真正体会PVID在Untagged帧接收和Tagged帧发送时的双重作用。很多老网工在跨厂商设备对接时出问题根源就是对PVID机制理解不透。7.3 从VLAN到VLAN间路由为下一步实验埋个伏笔如果你学有余力可以在当前实验拓扑上增加一台路由器在路由器上创建两个子接口或使用交换机的VLANIF接口分别配置192.168.10.254/24和192.168.20.254/24作为两个VLAN的网关然后给PC设置对应的网关地址测试跨VLAN通信。原理上就是单臂路由或三层交换这是从二层思维跨入三层思维的关键一步也能反过来让你更深刻地理解为什么实验七里的Trunk只能隔离、不能路由。我这里不展开具体的单臂路由配置因为那是下一个实验的主题但我想提醒的是学网络要敢于在基础实验上自己给自己加戏。把实验七的Trunk链路理解透了再做VLAN间路由、再做ACL过滤每一步都建立在前一步的基础上整个知识体系才有递进感。8. 经验收尾关于实验报告的几点良心建议实验做完最后还差一份实验报告。我不替大家代笔但有些心得可以分享一下说不定能让你的报告少一点流水账的味道。写实验报告时很多人习惯把命令和输出结果原封不动粘上去再凑几个实验总结的字数。但真正有价值的报告应该包含你踩过的坑和对应的排查过程。比如你第一次配置完后PC1 ping PC3不通你是怎么看端口状态的怎么查VLAN列表的怎么定位到PVID配置不一致的把这个思路完整写下来比任何通过本次实验我深刻认识到了VLAN的重要性这种空话都更有说服力。另外报告里最好画一张最终配置的汇总表把每台交换机的端口、模式、PVID、允许VLAN、连接对象清晰地列出来。这张表不仅方便老师快速判断你是否真的理解了实验也是你日后复习时最高效的资料。如果你是在实验室用真机做的实验记得做完后把配置保存、把Console线归位、把设备恢复出厂或至少清掉自己配的东西给下一组同学留一个干净的环境。这个习惯不只在实验室有用在职场上小到测试设备、大到生产交换机人走场清都是基本素养。