这周私信里突然多了好几条“作业5vlan”开头的消息。点开一看问题都出奇一致交换机里配了VLAN结果不是同一个VLAN的PC能互相ping通就是同一个VLAN的PC反而ping不通。如果你正在做这份作业先把命令放一边这篇文章我会从VLAN划分的底层逻辑讲起把PVID、Access、Trunk、VLAN间通信、Mux VLAN这些概念全部串起来再手把手带你跑通模拟器里的配置验证最后聊几个实战里才遇到的坑。无论你是网络工程专业学生、刚入行的运维还是在准备厂商认证看完这一篇基本都能应付。1. 动手配置之前先把VLAN的底层逻辑盘明白1.1 为什么非要“划分VLAN”先说一个容易被忽略的背景。一台没做过任何配置的二层交换机插上几台PC所有端口默认都在同一个广播域里。什么叫广播域就是任何一个设备发出的广播帧会让同一范围内的所有设备都收一份并占用CPU去处理。想象一个大开间办公室任何人喊一嗓子全楼层的人都要停下来听——这就是最原始的二层网络状态。当设备数量少的时候这没问题可一旦网络里有几百上千台终端ARP请求、DHCP发现、各种组播探测会把链路带宽和终端CPU吃得很厉害更麻烦的是安全问题一个区域的广播能被别的区域监听到攻击者还能通过ARP欺骗把广播域变成传播扩散的路径。VLAN就是来解决这个局面的。VLANVirtual Local Area Network虚拟局域网。它做的事情很直白把一个物理交换机按照端口、MAC或协议逻辑切成若干独立的广播域。在VLAN内广播能正常传播跨了VLAN二层广播一律不做透传。这就是“划分VLAN”的本质也是你这份作业最核心的验证点。但很多人在做作业时把重点放在了敲命令上忽略了为什么ping不通才是正常。我带新人时经常问把四台PC的IP规划好不配VLANPC1能ping通PC4吗能。配了VLAN10和VLAN20之后呢不能。这个“从能到不能”的变化就是VLAN在起作用。理解了这一层后面的Access、Trunk才学得明白。1.2 PVID和VLAN ID是两回事别混着记这是作业里最容易把人绕晕的两个词。先给结论VLAN ID是VLAN的编号标识一个逻辑网络PVID是Port VLAN ID表示一个端口在没有标签信息时默认归属哪个VLAN。两者数字上经常相等但语义完全不同。可以这样记VLAN ID像班级编号说的是“这个班里有哪些人”PVID像门卫手里的一份默认名单说的是“看不出身份的人先按哪个班处理”。以Access端口为例。交换机上把一个端口设成access并指定port default vlan 10这个10既表示端口划分在VLAN10同时也是这个端口的PVID。PC发来的普通以太网帧没有打802.1Q标签端口就会把它当成VLAN10的帧来转发出方向时交换机也会把标签剥掉变成普通帧交还给PC。一旦涉及TrunkPVID的问题就开始有意思了。Trunk端口可以同时放行多个VLAN。那某个没有打标签的帧进来应该算哪个VLAN答案是看PVID。华为设备上默认PVID是1可以用port trunk pvid vlan 10把它改成10。如果两端交换机PVID设置不一致就可能出现帧被当错VLAN、业务流量奇奇怪怪串扰的故障。后面我专门写了这个坑。PVID和VLAN ID的理解是我见过作业里占分最高、也最容易被扣分的点很多同学能背命令但题目问“这个端口收到一个无标签帧会进入哪个VLAN”就卡住了。答会进入PVID对应的VLAN。1.3 三种划分方式作业里最常考的是第一种VLAN的划分方式按依据不同大致分三类基于端口划分把交换机的某个物理端口静态指定到VLAN。管理简单、行为可预期绝大多数作业和企业接入层都在用。基于MAC地址划分按终端MAC把设备划入对应VLAN。用户换个接入端口交换机也能识别MAC并放进正确VLAN适合移动办公场景缺点是要维护MAC与VLAN的映射表量一大就难管理。基于IP子网/协议划分根据源IP地址或三层协议类型决定VLAN归属灵活但复杂实际项目很少单独使用。可以做个表划分方式依据适用场景优缺点基于端口物理端口企业办公、机房接入配置简单、排障直观用户移动需要重配基于MAC终端MAC移动办公、BYOD用户迁移方便MAC表维护成本高基于IP子网/协议IP地址/协议类型特殊路由场景逻辑灵活复杂、低效用得少作业里要求的一般都是基于端口划分。把这一种吃透其他两种理解概念即可。很多同学把精力花在研究三种方式上反而忽略了最基础命令的验证这个方向不要跑偏。2. 完成作业的第一步单交换机VLAN划分小实验2.1 上手建议先选对模拟器和拓扑做这道VLAN划分小实验我强烈建议不要先在真机上试。一是很多学校实验室的旧交换机堆叠了几十个班学生的配置你一个误操作可能把整个网搞乱二是练手阶段需要大量重启、清除配置模拟器能让你毫无压力地折腾。主流模拟器有三个华为eNSP、思科Packet Tracer、H3C HCL。如果你用的是华为教材或考华为认证直接选eNSP如果课程用的是思科体系Packet Tracer更顺手HCL的界面和命令风格与华为接近也是不错的选择。文章里的命令我按华为eNSP来讲但理解逻辑后换成思科不过是把port link-type access换成switchport mode access。第一次装eNSP最常见的麻烦是设备启动失败控制台提示连接不上、设备图标一直灰色。这类问题90%和VirtualBox版本不兼容、Wireshark或WinPcap没正确安装有关。先把三者卸载干净按安装文档顺序重装一次基本能解决。拓扑建议这样搭两台交换机SW1和SW2下挂四台PC。PC1、PC2规划在VLAN10PC3、PC4规划在VLAN20。IP地址段顺手规划好VLAN10用192.168.10.0/24VLAN20用192.168.20.0/24PC1是192.168.10.1PC2是192.168.10.2PC3是192.168.20.1PC4是192.168.20.2。这个规划后面配VLANIF、配ACL的时候都用得上。为什么建议两台交换机而不是一台因为只做一台交换机时你接触不到跨交换机的Trunk链路和VLAN透传而这恰恰是作业里最可能延伸出来的考点。两台交换机一次搞定省得回头再补实验。2.2 华为交换机Access端口配置的完整流程先说配置思路建VLAN、配端口、验证三步走。进到system-view后先把两个VLAN创建出来再去找端口做归属最后用display命令核对不要边建VLAN边改端口那样容易漏。参考配置如下SW1、SW2都做同样操作system-view vlan 10 description Sales quit vlan 20 description Finance quit 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 quit注意一个坑华为交换机端口默认是hybrid模式不是access。如果跳过port link-type access这一步直接用port default vlan命令虽然能敲进去但端口依然同时具备hybrid的标签处理逻辑很多初学者后面发现VLAN透传表现和预期不一样多半是这里埋的雷。不要忘了SW1上连着PC1、PC2就分别把G0/0/1、G0/0/2配成VLAN10、VLAN20SW2上同理。如果你用的是Cisco Packet Tracer命令长这样enable configure terminal vlan 10 exit vlan 20 exit interface fastethernet 0/1 switchport mode access switchport access vlan 10 exit interface fastethernet 0/2 switchport mode access switchport access vlan 20配置这一步没有太多悬念真正的风险全在验证环节。2.3 验收方法不光看命令还要会看现象把命令敲完别急着点PC的ping。先在交换机上做两道检查display vlan display port vlandisplay vlan会列出当前设备上VLAN的编号、描述、端口成员。重点看VLAN10和VLAN20下的接口数目对不对。display port vlan更直观按端口维度显示每个端口属于哪些VLAN以及端口的PVID。如果发现端口跑到了意想不到的VLAN里十有八九是刚才接口选错了或没指定对。接下来做连通性验证。把四台PC都启动起来按规划配好IP地址和掩码网关先空着。然后PC1192.168.10.1ping PC2192.168.10.2应该通。PC1 ping PC3192.168.20.1应该不通。PC3192.168.20.1ping PC4192.168.20.2应该通。PC3 ping PC1192.168.10.1同样不通。这里要重点盯一下第二、四条。如果你发现跨VLAN居然能ping通赶紧回去查端口划分大概率是某个端口被无意中划到了另一个VLAN或者交换机之间存在非预期的级联链路。反过来如果同VLAN也不通优先检查PC的IP地址是否配在同一网段、IP是否冲突、PC有没有启动成功这些低级问题在eNSP里比配置错误更常见。把这个验收过程写进作业报告比单纯贴命令有说服力得多。老师想看到的就是你理解了“广播域隔离”这个现象而不只是会抄命令。3. 突破作业难点Trunk链路与VLAN间通信3.1 跨交换机为什么必须走Trunk单交换机作业做通了接下来自然要问两台交换机上都有VLAN10和VLAN20PC分别挂在不同交换机上它们之间的流量怎么走如果两台交换机的互联口也用access那么这根线只能承载一个VLAN。比如把它划进VLAN10那SW2上的VLAN20就没法和SW1上的VLAN20通信。要让一根物理线同时承载多个VLAN的流量就得用Trunk链路。Trunk的工作原理可以概括为八个字打标签、按标签转。交换机从Trunk口发帧时会在以太网帧里加一个802.1Q标签写上这个帧属于哪个VLAN对端收到后读取标签把它送进对应的VLAN。所谓802.1Q标签就是原本以太网帧头部多出来的4字节其中12位是VLAN ID描述能力是0到4095。给新手做个类比一条水管里要同时输送好几种颜色的水直接混在一起到站没法分清。Trunk的做法是给每一滴水都贴个颜色标签到站后按标签分流。至于不带标签的帧则按端口PVID处理——这就回到1.2里我们反复强调的PVID了。3.2 华为交换机一个端口加入多个VLAN的正确姿势作业做到跨交换机这一步你在华为设备上会遇到一个非常有华为特色的问题一个端口想加入多个VLAN用access肯定不行怎么办华为端口有三种模式access、hybrid、trunk。Access好理解一个端口一个VLAN发出去的帧不带标签Trunk专门用来中继多VLAN端口可以放行一个VLAN列表Hybrid是华为特有的灵活模式它可以同时配置某些VLAN打标签、某些VLAN剥标签很多老网工也容易绕迷糊。两台交换机互联口的推荐配置是Trunk注意三件事interface GigabitEthernet 0/0/3 port link-type trunk port trunk pvid vlan 10 port trunk allow-pass vlan 10 20 quit第一连PC的口继续用access连交换机的口改成trunk别搞混。第二必须写port trunk allow-pass vlan 10 20。华为trunk端口默认只放行VLAN1不写allow-pass其它VLAN的帧直接就被过滤掉了。很多同学配完发现跨交换机VLAN不通八成就是忘了这一行。第三两端PVID要一致。上面我刻意写成port trunk pvid vlan 10是为了演示PVID的修改实际如果VLAN10和VLAN20里的流量都有打标签PVID理论上用默认的1也行但为了排查方便我建议两端都改成同一个值避免无标签帧的归宿不一致。提示华为Trunk端口默认只放行VLAN1很多新手在这里栽跟头。配置完一定要用display port vlan检查上联口的状态。如果你用的是Hybrid模式语法是这样的interface GigabitEthernet 0/0/4 port link-type hybrid port hybrid tagged vlan 10 20 port hybrid untagged vlan 30 quit意思很直白VLAN10和VLAN20的帧从这口出去时保留标签VLAN30的帧出去时把标签剥掉。接主机时一般用untagged因为普通PC网卡压根不认识802.1Q标签接交换机时用tagged否则一台交换机把标签剥了另一台就分不清它属于哪个VLAN了。Hybrid不容易考但做华为项目几乎天天见建议把tagged和untagged这对概念彻底记牢。配置完后用display port vlan在SW1上检查上联口状态应该能看到允许通过的VLAN列表里包含10和20。3.3 VLAN间通信的两种实现路径现在你已经实现了同VLAN能通跨VLAN不通。这恰恰是VLAN作业的目标状态——隔离已经做对了。但真实业务往往不能只隔离不互联市场部虽然和财务部隔开市场系统还是要查财务系统里的数据这就需要三层转发来打通VLAN。办法一单臂路由。在一台路由器上找一个物理口划分出多个子接口每个子接口对应一个VLAN的网关。华为命令大概长这样interface GigabitEthernet 0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 24 quit interface GigabitEthernet 0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 24 quit注意华为子接口上dot1q termination vid必须写它告诉路由器子接口要处理哪个VLANID的标签在eNSP里通常还需要开启ARP广播相关选项否则PC通过网关跨VLAN会莫名其妙不通。办法二三层交换机VLANIF现在的主流方案。直接在交换机上给VLAN建一个三层接口充当该VLAN内PC的网关interface Vlanif 10 ip address 192.168.10.254 24 quit interface Vlanif 20 ip address 192.168.20.254 24 quit然后把四台PC的网关分别指向对应的VLANIF地址。此时PC1要访问PC3数据包会先发给网关192.168.10.254交换机会根据目的IP查路由表发现192.168.20.0/24在自己身上就从Vlanif20把它转发到VLAN20。这个“发给网关再由网关转发”的路径是理解VLAN间通信的关键。很多同学做完作业还是只会ping一会儿通一会儿不通根本原因就是没有理解这一步。我建议你在作业里把两种方式都实验一遍。单臂路由虽然性能不如三层交换机但它能把“子接口802.1Q标签终结”这个细节讲透。再遇到“VLAN间通信”的面试题你就能说出两种方案的取舍小规模、教学、实验室用路由规模大用三层交换成本、吞吐、配置量都不一样。4. 作业以外的进阶操作Mux VLAN、Smart VLAN与ACL联动4.1 Mux VLAN到底在隔离什么作业做完之后如果想往上走一步可以先看看华为特色里的Mux VLAN。你在热搜里看到mux vlan基本都是因为华为OLT和企业交换机都在用这个特性。Mux VLAN的结构是一个Principal VLAN主VLAN多个Subordinate VLAN从VLAN。而在从VLAN里又分成两类Group VLAN用于组内互通Separate VLAN用于彻底隔离。理解它可以套一个酒店场景客房的终端之间不能互相访问保护隐私但每个客房都能访问前台服务、上网网关。用Mux VLAN就能让所有客房设备共用上联口和互联网出口同时互相隔离。配置思路大致是这样vlan 100 mux-vlan quit vlan 200 mux-vlan subordinate group quit vlan 300 mux-vlan subordinate separate quit端口侧还需要设置mux-vlan的principal端口和subordinate端口。这类配置我建议放在作业里作为一个加分项不一定要求敲得下来但至少要知道它解决的是“共享上行用户隔离”的矛盾。真到企业项目里做访客WiFi、酒店客房网络这套思路几乎是标配。4.2 运营商场景下的Smart VLAN与华为OLT接着Mux VLAN再往上看就到运营商接入网了。华为OLT里常见的smart vlan和mux vlan经常一起出现。Smart VLAN的出发点很现实一个用户一个VLAN4094个编号看起来多接入用户一多就顶不住而Smart VLAN允许多个用户共享同一个业务VLAN再通过用户侧端口来区分和隔离。所以在OLT设备上你会看到这样的组合思路用户侧、ONU侧用Mux VLAN隔离不同住户上联侧通过Smart VLAN聚合共享组播、DHCP等特殊业务再单独配相应的VLAN策略。这也是为什么“华为olt中配置smart vlan和mux vlan”会成为热搜词——它不是一段配置就能说清而是配合接入网整体规划来做的。这段话我特意放在作业后面是想提醒你VLAN不是一个只在交换机上配两条命令的概念。在运营商网络里VLAN是一种资源要规划、要回收、要扩展。理解了这一点你再看下面这个“号段满了”的问题就顺了。4.3 VLAN配合ACL实现真正的网络域隔离VLAN把广播域切开了但这只是二层隔离。二层隔离解决的是广播和安全边界问题解决不了“谁可以访问谁”的规则问题。比如公司有三台服务器财务系统只允许财务VLAN访问访客VLAN连看都看不到。这个需求光靠VLAN划不出来得用ACL。ACL访问控制列表作用是在三层匹配源/目的IP、协议、端口号然后执行放行或拒绝。华为上最常用的高级ACL是3000段acl 3000 rule 5 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.30.0 0.0.0.255 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.30.0 0.0.0.255 quit interface Vlanif 30 traffic-filter inbound acl 3000这段的意思是VLAN30服务器区的入口处拒绝VLAN20访问只放行VLAN10。需要注意ACL默认有一条末尾隐含拒绝如果忘了写允许规则可能连正常流量都掐断。我的建议是先写允许规则、再写拒绝规则并且在接口下绑定后立刻测一遍两端连通性。VLAN负责划分广播域边界ACL负责在边界上管控访问两者合起来才是真正完整的“网络域隔离-VLAN划分与ACL配置”。这个组合写进你的作业总结里能让整份作业直接从70分跳到90分的水平。5. 作业里不会写、但实战天天踩的VLAN坑5.1 VLAN号段地址不够用了怎么办前面提过VLAN上限是4094实际里有很多号段是预留给特殊用途的能分配的更少。所以“VLAN号段地址满了”不是危言耸听我在项目里就见过规划得乱七八糟、从1排到4000多的网络。遇到这个情况先别急着买新设备按顺序做四件事清理僵尸VLAN登录所有交换机执行display vlan把那些空有编号、没有实际成员的VLAN全部删掉。重新规划按地域、业务、安全等级重新划分VLAN段而不是一台交换机一段编号。比如10-20段留办公、30-40段留访客、50-60段留管理。收敛边界在网络核心/汇聚通过VLAN转换或重标记把接入层无意义的VLAN合并归一。终极手段QinQ用802.1ad双层标签外层VLAN承载运营商侧内层VLAN承载客户侧4094个VLAN瞬间变成4094乘4094。作业里不会考QinQ配置但面试官问一句“VLAN不够用怎么办”你至少要知道有这条路。真到运营商或大型企业做网络规划这套思路会让你少踩很多坑。5.2 Wireshark看不到VLAN标签思路要对做VLAN实验时肯定有人想抓包看看效果。当你打开Wireshark在PC上抓包大概率会发现一片空白——别怀疑配置先怀疑抓包位置。普通PC网卡接在交换机access口交换机出方向已经把802.1Q标签剥掉了。你抓到的帧里没有VLAN信息这是正常的。想看到真实标签有两个办法一是抓包口直接接交换机的trunk口二是用Wireshark抓同一链路的上联口数据或者更规范地在交换机上配置端口镜像把某个VLAN的流量复制到抓包口。Wireshark过滤VLAN标签的方法也很顺手过滤器写vlan 或 vlan.id 10就能只显示属于VLAN10的帧想看优先级还可以用vlan.priority。看到Ethernet头里多了4字节的802.1QTPID是0x8100第2-3字节里有12位VLAN ID就算真正看到标签了。顺带说一个实际需求很多人想在PC上直接收发带tag的帧比如接trunk口做抓包、跑虚拟机多个业务分离。Intel的I219-V这种板载网卡在设备管理器高级选项卡里能找到一个VLAN ID选项填上编号后电脑发出去的帧就会带上802.1Q标签。前提是装完整版Intel驱动而不是Windows通用驱动——这个操作和设备驱动、抓包工具配合起来是排查VLAN问题的利器。5.3 真实场景IPTV组播VLAN与家庭路由最后聊一个跟生活特别近的VLAN场景IPTV。广东电信这些宽带运营商的IPTV业务很多都要走专门的组播VLAN。你会发现光猫里的上网业务在VLAN100IPTV业务在另一个VLAN电视盒子只有进对了这个VLAN才能收到组播流。这就解释了一个常见的家庭网络现象自己买的路由器PPPoE拨号上网没问题但IPTV一到晚上就卡、就黑屏多半因为路由器没有正确配置IPTV VLAN和组播透传。软路由玩家常说的“单线复用”本质上就是通过VLAN把上网和IPTV两种流量在一条物理线路上分开走。这部分作业可能接触不到但如果你的职业生涯会碰到装维、智能化或企业网络改造这就是VLAN和实际用户最近的连接点。下次家里电视盒子出问题你能想到先查VLAN配置而不是一味怪运营商说明这份作业你已经学透了。我自己对这题的印象还挺深。当年做这份作业时我也是先去eNSP里把命令一遍一遍敲通回头才补的原理。真正把PVID记死是后来排一个真实故障两台华为交换机互联一边PVID被改成10另一边还是默认1结果无标签帧在链路上被当成了完全不同的VLAN业务时通时断排了快半小时。所以最后我劝你一句别急着把作业交了就跑。把所有display命令的输出都截下来把trunk线拔了看看现象把Wireshark抓到带tag的帧再关闭。这些动作花不了十分钟但你对VLAN的理解会完全不一样。等哪天你也在真机上碰到“时通时不通”的怪问题你会感谢当年这个作业的。