跨交换机VLAN配置实验:Trunk、PVID与802.1Q隔离原理详解 简介配套华为eNSP的跨交换机VLAN配置实验文档面向计算机网络专业学生、网络管理员及希望理解VLAN隔离机制的初学者可直接用于课程实训、实验报告撰写或自学练习。文档以完整实验报告形式呈现围绕IEEE 802.1Q标准系统逐步演示设备连接、IP地址规划、默认VLAN互通验证、VLAN创建与端口映射、接入端口与主干端口区分以及同一VLAN可通信、不同VLAN被隔离等核心环节并配有拓扑与映射表辅助核对。包体为1个docx文档大小约1.98MB内含实验拓扑、VLAN映射表、配置步骤与报文捕获截图说明结构清晰适合边读边操作。目前已有2500余人学习下载。通过该文档读者可在eNSP中完整复现实验流程掌握交换机VLAN划分与Trunk主干链路设置方法学会观察携带VLAN标签的802.1Q MAC帧并能针对捕获报文失败等典型问题形成排查思路进而提升网络配置规范性与实际排错能力。1. 跨交换机VLAN实验为什么值得你亲手做一遍做网络工程毕设或者刚入行的朋友十有八九在华为eNSP里点开过交换机创建过VLAN然后两台PC接在同一台交换机上ping通了就觉得自己会了。可一旦把设备数量翻一倍变成两台交换机、四台PC很多人就懵了同样的VLAN 10为什么在另一台交换机上创建的VLAN 10下挂的PC就是ping不通原因不在VLAN本身而在跨交换机之间的那条链路到底该用什么口、该放行哪些VLAN、PVID该是谁。这恰恰是真实机房和网络工程毕设里最常考的跨交换机VLAN配置实验要解决的事。这个实验的完整闭环是在两台交换机上分别划分VLAN 10和VLAN 20让相同VLAN的主机跨过交换机之间的链路正常互通同时保证不同VLAN的主机在二层彻底隔离。它回答的不只是“命令怎么敲”还包括为什么要用Trunk而不是Access、PVID不一致会出现什么诡异现象、以及抓包验证隔离到底应该看哪里。这篇文章就按这个顺序把整个实验从拓扑到排错完整走一遍。2. 跨交换机VLAN为什么必须靠TrunkAccess、Trunk与PVID的边界2.1 一个简单问题Access口到底能不能连两台交换机很多人第一次做跨交换机实验会下意识地把两台交换机用Access口连起来然后把接口划进VLAN 10。结果是PC1能通PC2但PC3永远不通PC4。这是因为Access口在转发帧的时候会做一件事把802.1Q标签剥掉再送出去。也就是说从Access口出去的帧是普通以太网帧不带任何VLAN身份信息。对端交换机收到之后只能把这个帧归入自己这个端口的PVID所对应的VLAN。如果两端端口PVID都是VLAN 20那么VLAN 20的流量在两台交换机之间勉强能走但如果PVID不一致哪怕同一VLAN的PC也会失联。所以结论是Access口不是不能连交换机而是它只能承载一个VLAN的流量而且依赖两端PVID巧合相等。一旦你的网络里有两个或以上VLAN需要跨交换机互通Access口根本不够用。跨交换机VLAN配置实验的核心操作就是把交换机之间的互联口改成Trunk口让帧带着VLAN标签穿行。2.2 Trunk口到底做了什么802.1Q标签才是通信隔离的通行证Trunk口做的事情可以用一句话说清楚默认情况下出方向不给帧脱标签入方向按帧自带的标签决定它进哪个VLAN。交换机在Trunk口上处理帧的逻辑是发往Trunk口的帧如果是本地PVID对应的VLAN且不带标签会先打上PVID标签然后判断这个VLAN是否在allow-pass列表里如果是来自其他VLAN的帧本身已经有802.1Q标签Trunk口直接检查是否被允许放行允许就发不允许就丢对端Trunk口收到时先看帧带不带标签带标签就按标签所属VLAN进入对应的广播域。这个机制里最容易被忽略的是PVID。PVID只对“收到的无标签帧”生效。调试口里面输入port trunk pvid vlan 10意思是这个口收到的没打标签的帧统统算作VLAN 10的流量。这个设置和allow-pass是两个维度allow-pass决定哪些VLAN的帧能从这个口出去进到对端PVID决定进来的无标签帧属于哪个VLAN。两者配错任何一个跨交换机通信都会出问题。2.3 一张表看懂Access、Trunk、Hybrid的行为差异端口类型收到无标签帧收到带标签帧发出的帧Access打上PVID标签后进入对应VLAN如果标签等于PVID则接收否则丢弃多数交换机默认丢弃帧标签被剥掉变成无标签帧Trunk打上PVID标签后检查是否在allow-pass中在则接收检查VLAN是否在allow-pass中在则接收否则丢弃保留802.1Q标签发出PVID对应VLAN的帧除外默认脱标签发出Hybrid打上PVID标签后按tagged/untagged规则决定是否接收检查VLAN是否在放行列表中按tagged/untagged两个列表决定发出去带不带标签华为交换机默认端口类型是Hybrid所以你做实验时会发现明明没手动配VLAN两台PC在同一台交换机上却能通。因为Hybrid口默认的untagged VLAN包含VLAN 1大家默认都在VLAN 1里自然能通。在跨交换机VLAN配置实验里习惯做法是连接PC的口统一配成Access交换机之间的互联口统一配成Trunk。这样配置量小、逻辑直观排查问题时一眼能看出端口类型是否符合预期。有些企业网络用Hybrid做灵活放行那是后话初学者先在Access和Trunk上建立牢固的边界感再玩更复杂的。2.4 选型澄清做这个实验前先想清楚要几台设备在华为eNSP里做这个实验常见拓扑是两台交换机加四台PC。交换机型号选S5700或S3700都行没有任何区别因为VLAN划分和Trunk配置属于基础二层功能模拟器不会在命令上给你出难题。真正的变量只有你自己会不会把端口连错、会不会忘了配置某个VLAN、会不会在测试时被Windows防火墙干扰。如果你有华为eNSP官网下载的安装包装上之后最好先确认三件事AR路由器能不能启动、交换机的启动时间是否正常、设备的接口编号是不是你预期的。这里有一个很典型的预期差eNSP里的Ethernet0/0/1对应的是模拟器面板上的某个特定接口不是所有Ethernet0/0/1都在同一位置。连线时要看拓扑图上端点编号而不是看设备图标位置。很多人在这一步浪费大量时间以为网线连上了实际连错了口。3. 用华为eNSP在本地跑通跨交换机VLAN的最小拓扑3.1 拓扑规划四台PC分布在两台交换机上才是关键打开eNSP后不要急着拖设备先想清楚拓扑。我要做的是“跨交换机VLAN配置实验”如果四台PC全挂在一台交换机上另一台只做点缀那就没有练习到Trunk的价值。合理的拓扑是S1和S2两台交换机通过GE0/0/1口互联S1下挂PC1和PC3分别属于VLAN 10和VLAN 20S2下挂PC2和PC4分别属于VLAN 10和VLAN 20PC1和PC2属于VLAN 10跨交换机互通是所有实验目标的基线PC3和PC4属于VLAN 20同样跨交换机互通VLAN 10和VLAN 20之间的通信必须被隔离ping不通是正确结果。这样的好处是同VLAN跨交换机验证Trunk放行不同VLAN跨交换机验证隔离两种关键行为都在两台交换机之间发生链路只有一条配置集中排错简单。3.2 连线、启动、开启抓包准备工作里的三个小细节设备拖出来后连线这一步要按编号来。我这里用的是S1的GE0/0/1连S2的GE0/0/1然后PC1接S1的Ethernet0/0/1PC3接S1的Ethernet0/0/2PC2接S2的Ethernet0/0/1PC4接S2的Ethernet0/0/2。双击PC打开配置面板IP地址按下列规则设置PC1192.168.10.1/24PC2192.168.10.2/24PC3192.168.20.1/24PC4192.168.20.2/24掩码统一为255.255.255.0网关先不填。这个实验只涉及二层通信不配置网关。如果填了网关反而可能让你在排查时混淆ping不同VLAN的地址时系统会先查ARP没有网关时ARP请求会广播隔离有效时收不到响应表现为“无法访问目标主机”有网关但网关无路由时通常表现为“请求超时”。两种现象都说明隔离成功但会让初学者困惑。启动前在S1和S2上右键选择“开启抓包”把互联口GE0/0/1和PC侧接口的抓包都打开。eNSP自带的抓包工具基于Wireshark的接口逻辑生成的pcap文件可以直接看802.1Q头部。做通信隔离验证时抓包能直接告诉你帧到底有没有被打上VLAN标签、Trunk口上有没有出现两个VLAN的帧。3.3 前提检查先让设备处在干净状态再动手一个很常见的翻车现场是交换机里残留了之前实验的VLAN配置自己又叠加了一套导致display vlan时看到的VLAN列表和实际生效的不一致。eNSP里关闭设备不会自动清除配置重新打开还是旧配置。所以开始之前我一般会对两台交换机做一次复位Huaweireset saved-configuration Warning: The action will delete the saved configuration in the device. The configuration will be erased to reconfigure. Continue? [Y/N]:Y如果设备提示没有保存过配置会直接回显错误不用管继续下一步。然后执行reboot等待设备重新启动。启动后进入system-view确认当前接口全是默认Hybrid口且没有多余的VLANdisplay vlan正常情况下看到的只有VLAN 1。3.4 AR设备启动不了的规避办法错误代码40的处理思路做纯交换机实验理论上不需要AR路由器。但eNSP的有些版本在启动时会默认把AR设备拉起来或者在拓扑里拖了一台AR路由器但没启动结果报“错误代码40”。这个问题在网络工程毕设期间反复被问原因多半是eNSP进程残留了上一次的AR实例或者虚拟网卡驱动没有正常加载。常见做法是把这个AR设备从拓扑里删掉或者在启动前右键设备选择“停止”然后在“管理”菜单里执行“工具-注册设备”刷新设备状态。如果还是报40就去任务管理器里把ensp相关的进程全部结束重新打开eNSP。做二层实验不需要AR能少一个变量就少一个。4. 跨交换机VLAN配置实验实操从划分到隔离验证的完整命令序列4.1 交换机基础配置命名与全局VLAN创建先给交换机起个名字这一步不是形式主义。跨交换机实验如果两台交换机都叫Huawei你在排错时display current-configuration分不清自己在哪台设备上尤其用telnet或STelnet远程登录时更麻烦。命名是低成本高回报的习惯。S1上执行system-view sysname S1 vlan batch 10 20 quitS2上执行同样的命令只是sysname改成S2system-view sysname S2 vlan batch 10 20 quitvlan batch允许一次创建多个VLAN比逐个创建高效。如果还有VLAN 30到VLAN 40这种连续范围写成vlan batch 30 to 40即可。创建之后可以用display vlan确认你会看到VLAN 10和VLAN 20都在列表里状态是down因为还没有接口加入。这一步是后续所有配置的基础。忘记在某一台交换机上创建VLAN那台交换机上即使接口配了access和default vlan那个VLAN也不存在端口会一直处于异常状态。4.2 连接PC的接口配置Access口与default vlanPC侧接口必须配置成Access口并指定所属VLAN。华为的命令是interface Ethernet0/0/1 port link-type access port default vlan 10 quit第一条命令把端口模式改成Access第二条把端口的默认VLAN设为10。华为的“default vlan”在Access口上等价于PVID也同时是该端口唯一允许通过的VLAN。PC接进来后PC发送的普通以太网帧在这时被打上VLAN 10的标签进入VLAN 10的广播域。S1上这样配置Ethernet0/0/1和Ethernet0/0/2interface Ethernet0/0/1 port link-type access port default vlan 10 quit interface Ethernet0/0/2 port link-type access port default vlan 20 quitS2上对应配置Ethernet0/0/1为VLAN 10Ethernet0/0/2为VLAN 20。这里有一个关键认知VLAN 10和VLAN 20是在两台交换机上同时创建的PC1和PC2之所以能跨交换机通信靠的是两台交换机上都有VLAN 10并且互联口放行了VLAN 10的帧。如果S2上忘了创建VLAN 10那么PC2的帧打上标签之后S1能收到也能转发但S2上根本找不到VLAN 10这个广播域直接丢弃。4.3 交换机互联口配置Trunk口与allow-pass放行策略连接PC的口配好之后跨交换机互联口是关键。两台交换机都用GE0/0/1互联按下面的配置S1interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 port trunk pvid vlan 10 quitS2interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 port trunk pvid vlan 10 quit这里解释一下三个命令的含义。port link-type trunk把端口从默认Hybrid切换为Trunk模式。allow-pass vlan 10 20指定这个Trunk口允许哪些VLAN的帧通过。默认情况下华为交换机Trunk口只放行VLAN 1如果你不写allow-passVLAN 10和VLAN 20的帧在这个接口上会被直接丢弃这是跨交换机配置实验里最常见的翻车点。port trunk pvid vlan 10指定Trunk口的PVID。这个值决定了从该口收到的无标签帧属于哪个VLAN。互联口之间两块交换机相连默认都会收发带标签帧所以PVID不参与正常业务的判别。但如果你在Trunk口下接了PCPC发出的无标签帧就会被划分到PVID指定的VLAN这也是为什么Trunk口通常不建议接PC的原因。配置完成后可以用display port vlan确认每个接口的工作模式。看输出时重点检查Ethernet0/0/1是accessPVID是10GE0/0/1是trunkPVID是10allow-pass列表包含10和20。只要有一个不一致跨交换机通信就精确失败。4.4 测试通信隔离ping结果的正确解读方式配置完成后开始验证。第一步在PC1上ping PC2ping 192.168.10.2预期结果是通。这个结果说明PC1的帧进入S1的Ethernet0/0/1被打上VLAN 10标签通过GE0/0/1的Trunk链路到达S2S2把帧归入VLAN 10广播域最终到达PC2。这个通的意义不是“两台PC能ping通”而是“VLAN 10在跨交换机链路上被正确放行”。第二步在PC1上ping PC3ping 192.168.20.1预期结果是“请求超时”或“无法访问目标主机”。这两个现象都说明VLAN 10和VLAN 20在二层是隔离的。因为PC3在VLAN 20PC1的ARP广播只在VLAN 10内传播永远到不了VLAN 20。这是隔离的预期表现不是配置错误。第三步反向验证PC3 ping PC4应该能通。这一步很容易被忽略但非常必要。它能确认VLAN 20跨交换机也放行成功避免你只验证了一条链路另一条VLAN的allow-pass配错却毫无察觉。4.5 查看VLAN与端口状态用display输出确认配置正确配置和测试做完不要急着收工。在S1上执行display vlan输出会列出VLAN 1、VLAN 10、VLAN 20且VLAN 10和20下各有对应的接口。注意观察VLAN 10下的接口列表应该包含Ethernet0/0/1和GigabitEthernet0/0/1。如果GE0/0/1不在VLAN 10的接口列表里说明Trunk口的allow-pass配置有问题。再执行display port vlan这个命令按端口维度显示所有端口的PVID、端口类型和放行VLAN。输出结果里GE0/0/1那一行应该是“trunk”和“10, 20”。如果看到只有VLAN 1说明allow-pass命令没生效或者被后续命令覆盖。这个时候回退到配置里检查发现问题之后直接重新敲allow-pass即可不需要重启设备。4.6 通信隔离本质广播域的分割与ARP的影响如果上面的ping测试全部符合预期你已经完整验证了VLAN的两个核心能力跨交换机二层互通和本地广播域隔离。这里要强调一点VLAN隔离的是广播域不是物理链路。PC1和PC3的帧可能共用同一条物理链路甚至共用同一个Trunk互联口但因为携带的VLAN标签不同它们被交换机划分到不同的广播域中。Trunk口同时传输多个VLAN的帧靠的就是802.1Q标签来区分。这种通信隔离设计在现代网络里比物理隔离更实用。物理隔离要求每个部门单独拉线、单独设备成本高且扩展难。VLAN隔离是在现有物理设备上按逻辑划分隔离域需要跨交换机扩大覆盖范围时只需让Trunk口放行更多VLAN。做跨交换机VLAN配置实验本质上就是把“逻辑隔离”从单台设备延伸到了多台设备。5. 避坑跨交换机VLAN配置实验里的6个常见问题与排查方法5.1 坑一Trunk口没写allow-pass交换机“假装没看”你的VLAN配置现象VLAN创建了Access口也配了default vlanPC1 ping PC2就是不通但PC1 ping PC3也不通检查物理线路全是对的。原因华为Trunk口的默认放行列表只有VLAN 1。你光把端口模式改成trunk不执行port trunk allow-pass vlan 10 20VLAN 10和20的帧在Trunk口发出去之前就被丢弃了。这种情况交换机不会报错也不会有日志属于安静的翻车。解决在互联口上执行port trunk allow-pass vlan 10 20。推荐写成allow-pass vlan 10 20而不是allow-pass vlan all后者虽然省事但会让所有VLAN跨交换机广播等于放弃了隔离设计意图而且以后排查“VLAN 30怎么通到这边来了”的时候更头疼。5.2 坑二两端PVID不一致同VLAN跨交换机PC也ping不通现象两端都是Trunk口allow-pass都放行了VLAN 10和20但PC1 ping PC2失败。display port vlan看到S1的GE0/0/1 PVID是10S2的GE0/0/1 PVID是1。原因Trunk口之间的PVID不一致时如果有一端的交换机收到了无标签帧会按各自的PVID划分。Trunk口处理无标签帧的情况虽然不多但只要出现一次对端收到的就是另一个VLAN的帧直接被丢弃。更隐蔽的情况是eNSP里有些交换机型号默认Trunk口的PVID会跟随端口加入的第一个VLAN变化这时候两头容易不一致。解决把两端互联口的PVID统一。操作是port trunk pvid vlan 10两台上都执行。做完之后用display port vlan确认两个GE0/0/1的PVID一致。5.3 坑三AR路由器启动报错误代码40实验根本进不去现象打开eNSP拓扑AR设备启动时黑窗口一闪而过然后提示错误代码40。有时候还会连带导致交换机启动失败。原因eNSP的AR设备依赖虚拟化组件上一次异常退出时进程没有完全释放或者设备实例重复注册就会报40。这个问题在网络工程毕设期间被问得最多因为它卡在最前面让人连实验都做不了。解决如果是纯二层VLAN实验AR不是必需品直接从拓扑里删掉。如果确实需要AR做路由先右键设备选择“停止”再执行eNSP菜单栏“工具-注册设备”。仍然报错就结束所有eNSP相关进程然后重启软件。避免在eNSP运行期间频繁开关AR设备这是最容易触发40的操作。5.4 坑四PC侧口用了Trunk配置对但还是隔离失败现象PC1 ping PC2不通检查所有配置都是正确的VLAN存在Access口正确Trunk口allow-pass也正确。原因连接PC的接口如果被配成了Trunk口PC发送的无标签帧会被打上PVID标签。如果PVID是10而PC1的IP在VLAN 20网段那么PC1实际上被划分到了VLAN 10跟PC2虽然在VLAN 10但是一个在Trunk口下一个在Access口下行为不同。更麻烦的是Trunk口还会检查allow-pass列表任何带标签帧的意外发送都会导致通信失败。解决严格遵守接口角色划分。接PC的口一律配置为Access口接交换机互联的口一律配置为Trunk口。在display port vlan里逐口核对端口模式发现Trunk口下接PC就改回Access并指定default vlan不要图省事。5.5 坑五用ping结果判断隔离时操作系统防火墙干扰了ICMP现象ping同VLAN的PC也一直请求超时但配置没有任何问题。检查网线、IP都正确只有接另一个PC测试时能通。原因网络工程毕设里很常见的环境问题——Windows防火墙拦截了ICMP回显请求。PC1能发出去PC2收到了但因为防火墙规则不回包所以显示超时。这不是VLAN配置的锅。解决在测试用的PC上临时关闭防火墙或者在防火墙入站规则里放行“文件和打印机共享(回显请求 – ICMPv4-In)”。实验做完可以重新打开防火墙。如果四台PC都是Windows建议统一提前关掉防火墙省去反复排查。5.6 坑六排错时只看ping不会用display命令定位现象ping不通时不知道该从哪里入手来回重启设备。原因ping只告诉你结果不告诉你原因。跨交换机VLAN的排错应该分层进行物理层检查display interface看端口up还是down链路层检查display port vlan看PVID和端口类型VLAN层检查display vlan看VLAN存在与否和接口归属最后再回到PC端ping。跳过中间步骤直接重启纯属玄学排错。解决每次实验配置完按固定顺序输出三组命令display interface确认互联口状态display port vlan确认端口模式和放行列表display vlan确认接口归属。养成这个习惯后上面五个坑至少能自动暴露四个。6. 进阶让通信隔离可观测——Wireshark抓包与VLAN间通信的取舍做跨交换机VLAN配置实验只停留在“通了”和“不通”是不够的。你还需要能亲眼看到隔离的机制是怎么起作用的。eNSP自带的抓包功能其实就是Wireshark抓包操作很简单右键点击交换机端口选择“开启抓包”然后在PC上重新执行一次ping。抓包文件打开后重点看两个位置。第一个位置是PC侧接口S1的Ethernet0/0/1。这里抓到的帧应该是“无标签”的。因为Access口在发出帧时会把VLAN标签剥掉。如果你在这里抓到带802.1Q标签的帧说明端口类型配置异常。第二个位置是S1和S2互联的Trunk口。在这里抓到的帧应该带VLAN标签。在Wireshark的过滤栏里输入vlan所有802.1Q帧会被过滤出来点开其中一帧能看到VLAN ID字段VLAN 10的帧ID是10VLAN 20的帧ID是20。两条VLAN的流量在同一物理链路上并行传输靠的就是这个ID区分。这个过程也解释了为什么Trunk口叫“trunk”因为它像树干一样承载多个VLAN的分支。到这里跨交换机VLAN配置实验的链路已经完整配置、验证、排错、抓包观察。最后说一说VLAN间通信。我在带毕设学生做这个实验时最常见的追问是那VLAN 10和VLAN 20之间怎么通信答案很明确单纯靠交换机做不到需要路由器或三层交换机参与常见方案是单臂路由。在eNSP里加一台AR路由器交换机和路由器之间用Trunk口相连路由器上创建子接口分别对应VLAN 10和VLAN 20再配好网关IPVLAN间通信就能通。但这属于“跨VLAN路由”阶段在做跨交换机VLAN隔离实验时路由功能不应该存在——一旦存在单臂路由你的隔离就被打破了。我自己的教训是有一段时间为了图省事在实验拓扑里顺手放了一台配备好子接口的AR路由器结果PC1 ping PC3通了我花了一个多小时排查VLAN配置最后才发现是那台路由器的VLANIF接口在起作用。从那以后做通信隔离实验时我的拓扑里永远不放路由器只保留交换机和PC。这个习惯让整个实验的意义变得非常单纯你要验证的是什么拓扑里就只留什么。希望这个实验的完整拆解能帮你少走一段弯路。做完之后你可以试着把VLAN数量加到3个或者把交换机换成三层交换机配置VLANIF接口再观察数据转发路径。基础链路规范和踩坑经验是通用的先把这些变成肌肉记忆后面的路会顺很多。本文还有配套的精品资源点击获取