VLAN配置实战:从广播域隔离到三层交换,用Packet Tracer打通VLAN间路由
1. 从实际场景出发为什么配置VLAN是网络工程师的必修课很多刚接触网络的人都有一个疑惑交换机把几台电脑连在一起能互相通信不就行了VLAN到底解决了什么问题我在带新人时经常用一个特别直观的例子解释公司里财务部、技术部、人事部坐在同一层如果大家都在一个交换机上广播包一发全层的人都收到本来只想让财务看的报表请求其他部门也都“围观”了一遍——效率低下是小事安全问题才是大麻烦。VLANVirtual Local Area Network虚拟局域网的出现就是为了解决这个问题。它把一个物理交换机从逻辑上切成好几个独立的“虚拟交换机”不同VLAN之间默认隔离二层流量互不相通。这样一来广播域被缩小了安全性提高了网络管理也变得灵活了。更重要的是不管你是考Cisco认证还是以后接触华为、H3C的交换机VLAN的配置思路都是相通的只不过命令细节略有差异。这次的实验全程在Cisco Packet Tracer里完成。Packet Tracer是思科官方出品的网络模拟器最大的优点是可以免费下载使用并且它模拟了真实的IOS命令体系几乎所有CCNA阶段要学的交换、路由、无线配置都能在上面练手。对于没有实体设备的学习者来说这是最接近真实设备操作环境的选择。不过要提醒一下Packet Tracer毕竟是模拟器它的“真实感”只能覆盖到一定程度像实际设备上的端口状态灯、线缆故障这类物理层问题它没有办法完全模拟不过对于VLAN这种纯二层逻辑配置来说影响不大。这次实验的目标很明确通过Packet Tracer完成VLAN的创建、端口划分、Trunk配置和VLAN间通信测试最终实现不同部门的逻辑隔离同时让不同VLAN之间通过三层设备正常通信。实验做完以后你对交换机的工作方式会有更深的理解后续配置华为交换机也能很快上手。2. 实验开始前的准备VLAN工作原理与拓扑规划2.1 VLAN到底是怎么工作的先花点时间把VLAN的原理讲透因为后面的配置都是建立在这个理解之上的。交换机在转发二层帧时依靠的是MAC地址表这个表记录了一个MAC地址是从哪个端口学到的。在没有任何VLAN概念的交换机上一个广播帧会被泛洪到所有端口所有接在交换机上的设备都能看到。有了VLAN以后交换机的MAC地址表就不再是单一的而是每个VLAN维护一张独立的MAC地址表。数据帧在交换机内部转发时会先判断它属于哪个VLAN然后只在同一个VLAN的端口范围内进行泛洪、转发。我用一个生活化的比喻以前是所有人都挤在一个大房间里聊天你说什么所有人都能听见现在房间被隔成了好几间只有和你同一间的人能听见你说的话这就是VLAN广播域隔离的本质。那么问题来了一台主机怎么知道自己的数据帧属于哪个VLAN其实主机本身完全不关心这个概念。交换机的每个端口都有一个属性叫PVIDPort VLAN ID当数据从某个端口进入交换机时交换机会根据这个端口的PVID给数据帧“打上一个标签”。如果端口是Access口这个标签就是固定的同属于一个VLAN如果端口是Trunk口这个标签就可能是动态变化的决定了数据帧走哪个VLAN的转发流程。2.2 实验拓扑的设计思路这次实验配合一个三级结构的典型场景来设计核心层一台三层交换机或者用路由器加单臂路由汇聚层两台二层交换机接入层若干PC终端。在Packet Tracer中我选择了如下设备组合三层交换机1台型号选3560因为它支持IP routing功能可以做VLAN间路由。如果你手头只有2950那就需要额外加一台路由器做单臂路由配置思路完全不同。二层交换机2台型号选2960这是最常见的学习用二层交换机。PC终端4台分属两个不同VLAN。直通线若干连接PC与交换机、交换机与交换机。模拟的场景是一家小公司的两个部门技术部Tech使用VLAN 10IP网段规划为192.168.10.0/24PC1和PC2属于这个部门财务部Finance使用VLAN 20IP网段规划为192.168.20.0/24PC3和PC4属于这个部门。这样设计的好处是每个VLAN对应一个独立IP子网逻辑清晰后续测试VLAN间路由时也不容易产生混乱。设备/接口所属VLANIP地址网关PC1VLAN 10192.168.10.1192.168.10.254PC2VLAN 10192.168.10.2192.168.10.254PC3VLAN 20192.168.20.1192.168.20.254PC4VLAN 20192.168.20.2192.168.20.2543560的Vlan10接口SVIVLAN 10192.168.10.254—3560的Vlan20接口SVIVLAN 20192.168.20.254—两台二层交换机分别命名Switch1和Switch2三层交换机命名SW-Core。Switch1用来接入PC1和PC3Switch2接入PC2和PC4。Switch1与Switch2之间通过Trunk互联再分别上行到SW-Core这样任何一个交换机下的终端都能通过核心层与另一个交换机的终端通信。2.3 实验环境的快速准备Packet Tracer的下载和安装就不展开说了网上一搜就有官方渠道注册个账号就能下载。装好以后有几个设置建议先调整一下关掉“Realtime”和“Simulation”的误触默认在Realtime模式下这个模式是实时模拟配置命令立即生效。有的同学不小心切到Simulation模式发现ping不通那是因为Simulation是逐包模拟需要点击Capture/Forward才能继续转发初学者经常被这个卡住。开启“Options → Preferences → Enable Packet Trace Mode”之类的高级模式这个可以让部分协议细节显示更清楚但不强制。给设备改好名字标注清楚哪台是Core哪台是Access哪台是哪个部门的接入交换机。很多人做实验做到后面设备一多就乱了改名字和备注是降低心智负担最有效的方式。3. 二层交换机上的VLAN配置实操3.1 在Switch1与Switch2上创建VLAN两台二层交换机的配置是完全对称的这里以Switch1为例详细跑一遍流程。双击Switch1进入CLI界面先进入特权模式然后进行VLAN创建Switchenable Switch#configure terminal Switch(config)#hostname Switch1 Switch1(config)#vlan 10 Switch1(config-vlan)#name Tech Switch1(config-vlan)#exit Switch1(config)#vlan 20 Switch1(config-vlan)#name Finance Switch1(config-vlan)#exit这里有一个细节很多人会直接敲vlan 10然后回车忘了给VLAN起名字。其实名字不影响的VLAN功能但真实项目中建议都写上方便后期排障时识别。你想想如果交换机上建了几十个VLAN都是VLAN 10、20、30这样的数字编号后期维护的人还要去翻文档才能知道哪个对应哪个部门多费劲。Packet Tracer对VLAN名字没有严格校验但真实设备上有些版本会限制名字长度不要用太长的字符串。创建完以后用show vlan brief看看效果Switch1#show vlan brief VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4 ... 10 Tech active 20 Finance active 1002 fddi-default active 1003 token-ring-default active 1004 fddinet-default active 1005 trnet-default active注意看这里VLAN 1是所有交换机的默认VLAN所有端口默认都在VLAN 1里面不能删除也不能改名。新建的VLAN 10和VLAN 20已经出现了但是Ports列是空的因为还没有把任何端口划分进去。3.2 把端口划分到对应的VLAN现在把Switch1的Fa0/1分配给VLAN 10Fa0/2分配给VLAN 20。这个操作在端口配置模式下完成Switch1(config)#interface fastEthernet 0/1 Switch1(config-if)#switchport mode access Switch1(config-if)#switchport access vlan 10 Switch1(config-if)#exit Switch1(config)#interface fastEthernet 0/2 Switch1(config-if)#switchport mode access Switch1(config-if)#switchport access vlan 20 Switch1(config-if)#exit这组命令让人困惑的地方在于为什么要先敲switchport mode access能不能直接设置access vlan我解释一下交换机端口在默认情况下是动态自动协商模式既可以是Access口也可以是Trunk口。如果你直接敲switchport access vlan 10端口模式还没确定有可能出现配置不生效的情况。所以标准做法是先把端口模式指定为access再指定所属的VLAN这样端口的行为才是确定的。还有一个容易踩坑的点如果某个端口同时被划分进了两个VLAN那是不可能的Access端口只能属于一个VLAN。如果你配置了两次最终以最后一次配置为准交换机会把原来的VLAN覆盖掉。这一点初学时要特别注意我曾经见过有人在Fa0/1上先配了VLAN 10后来又忘了直接给这个端口配VLAN 20结果终端IP地址还在VLAN 10网段怎么ping都不通就是这个原因。配置完成后再次执行show vlan brief会发现Fa0/1出现在VLAN 10列表中Fa0/2出现在VLAN 20列表中。这里建议用show interfaces fastEthernet 0/1 switchport查看更详细的端口信息可以看到PVID、管理模式、Trunk封装等方便确认配置是否正确。3.3 配置Trunk口实现跨交换机VLAN透传如果只有一台交换机VLAN配置到这里就结束了。但实验场景是两台接入交换机VLAN 10和VLAN 20的设备分别分布在两台交换机上那么两台交换机之间的链路必须同时承载VLAN 10和VLAN 20的流量。这时候就需要把互联端口配成Trunk口。Trunk口的原理是允许带VLAN标签的数据帧通过链路。交换机在Trunk链路传输数据帧时会给帧打上802.1Q标签标签里包含了VLAN ID对端交换机收到后再根据这个标签决定数据往哪个VLAN转发。我打个比方Access口像员工工牌出门必须刷一个固定部门的门禁Trunk口像货运通道车上装着什么部门的货就贴什么部门的标签这样可以一车多运。在Switch1上把Fa0/3配成Trunk口用它与Switch2互联Switch1(config)#interface fastEthernet 0/3 Switch1(config-if)#switchport mode trunk Switch1(config-if)#switchport trunk allowed vlan all Switch1(config-if)#exit在Switch2上同样操作把Fa0/3配成Trunk口并且确认对端端口是同一个物理相连的端口。这里要说一个Packet Tracer里的注意事项Packet Tracer模拟的设备上Trunk口默认允许所有VLAN通过所以switchport trunk allowed vlan all其实不写也行。但在真实交换机上尤其是生产环境安全实践是只放行哪些VLAN不要直接用all。比如你只想让VLAN 10和20通过就配置switchport trunk allowed vlan 10,20这样可以避免未知VLAN的流量跨交换机广播。两边Trunk都配好以后用show interfaces trunk检查能看到Trunk口的Native VLAN默认是VLAN 1、允许通过的VLAN列表、以及当前处于转发状态的VLAN。这里很多初学者会问Native VLAN是什么简单说在802.1Q协议里Native VLAN是Trunk链路上不带802.1Q标签的VLAN。默认情况下所有Trunk口的Native VLAN都是VLAN 1。如果两端的Native VLAN不匹配比如一边是VLAN 1另一边改成VLAN 10数据绕过打标签的机制后会用错误的VLAN转发轻则互通不了重则可能造成二层环路这是真实网络里非常隐蔽的故障点后面排查部分我会再细说。还有一处细节连接交换机之间的线缆在Packet Tracer里默认是直通线但实际设备互联一般用交叉线除非是千兆以上端口可以自动翻转。模拟器不讲究这个但你如果拿真机做实验要注意一下线缆类型。3.4 二层隔离测试现在PC1、PC2分别接到Switch1、Switch2的VLAN 10端口PC3、PC4分别接到Switch1、Switch2的VLAN 20端口。先把所有PC的IP地址配置好PC1和PC2是192.168.10.1和192.168.10.2PC3和PC4是192.168.20.1和192.168.20.2。注意此时还没有配置网关按理来说VLAN内同网段设备通信不依赖网关不同VLAN间通信必须先配置网关而网关在核心层还没建好。打开PC1的Command Prompt先ping PC2同VLAN、不同交换机PC ping 192.168.10.2如果Trunk配置正确这个ping应该是通的。数据从PC1进入Switch1的Fa0/1打上VLAN 10标签从Fa0/3的Trunk口发出去送到Switch2的Fa0/3再根据标签从Fa0/1VLAN 10交给PC2。整个过程不需要经过任何三层设备。再ping PC3不同VLANPC ping 192.168.20.1这个ping应该是失败的而且报错是请求超时。失败是正常的因为PC1属于VLAN 10PC3属于VLAN 20二层完全隔离。PC1发出的广播包在VLAN 10内泛洪根本不会到达VLAN 20的PC3。到这里VLAN的二层隔离效果就已经验证出来了。4. 三层交换与VLAN间通信的实现4.1 为什么需要三层设备来实现VLAN间通信VLAN隔离了广播域但实际业务中不同部门之间偶尔还是要互相访问的。比如技术部的工程师要访问财务部的一个管理系统这种跨VLAN的访问就属于三层路由行为。二层交换机只认MAC地址跨VLAN的数据帧不能直接转发它必须先送到一个三层设备由三层设备根据IP地址查找路由表确定目标在哪个VLAN、对应哪个网关然后重新封装成目标VLAN的二层帧发出去。实现VLAN间通信的方案有两大类单臂路由在二层交换机上把PC划分到不同VLAN然后用一条Trunk链路上连一台路由器路由器上用子接口Router Subinterface来充当多个VLAN的网关。这个方案的特点是路由器物理接口只有一个通过子接口拆分成多个逻辑接口每个子接口对应一个VLAN。优点是实验简单缺点是所有跨VLAN流量都挤在同一条链路上实际部署中性能受限。三层交换机SVI直接在三层交换机上创建VLAN的虚拟接口Switch Virtual Interface配置IP地址作为各VLAN的网关同时开启IP routing功能让三层交换机本身完成不同VLAN之间的路由。这个方案是现在企业网络的主流做法性能高配置也不复杂。这次实验使用的是三层交换机方案因为更贴近真实场景。3560交换机本身支持硬件转发三层流量性能和稳定性都比完全靠路由器强得多。4.2 在三层交换机上创建SVI接口在SW-Core3560上执行如下配置Switchenable Switch#configure terminal Switch(config)#hostname SW-Core SW-Core(config)#ip routing SW-Core(config)#vlan 10 SW-Core(config-vlan)#name Tech SW-Core(config-vlan)#exit SW-Core(config)#vlan 20 SW-Core(config-vlan)#name Finance SW-Core(config-vlan)#exit SW-Core(config)#interface vlan 10 SW-Core(config-if)#ip address 192.168.10.254 255.255.255.0 SW-Core(config-if)#no shutdown SW-Core(config-if)#exit SW-Core(config)#interface vlan 20 SW-Core(config-if)#ip address 192.168.20.254 255.255.255.0 SW-Core(config-if)#no shutdown SW-Core(config-if)#exit这里要特别说明ip routing这条命令。默认情况下三层交换机的路由功能是关闭的你不会看到这条提示但不打开的话SVI接口即使配置了IP地址也不会参与跨VLAN路由。很多人在三层交换机上配好了VLAN接口的IP地址发现不同VLAN还是ping不通第一反应是VLAN配置错了其实多半是漏了这条命令。创建SVI接口时还有几个细节必须在交换机上先创建对应的VLAN否则在interface vlan 10时交换机会提示“Interface Vlan10 does not exist”之类的错误。SVI接口默认是shutdown状态所以配置完以后一定要no shutdown。SVI接口的IP地址就是对应VLAN内PC的网关地址所以PC配置网关时不能随便填必须和SVI地址在同一个网段并且不能和该VLAN内的其他主机IP冲突。4.3 三层交换机与二层交换机之间的Trunk互联SW-Core与Switch1、Switch2之间的连接也要配成Trunk口否则不同VLAN的流量无法从接入层送上来。在SW-Core上配置两个上行端口SW-Core(config)#interface gigabitEthernet 0/1 SW-Core(config-if)#switchport mode trunk SW-Core(config-if)#exit SW-Core(config)#interface gigabitEthernet 0/2 SW-Core(config-if)#switchport mode trunk SW-Core(config-if)#exitSwitch1上也要把上联端口假设是Gig0/1配成TrunkSwitch2同理。这里容易忽略的是你在Switch1上创建了VLAN 10和VLAN 20在上联端口上如果不允许这几个VLAN通过上行流量就会被丢。默认Trunk允许所有VLAN但如果之前改过allowed vlan列表要记得把VLAN 10、20加进去。配置完以后建议用show interfaces trunk查看一下Trunk链路两端的状态确认允许列表里包含所有需要的VLAN。特别要注意Native VLAN是否一致Packet Tracer里默认都是VLAN 1问题不大但真实环境经常出现过Native VLAN被误改导致二层互通异常的情况。4.4 ping通全流程验证VLAN间路由现在给PC配置网关。PC1和PC2的网关填192.168.10.254PC3和PC4的网关填192.168.20.254。在Packet Tracer里点击PC进入Desktop → IP Configuration填写IP地址、子网掩码、网关即可。先从PC1 ping PC2确认VLAN 10内部通信正常再ping PC3192.168.20.1这次应该能通了。整个过程流量路径是这样PC1发出目标IP为192.168.20.1的数据包由于目标IP和自己不在同一网段PC1把帧发往默认网关192.168.10.254。数据帧在交换机内部带着VLAN 10标签到达SW-Core的Vlan10接口IP 192.168.10.254SW-Core查看路由表发现192.168.20.0/24的下一跳是Vlan20接口于是把帧重新打上VLAN 20标签从相应的Trunk口转发送到Switch1Switch1再通过Access口把帧送给PC3。PC3收到后由于知道PC1的IP回复过程完全反向最终PC1收到回包ping成功。用PC1分别ping PC4测试也能通说明跨交换机VLAN间路由的完整链路已经打通。如果通不了按下面路径排查先ping网关看看自己这个VLAN三层出口通不通网关通了target不同VLAN还ping不通多半是三层交换机没开ip routing或者SVI接口没no shutdown或者Trunk允许列表漏了VLAN。5. 踩过的坑VLAN实验常见问题与排查实录5.1 PC上配了IP但ping不同网关这个是最常见的问题通常是交换机端口的VLAN划分和PC的IP网段不一致导致的。比如PC1配置了192.168.10.1但Switch1的Fa0/1被划到了VLAN 20那PC1发出的帧进入交换机后被分到VLAN 20里而VLAN 20的网关是192.168.20.254和PC1的IP网段根本不匹配肯定不通。排查方法在交换机的特权模式下执行show vlan brief对照端口列表确认每个端口所在的VLAN是否和预期一致。然后再确认PC的IP、网关是否正确。理清这两个层级的问题大部分“ping不同网关”的故障就解决了。5.2 同VLAN跨交换机ping不通如果PC1能ping通同交换机的PC同VLAN但ping不通另一台交换机上的同VLAN PC问题基本出在Trunk上。检查步骤确认两台交换机之间的互联端口是否是Trunk模式用show interfaces trunk查看。确认Trunk的allowed vlan列表里是否包含了目标VLAN。如果你之前手动设置过switchport trunk allowed vlan可能把VLAN 10漏掉了。确认两端Trunk口的Native VLAN是否一致。举一个典型例子Switch1的Native VLAN默认是VLAN 1Switch2的Native VLAN被某个人改成VLAN 10那么两边在传输不带标签的帧时会当成不同的VLAN来处理导致二层通信异常。这种情况在Packet Tracer里不常见因为模拟器默认一致但在真实网络里很隐蔽排查起来极度烧脑。5.3 三层交换机上配了SVI但跨VLAN不通这个问题場景通常出现在把全网配置好以后。先确认三层交换机上是否执行了ip routing这条命令只是进入全局配置模式后敲一下就行。再确认SVI接口是否处于up状态如果不确定用show ip interface brief查看如果显示administratively down说明没执行no shutdown。还有一种容易被忽略的情况SVI接口的IP地址和PC的网关没对齐。比如SVI 10配的是192.168.10.253PC1的网关填的是192.168.10.254这样PC1发送的跨网段数据包根本到不了正确网关自然也不通。配置时建议先写出IP规划表对照着配避免随手一填造成低级失误。5.4 如何在Packet Tracer里抓包验证VLAN标签Packet Tracer的Simulation模式是个很好的排查工具。切换到Simulation模式后PC1 ping PC3之前先点击“Edit Filters”按钮勾选ARP和ICMP协议。然后在拓扑里点击PC1发送ping再点击“Capture/Forward”一步一步看数据包在交换机之间的流转过程。你会看到数据帧从PC1进入Switch1后交换机给它打上了802.1Q标签VLAN 10在Trunk链路传输时帧大小多出了4个字节。接着数据到达SW-CoreSW-Core剥离二层帧头进行三层路由查找后重新封装为VLAN 20的帧从另一个Trunk口转发出去。这个过程在Realtime模式下很难直观感受到在Simulation模式下变得非常清晰。Packet Tracer用的是简化的模拟方式不是像Wireshark那样真实抓包但用来理解VLAN标签的封装、解封装流程足够了。如果你还想深度看帧内容可以点击Simulation面板里的捕获到的数据包查看“OSI Model”和“Inbound PDU Details”里面会列出MAC地址、VLAN ID、IP地址等信息很直观。5.5 常见问题速查表现象可能原因排查/解决命令同VLAN同一交换机ping不通PC IP配置错误端口VLAN划分错误show vlan brief检查端口归属同VLAN跨交换机ping不通Trunk接口未配置或allowed vlan漏配Native VLAN不一致show interfaces trunkshow interfaces switchport不同VLAN ping不通三层交换机未开启ip routingSVI接口关闭网关配置错误show ip routeshow ip interface brief网关能ping通但目标主机不通目标主机的网关未配置目标主机IP/端口VLAN异常show arp检查目标主机的IP配置交换机配置command报错不在正确的配置模式VLAN未创建检查提示符先创建vlan再进interface vlanPing通但延迟极高Simulation模式未持续转发模拟器性能问题切回Realtime模式5.6 一个容易被忽视的命令show mac address-table做VLAN实验时很多人不会主动去看MAC地址表但我强烈建议养成这个习惯。在交换机上执行Switch1#show mac address-table你会发现MAC地址表里的动态条目都带有一个VLAN字段每一条都标明这个MAC地址是从哪个VLAN、哪个端口学到的。如果同一个MAC地址出现在两个VLAN里那一定是环路或者端口配置有问题。如果不做VLANMAC地址表会比较混浊划分VLAN以后每个VLAN独立学习MAC这个表格会清爽很多排障时也能快速定位设备到底连在哪个端口、属于哪个VLAN这对网络运维是很有用的基础功。6. 实验扩展与真实设备注意事项6.1 从Packet Tracer到真实设备的配置差异Packet Tracer里敲的命令到了真实思科设备上大部分是通用的但有几个差异需要心里有数版本差异思科2950等老设备可能不支持某些三层功能而较新的IOS版本命令格式可能略有调整。比如Packet Tracer里2960和3560的行为和真实IOS大同小异但某些旧版本交换机上还需要手动指定接口的duplex和speed参数否则协商异常也可能导致链路不通。接口编号Packet Tracer里的FastEthernet0/1、GigabitEthernet0/1到了真实设备上可能是GigabitEthernet1/0/1、TenGigabitEthernet1/1/1这种格式看设备型号和插槽而定。保存配置模拟器里实验做完可以随时拖到别的地方继续用不保存配置也不影响但真机上一定要记得copy running-config startup-config不然设备重启后所有配置全部丢失。这是新手最容易犯的错辛辛苦苦配了一下午断电重启一切归零眼泪都要流干。6.2 在华为设备上复现这个实验的参考思路现在国内企业网络中华为设备占比很高如果你已经掌握了思科的VLAN配置切换到华为设备只需要理解命令的对应关系。华为交换机上创建VLAN的命令是[Huawei] vlan 10 [Huawei-vlan10] description Tech [Huawei-vlan10] quit端口划入VLAN用[Huawei] interface GigabitEthernet 0/0/1 [Huawei-GigabitEthernet0/0/1] port link-type access [Huawei-GigabitEthernet0/0/1] port default vlan 10 [Huawei-GigabitEthernet0/0/1] quitTrunk配置用[Huawei] interface GigabitEthernet 0/0/24 [Huawei-GigabitEthernet0/0/24] port link-type trunk [Huawei-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [Huawei-GigabitEthernet0/0/24] quit华为默认的VLAN也是VLAN 1三层接口配置是创建Vlanif[Huawei] interface Vlanif 10 [Huawei-Vlanif10] ip address 192.168.10.254 24思科的switchport access vlan对应华为的port default vlan思科的switchport mode trunk对应华为的port link-type trunk。思路完全一样只是关键词变了。掌握了原理跨厂商切换只是查命令字典的问题不需要重新学一遍网络基础。6.3 如果只有路由器单臂路由实验怎么做有些人的实验环境里没有三层交换机只有一台二层交换机和一台路由器。这种条件下做VLAN间通信就要用到单臂路由方案。配置思路概括成几个步骤二层交换机上创建VLAN 10和VLAN 20PC端口按部门划到各自VLAN。交换机上联路由器的端口配成Trunk允许VLAN 10、20通过。路由器上配置两个子接口Router(config)#interface gigabitEthernet 0/0.10 Router(config-subif)#encapsulation dot1Q 10 Router(config-subif)#ip address 192.168.10.254 255.255.255.0 Router(config-subif)#exit Router(config)#interface gigabitEthernet 0/0.20 Router(config-subif)#encapsulation dot1Q 20 Router(config-subif)#ip address 192.168.20.254 255.255.255.0关键是encapsulation dot1Q命令它让路由器在接收Trunk链路传来的带标签帧时能够识别VLAN ID并交给对应子接口处理。子接口和SVI本质上都是“一个物理接口当多个接口用”的思路只是性能和实现方式不同。如果手里只有路由器用这个方案一样能跑通VLAN间通信实验做完以后对802.1Q的理解会更深。7. 实验总结与个人实操经验分享VLAN的配置实验做到这里核心流程已经完整走通了创建VLAN、划分Access端口、配置Trunk、创建SVI或者子接口、验证互联互通。整个实验做下来收获最大的不是记住了几条命令而是理解了交换机数据转发的基本逻辑同一个VLAN内的帧靠MAC地址表转发不同VLAN之间的帧必须经过三层路由。这个逻辑是整个网络体系的地基后面学STP、VTP、VRRP、ACL都离不开它。我每次带人做这个实验的时候都会额外做一件事当他们把所有配置敲完、ping通畅之后我让他们把实验翻车故意配置一个错的东西比如把Native VLAN改掉或者把Trunk allowed vlan里漏掉一个VLAN然后通过抓包和show命令反向排查。这样能逼着人真正理解报文是带着标签走的而不是背下来几条命令就觉得会配VLAN了。网络工程师的技术水平差距往往不在于会敲多少命令而在于排障时能不能在脑子里快速还原数据包在整条路径上“走到哪里、转了哪一步、为什么丢在哪个环节”。还有一个小小的建议实验做完以后把这套拓扑保存在本地下次学到VLAN间路由、ACL管理、DHCP Snooping、端口安全时都可以在这个拓扑上叠加新配置再验证一遍。一个能在虚拟环境里反复折腾的拓扑就是学习网络技术过程中最值钱的家底。