这周私信里突然多了好几条“作业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就是来解决这个局面的。
VLAN,Virtual Local Area Network,虚拟局域网。它做的事情很直白:把一个物理交换机按照端口、MAC或协议逻辑切成若干独立的广播域。在VLAN内,广播能正常传播;跨了VLAN,二层广播一律不做透传。这就是“划分VLAN”的本质,也是你这份作业最核心的验证点。
但很多人在做作业时把重点放在了敲命令上,忽略了为什么ping不通才是正常。我带新人时经常问:把四台PC的IP规划好,不配VLAN,PC1能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。
一旦涉及Trunk,PVID的问题就开始有意思了。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规划在VLAN10,PC3、PC4规划在VLAN20。IP地址段顺手规划好:VLAN10用192.168.10.0/24,VLAN20用192.168.20.0/24,PC1是192.168.10.1,PC2是192.168.10.2,PC3是192.168.20.1,PC4是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、VLAN20;SW2上同理。如果你用的是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地址和掩码,网关先空着。然后:
- PC1(192.168.10.1)ping PC2(192.168.10.2):应该通。
- PC1 ping PC3(192.168.20.1):应该不通。
- PC3(192.168.20.1)ping PC4(192.168.20.2):应该通。
- PC3 ping PC1(192.168.10.1):同样不通。
这里要重点盯一下第二、四条。如果你发现跨VLAN居然能ping通,赶紧回去查端口划分,大概率是某个端口被无意中划到了另一个VLAN,或者交换机之间存在非预期的级联链路。反过来,如果同VLAN也不通,优先检查PC的IP地址是否配在同一网段、IP是否冲突、PC有没有启动成功,这些低级问题在eNSP里比配置错误更常见。
把这个验收过程写进作业报告,比单纯贴命令有说服力得多。老师想看到的就是你理解了“广播域隔离”这个现象,而不只是会抄命令。
3. 突破作业难点:Trunk链路与VLAN间通信
3.1 跨交换机为什么必须走Trunk
单交换机作业做通了,接下来自然要问:两台交换机上都有VLAN10和VLAN20,PC分别挂在不同交换机上,它们之间的流量怎么走?
如果两台交换机的互联口也用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的出发点很现实:一个用户一个VLAN,4094个编号看起来多,接入用户一多就顶不住;而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.1Q,TPID是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。你会发现光猫里的上网业务在VLAN100,IPTV业务在另一个VLAN,电视盒子只有进对了这个VLAN才能收到组播流。
这就解释了一个常见的家庭网络现象:自己买的路由器PPPoE拨号上网没问题,但IPTV一到晚上就卡、就黑屏,多半因为路由器没有正确配置IPTV VLAN和组播透传。软路由玩家常说的“单线复用”,本质上就是通过VLAN把上网和IPTV两种流量在一条物理线路上分开走。
这部分作业可能接触不到,但如果你的职业生涯会碰到装维、智能化或企业网络改造,这就是VLAN和实际用户最近的连接点。下次家里电视盒子出问题,你能想到先查VLAN配置,而不是一味怪运营商,说明这份作业你已经学透了。
我自己对这题的印象还挺深。当年做这份作业时,我也是先去eNSP里把命令一遍一遍敲通,回头才补的原理。真正把PVID记死,是后来排一个真实故障:两台华为交换机互联,一边PVID被改成10,另一边还是默认1,结果无标签帧在链路上被当成了完全不同的VLAN,业务时通时断,排了快半小时。所以最后我劝你一句:别急着把作业交了就跑。把所有display命令的输出都截下来,把trunk线拔了看看现象,把Wireshark抓到带tag的帧再关闭。这些动作花不了十分钟,但你对VLAN的理解会完全不一样。等哪天你也在真机上碰到“时通时不通”的怪问题,你会感谢当年这个作业的。