前三篇我们把"网关画在哪台设备上"和"二层环路怎么定界"讲完了。这一篇往回退一步,讲一个更靠前、也更容易被糊弄过去的动作:VLAN 规划。

我见过太多现场,环路查出来了、网关位置也对了,最后卡在一个特别朴素的问题上——某个 VLAN 的报文根本就没过去。根子不在协议,在规划:编号拍脑袋定的、接口类型没配、Trunk 只放通了一半、语音和监控直接抄了办公网的 VLAN。

这篇按华为官方产品文档里"帧怎么进、怎么出"的规则来讲,因为这 5 个坑全都能从那张表推出来。文中接口行为与缺省值引自《S12700, S12700E V200R025C00 产品文档》的"VLAN 配置"章节,不同型号、不同版本可能有差异,落地前请以现网设备版本的文档为准。


一、VLAN 规划定的是四条边界,不是"分几个号"

先说清楚规划到底在决定什么。VLAN 不是一个编号游戏,它一次定死四件事:

边界由什么决定定错了会怎样
广播域VLAN 编号广播域跨楼,一次风暴全园漫延(第 3 篇踩过)
接入边界接口类型 + PVID该进的进不来,不该进的进来了
三层边界VLANIF 地址与掩码同 VLAN 不同网段不通,跨 VLAN 又不通
质量边界专网(语音/监控/无线)语音卡顿、视频花屏、AP 掉线

所以规划的顺序应该是:先定段位(编号)→ 再定接口(谁进哪个 VLAN)→ 再定网段(每个 VLAN 一个三层边界)→ 最后把专网单独拎出来。四步里任何一步偷懒,后面都要用排障时间去还。

在这里插入图片描述


二、官方的帧处理表,是这 5 个坑的总根

华为把接口按"连什么、怎么处理帧"分成 4 种链路类型:Access、Trunk、Hybrid、QinQ。前三种的处理规则,官方给了一张很干脆的表:

接口类型收到不带 Tag 的帧收到带 Tag 的帧发送时
Access打上缺省 VLAN 的 TagVID 与缺省 VLAN 相同才接收,不同则丢弃剥掉 PVID 的 Tag 再发
Trunk打上 PVID;PVID 在 allow-pass 列表里才接收VID 在 allow-pass 列表里才接收VID 等于 PVID 且被允许 → 剥 Tag;其余被允许的 → 带 Tag
Hybrid打上 PVID;PVID 在允许列表(Tagged 或 Untagged)里才接收VID 在允许列表里才接收按配置决定哪些 VLAN 带 Tag、哪些不带

再看缺省值(S12700 V200R025C00):

参数缺省值
接口类型negotiation-desirable(不是 access)
缺省 VLAN(PVID)VLAN 1
Access 口加入的 VLAN以 Untagged 方式加入 VLAN 1
Trunk 口加入的 VLAN缺省配置表写"以 Tagged 方式加入 VLAN 1~4094"(见下方说明)
VLANIF 变 Down 的延迟0s

一处必须说清的文档矛盾:VLAN 缺省配置表写的是"Trunk 接口以 Tagged 方式加入 VLAN 1~4094",但同一章的"恢复接口上 VLAN 的缺省配置"一节,要求先 undo port trunk allow-pass vlan all、再 port trunk allow-pass vlan 1 才算恢复缺省;配置步骤里也始终要求显式执行 port trunk allow-pass vlan。两处对不上,恰恰说明一件事:别赌默认值。上联口一律显式写 allow-pass,写多少就是多少。

这两张表放一起,现场大部分 VLAN 故障都能对上号。 下面逐个说。


三、坑 1:不配 link-type,以为默认就是 access

这是最普遍的一个。很多人的配置习惯是直接在接口下敲 port default vlan 10,觉得"接入口嘛,默认就是 access"。

官方缺省值是 negotiation-desirable——一种自动协商模式。协商成 Access,行为跟 Access 一样;协商成 Trunk,就按 Trunk 走(官方对协商成 Trunk 的表述是:缺省 VLAN 为 VLAN 1、以 Tagged 方式加入 VLAN 1~4094,即允许所有 VLAN 通过)。

后果分两种:

  • 对端也是华为设备,可能协商成 Trunk。此时这个口能放通哪些 VLAN,就由协商结果和缺省值决定,不再由你在接入口写的那几行控制——这是一个隐形的二层越界;
  • 对端是打印机、老摄像头、非管理型交换机这类不参与协商的设备,协商不起来,接口行为就不受你控制。表现出来是"这个口时通时不通",或者"换个设备插上就好了"。

规矩:接入口三行写死,不依赖任何默认值。

interface GigabitEthernet1/0/1
 port link-type access
 port default vlan 10
 stp edged-port enable          # 第 5 篇讲为什么这条必须有

排查现网时,别用 display this,它只显示显式配置。要看真实生效的链路类型:

interface GigabitEthernet1/0/1
 display this include-default | include link-type

四、坑 2:把 PVID 和 allow-pass 当成一件事

第二个坑更隐蔽:PVID 和 allow-pass 是两个独立的东西,管的是两件不同的事。

  • PVID(缺省 VLAN):决定这个口收到的 untagged 帧归哪个 VLAN,也决定发出去时哪个 VLAN 的帧被剥掉 Tag;
  • allow-pass(允许通过的 VLAN 列表):决定哪些 VLAN 的帧能从这个口过。

Trunk 口的缺省值特别容易骗人:PVID 是 VLAN 1;而 allow-pass 到底放通了哪些,官方不同章节的表述还不一致(见上文那条说明),不同版本也可能不同。这两件事必须分开确认,不能"配了 trunk 就算完"。

现场最典型的翻车:上联口配了 port link-type trunk,allow-pass 也放通了业务 VLAN,唯独没改 PVID。结果管理 VLAN 99 的 untagged 报文一进这个口,全被贴上 VLAN 1 的标签——管理地址不通,业务却正常。这种"业务通、管理不通"的现象,十次有八次是 PVID 没改。

正确的上联口写法:

interface GigabitEthernet1/0/24
 port link-type trunk
 port trunk pvid vlan 99                       # 管理 VLAN,按规划改
 port trunk allow-pass vlan 10 20 30 99        # 只放通需要的,别图省事写 all
 undo port trunk allow-pass vlan 1             # 不需要 VLAN 1 就关掉

最后一行值得单独说。allow-pass 写 all 是最省事也最危险的写法:它让所有 VLAN 都从这个口过,包括你不希望扩散的 VLAN。规划的颗粒度,就体现在这一行上。

官方在"恢复接口上 VLAN 的缺省配置"里也写得很清楚:Trunk 口恢复缺省要执行 undo port trunk allow-pass vlan all,再 port trunk allow-pass vlan 1——这反过来证明 all 是一个显式配置状态,不是"什么都没配"。


五、坑 3:Access 口把带 Tag 的帧直接丢了

第三个坑是物理现象最迷惑人的:线是好的、口是 Up 的、灯是亮的,就是不通讯。

回到官方那张表:Access 口收到带 Tag 的帧,只有当帧里的 VID 等于本口 PVID 时才接收,不同就丢弃。注意是"丢弃",不是"剥离 Tag 后接收"。

什么时候会往接入口送带 Tag 的帧?

  • 接入口下挂了一台小交换机或 AP,它对上游是 Trunk,透传出来的帧带 Tag;
  • 会议室墙面信息点后面串了一台可网管设备,自己配了 VLAN;
  • 终端网卡开了 VLAN 功能(服务器多网段场景很常见)。

这三种情况,Access 口一律丢掉。表现就是"设备插上不亮业务",但接口计数一切正常。

怎么确认:看接口入方向的丢弃计数,或者直接抓包看进来的帧有没有 802.1Q 头。

display interface GigabitEthernet1/0/1
# 重点看 Input 方向的 discard / error 计数是否持续增长

怎么改:把这个口改成 Trunk 或 Hybrid,显式放通需要的 VLAN;如果确实是终端误配,就在接入口上把带 Tag 的帧挡在门外——官方给了一条现成命令:

interface GigabitEthernet1/0/1
 port discard tagged-packet       # 丢弃入方向带 VLAN Tag 的报文

这条命令在"防私接"场景特别好用:接入口只收 untagged 帧,员工自己拿台小交换机接进来也没法把 Tagged 帧灌进网络,比事后查环路省事得多。


六、坑 4:一个 VLAN 多个网段,只配了一个地址

第四个坑通常出现在改造项目里。老网段地址不够了,于是同一个 VLAN 里塞进第二个网段,二层通了,三层没通。

官方的答案在 VLAN FAQ 里写得很直接:在 VLANIF 接口下配置主从 IP 地址,可以实现同一 VLAN 多个网段用户间的互通。

interface Vlanif10
 ip address 10.1.1.1 255.255.255.0          # 主地址
 ip address 10.1.2.1 255.255.255.0 sub      # 从地址,注意 sub 关键字

漏了 sub,或者干脆只配主地址,新网段的终端就会呈现"能学到 ARP、ping 不通网关"的状态。

同一节里还有一句必须记住的官方原话:为了成功实现 VLAN 间互通,VLAN 内主机的缺省网关必须是对应 VLANIF 接口的 IP 地址。 这句话解释了一个高频疑问——"我 VLANIF 配了地址,为什么下面终端还是不通?"因为终端的网关填的是别的地址(比如填了核心的地址),报文压根没往这台设备送。

顺带把 Super-VLAN 的坑也补上:多个 Sub-VLAN 共用一个 VLANIF 网关时,Sub-VLAN 之间要互通,必须开 ARP 代理。

vlan 4
 aggregate-vlan
 access-vlan 2 to 3

interface Vlanif4
 arp-proxy inter-sub-vlan-proxy enable

不开这条,同网段的两个 Sub-VLAN 互相 ping 不通——这是 Super-VLAN 最经典的"配了却不生效"。


七、坑 5:语音、监控、无线照抄数据 VLAN

第五个坑不影响"通不通",影响"好不好用",而且往往在上线验收之后才爆出来。

语音:不是单独划个 VLAN 就完事。

官方对 Voice VLAN 的定义是:为语音流专门划分的 VLAN,交换机识别语音流后把它加入 Voice VLAN,并提升优先级,拥塞时优先保证语音。识别方式有两种:

方式判据适用
基于 MAC 地址源 MAC 匹配管理员配置的 OUIIP 电话上送 untagged 语音报文
基于 VLAN报文 VLAN ID 匹配 Voice VLANIP 电话能拿到 Voice VLAN 信息(如通过 LLDP)

第二种方式有个前提,官方写得很清楚:需要 IP Phone 能获取交换机上配置的 Voice VLAN 信息。IP 电话上线发 LLDP,交换机在字段里填 Voice VLAN 信息回给它,电话之后才带 Tag 发语音报文。

配置长这样:

vlan 100
interface GigabitEthernet1/0/5
 port link-type hybrid
 voice-vlan 100 enable
 voice-vlan mode auto            # 缺省是 manual,自动模式另有前提

注意两件事:Voice VLAN 功能缺省是去使能的;接口加入 Voice VLAN 的模式缺省是 manual。想自动,得显式配,而且官方注明自动模式生效还有附加条件(与 voice-vlan remark-mode 的配置相关)——所以现场我更建议先按 manual 配稳,别指望一条 auto 搞定。

监控:不只是 VLAN,还有组播和隔离。

摄像头流量有两个特征:一是组播(或大量广播),二是"同 VLAN 内谁都可能收到"。所以监控 VLAN 除了编号独立,还要做两件事:

  • 开 IGMP Snooping,让组播只发给有需求的端口,别在 VLAN 内泛洪;
  • 做端口隔离或 MUX VLAN,让摄像头之间互相看不见,避免一台被攻破横向扩散。

MUX VLAN 的模型官方定义得很清楚:Principal VLAN(主 VLAN)可以和所有从 VLAN 通信;Subordinate Group VLAN 组内可互通、组间不通;Subordinate Separate VLAN 完全隔离。

vlan 200
 mux-vlan
 subordinate separate 201        # 摄像头单独隔离
interface GigabitEthernet1/0/6
 port link-type access
 port default vlan 201
 port mux-vlan enable vlan 201

无线:管理 VLAN 和业务 VLAN 必须分开。

AP 上线要拿管理地址、要找 AC,业务终端要拿业务地址,这两个广播域混在一起,后果是:一次业务侧广播风暴直接把 AP 打掉线。标准做法是 AP 接入口用 Trunk——管理 VLAN 走 PVID(untagged 给 AP),业务 VLAN 带 Tag 透传;AC 侧用 Option 43 或 DNS 告诉 AP 控制器地址(第 6 篇会讲 DHCP 这一环怎么配)。

专网编号独立额外要配不配的后果
语音是Voice VLAN + 优先级拥塞时语音断续、杂音
监控是IGMP Snooping + 端口隔离/MUX VLAN组播泛洪、摄像头横向可达
无线管理/业务分离AP 口 Trunk + Option 43AP 掉线、业务与管理互相影响

八、一张可直接套用的编号段位表

规划最省事的办法不是"想清楚每个 VLAN 叫什么",而是先把号段切好,再往里填。下面这套按"用途分段、楼栋取模"来切,2000 人以内的园区够用:

号段用途分配规则示例
1保留不要用,系统缺省 VLAN——
10–19设备管理每类设备一个10 交换机、11 AC、12 防火墙
20–99办公业务部门 × 楼栋21 楼 1 办公、22 楼 2 办公
100–109语音每栋楼一个101 A 栋、102 B 栋
110–139监控/物联网按系统分111 视频、112 门禁
140–149访客每栋楼一个141 访客
150–159互联/专线每对设备一个151 核心-出口
200–299预留新业务——
300–399测试/临时用完回收——

三条硬规矩:

  1. VLAN 1 不用:官方缺省所有口都在 VLAN 1,你把它当业务 VLAN 用,等于让所有未配置的口默认进业务网;
  2. 号段留空隙:每段之间留 10 个号,扩容时不用重排;
  3. 编号能反推位置:看到 VLAN 22 就知道是 2 号楼办公,排障时少问一句"这是哪儿的"。

VLAN ID 的合法范围是 1–4094,0 和 4095 是协议保留值——这条在官方文档的 VLAN 简介里就写明了,规划时别越界。


九、5 种接口模板,直接抄

规划落到配置,其实只有 5 种口。把这 5 个模板固化下来,新人也不会配错:

# ① 终端接入口:Access + 边缘端口 + 防私接
interface GigabitEthernet1/0/1
 port link-type access
 port default vlan 21
 stp edged-port enable
 port discard tagged-packet

# ② 交换机上联口:Trunk + 显式 PVID + 收敛放通
interface GigabitEthernet1/0/24
 port link-type trunk
 port trunk pvid vlan 99
 port trunk allow-pass vlan 21 22 99
 undo port trunk allow-pass vlan 1

# ③ AP 接入口:Trunk,管理 VLAN 走 PVID
interface GigabitEthernet1/0/10
 port link-type trunk
 port trunk pvid vlan 10
 port trunk allow-pass vlan 10 21 22

# ④ 服务器接入口:Access 或 Trunk,按网卡是否打 Tag 定
interface GigabitEthernet1/0/20
 port link-type access
 port default vlan 30
 stp edged-port enable

# ⑤ 级联/堆叠口:Trunk 全放通,但只在对内互联时用
interface GigabitEthernet1/0/23
 port link-type trunk
 port trunk allow-pass vlan 1 to 4094

第 ⑤ 种要克制:"全放通"只应该出现在设备内部互联或堆叠口上,一旦出现在接入口或跨楼链路上,广播域就失控了。


十、上线前 8 条检查

  1. display vlan 看一遍:有没有业务口还挂在 VLAN 1 上;
  2. 每个接入口 display this include-default | include link-type:确认不是 negotiation-desirable;
  3. 每个 Trunk 口确认 PVID 改过,不是缺省的 1;
  4. 每个 Trunk 口的 allow-pass 不是 all,且包含管理 VLAN;
  5. 每个 VLAN 都有且只有一个 VLANIF,地址与网段一一对应;
  6. 一个 VLAN 多个网段时,确认配了 sub 从地址;
  7. 语音口确认 voice-vlan 已使能、模式明确;监控 VLAN 确认开了 IGMP Snooping 和隔离;
  8. AP 口确认管理 VLAN 与业务 VLAN 分离,且 DHCP 侧配了 Option 43。

十一、给你的行动清单

  1. 先把现网 VLAN 拉一张表:编号、用途、网段、网关设备、接口清单。没有这张表,后面所有规划都是猜。
  2. 按上面的段位表重新对齐编号,能不改就不改,只把"业务挂在 VLAN 1"和"号段交叉"这两类问题挑出来修。
  3. 把 5 种接口模板写成配置模板(或脚本),新设备上线直接套,不靠手感。
  4. 拿一台接入交换机做验证:接入口插一台带 Tag 的设备,看是不是被 port discard tagged-packet 挡住了——这一步能提前发现"Access 丢 Tag 帧"的隐患。
  5. 下一篇讲《STP/RSTP/MSTP/VBST 怎么选:收敛慢、边缘端口、四类保护一次讲清》——VLAN 规划对了,冗余链路一接就是环,接下来该让协议把环管住了。

💡 我是老李,HCIE-Datacom 认证、5 年华为生态政企/云网项目交付、干过华为原厂 ASP。
这个《园区网从零到精通》系列,是我把真实项目拆成"可跟着做"的教程,关键机制均对照华为官方文档,不堆概念。
👉 关注我,跟完这个系列,你能独立交付一个园区网;也能持续看 HCIE 考点与现场定界套路。
📌 下一篇预告:《STP/RSTP/MSTP/VBST 怎么选:收敛慢、边缘端口、四类保护一次讲清》
评论区说说你现在网络里 VLAN 是怎么编号的,我挑几套典型规划帮你看看有没有埋雷。


本文接口帧处理规则、缺省值、Voice VLAN 识别方式、Super-VLAN 与 MUX VLAN 命令引自《S12700, S12700E V200R025C00 产品文档》"以太网交换配置"中的 VLAN 配置、Voice VLAN 配置、Super-VLAN 配置、MUX VLAN 配置章节;不同型号与版本存在差异,落地请以现网设备版本文档为准。


标签:#园区网 #VLAN #网络工程师 #HCIE #华为 #网络规划 #从零到精通

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐