板块3 · VLAN、PVLAN 与端口隔离
板块3 · VLAN、PVLAN 与端口隔离
目标与定位:本板块吃透 VLAN 与 PVLAN 的配置体系,并补齐 VLAN 间路由、Hybrid、QinQ、MUX VLAN 等工程必需扩展。VLAN 在 ZCIA 大纲中占 10%(含 VLAN 路由),与路由原理、IPv6、BRAS 同为单科权重最高的技术点;PVLAN/端口隔离则是园区网、酒店、校园网的高频需求。学习路径严格遵循“原理 → 命令 → 配置实例 → 验证测试 → 故障排查 → 考点速记”,要求 ZCIA 会配会查,ZCIP 会设计与联调,ZCIE 能解释“为什么这样隔离、错在哪里、如何回退”。
全板块主线:
Tag/Untag/PVID是理解一切 VLAN 行为的地基;vlan enable / 端口成员 / PVID是配置三件套;跨设备靠 Trunk 的 Tag 对称;跨 VLAN 靠三层路由;同 VLAN 内的横向隔离靠 PVLAN/端口隔离;多租户与城域场景才引入 QinQ、MUX VLAN。
3_1 VLAN 原理与 Tag/Untag/PVID 模型
本节要解决什么问题:VLAN 的所有配置都建立在一个模型上:端口收到帧怎么归类、发出帧带不带标签。先把模型想通,命令才不会记混。
3_1_1 无 VLAN 与有 VLAN:为什么必须把广播域切开
传统二层网络是一个“大教室”:所有终端、打印机、摄像头、访客设备处于同一个广播域,ARP、DHCP、NetBIOS 等广播可以直达每一个端口。VLAN(Virtual Local Area Network,虚拟局域网)的本质,是在同一台物理交换机甚至跨交换机的二层域中,通过 802.1Q 标签划分出多个逻辑广播域。同一 VLAN 内可以二层互通;不同 VLAN 之间默认不能直接二层互通,必须经过三层转发,由此安全策略、故障域、运维边界才真正可控。
无 VLAN:扁平二层网络(一个广播域)
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ 财务 │ │ 研发 │ │ 访客 │ │ 摄像头│
└───┬──┘ └───┬──┘ └───┬──┘ └───┬──┘
└──────────┴──────────┴──────────┘
同一个广播域
风险:① 广播域过大,ARP/DHCP 风暴可波及其他业务
② 安全隔离无从谈起,同网段可直接互访
③ 故障域 = 物理连接域,难按部门/业务运维
有 VLAN:按业务切分广播域(VLAN 间默认隔离)
财务 VLAN10 ──┐
研发 VLAN20 ──┼── 三层转发 ──► 可控互通(ACL/策略/防火墙)
访客 VLAN30 ──┤
摄像头 VLAN40 ┘
每个 VLAN 一张独立二层转发表;跨 VLAN 必须经过网关
三层理解要点:VLAN 解决的是“二层隔离”,不是“三层安全”。一旦在两个 VLAN 的网关之间开启路由并放行,两端仍可三层互访。因此工程上“VLAN 隔离”必须与“VLAN 间路由策略”一起设计:不允许互通的业务,要么不配置网关/路由,要么在网关处叠加 ACL、VRF、防火墙策略。
3_1_2 Tag/Untag/PVID:中兴体系 A 的核心转发模型
802.1Q 在以太网帧源 MAC 之后插入 4 字节标签,结构如下:
以太网帧(802.1Q):
┌──────────┬──────────┬───────────────────────┬──────────┐
│ DMAC │ SMAC │ 802.1Q Tag (4Byte) │ 数据/CRC │
└──────────┴──────────┴───────────────────────┴──────────┘
Tag:
┌──────────┬─────────┬────────┬───────────────┐
│ TPID │ PRI │ CFI │ VID │
│ 0x8100 │ 3 bit │ 1 bit │ 12 bit │
└──────────┴─────────┴────────┴───────────────┘
TPID:标签协议标识,0x8100 表示 802.1Q
PRI :优先级(PCP),用于 QoS
CFI :规范格式指示位(通常 0)
VID :VLAN ID,范围 1~4094(0、4095 保留)
PVID、untag、tag 三者不是并列的三种“端口类型”,而是分别作用于入方向和出方向的三条规则:
【PVID】Port VLAN ID:端口的“缺省 VLAN ID”
- 仅作用于【入方向、收到 untagged 帧】这一场景
- 交换机把 untagged 帧打上 PVID 的 VID,进入对应 VLAN
- 缺省通常为 1,因此“只配 untag 成员、不改 PVID”会落入 VLAN1
【untag 成员】端口属于该 VLAN,且【出方向】对该 VLAN 的帧剥离 802.1Q 标签
- 面向 PC、打印机、摄像头、部分服务器等不识别 tag 的终端
- 一个端口对“某个 VLAN”只可能是 untag 或 tag 之一
【tag 成员】端口属于该 VLAN,且【出方向】对该 VLAN 的帧保留 802.1Q 标签
- 面向交换机之间、路由器、支持 VLAN 的服务器/AP 上行
- Trunk 的本质:多个 VLAN 均以 tag 方式从该端口发出
一句话记忆:PVID 决定“进来的裸帧算哪个 VLAN”;tag/untag 决定“出去的帧带不带标签”。这三条规则组合起来,就唯一确定了端口在某一 VLAN 中的行为。
3_1_3 入方向与出方向完整转发流程
入方向(Ingress):帧到达端口
① 帧是否带 802.1Q 标签?
├─ 带 tag:
│ a. 检查 VID 是否在合法范围、VLAN 是否 enable
│ b. 检查本端口是否是该 VLAN 的成员(在 tag/untag 成员表中)
│ ├─ 是成员 → 按 VID 进入对应 VLAN 的转发表
│ └─ 非成员 → 丢弃(VLAN 入口过滤)
└─ 不带 tag:
a. 以端口 PVID 作为该帧的 VID
b. 进入 PVID 对应 VLAN(前提是端口在 PVID 所属 VLAN 中,
且 PVID 所属 VLAN 已 enable)
出方向(Egress):在 VLAN 内完成 MAC 查找后,决定从某端口发出
① 查看该端口在【此 VLAN】中是 tag 还是 untag 成员
├─ untag → 剥离 802.1Q 标签后发出(native/access 语义)
└─ tag → 保留 VID/PRI,带标签发出(trunk 语义)
② 若端口根本不在该 VLAN 成员表中 → 不可能从该端口发出
两个最常见误判:
- “PVID=10 就代表端口一定能收发 VLAN10。”——错。PVID 只负责入方向 untagged 帧;出方向还要看该端口在 VLAN10 是 tag 还是 untag,且 VLAN10 必须 enable。
- “交换机之间随便配成 untag 也能通。”——可能通,但会把带标签的细分流量全部压进对端 PVID 所在 VLAN,造成 VLAN 串流、MAC 漂移、ACL 失效,是最危险的一类“看起来能用”。
3_1_4 中兴 vs 华为/H3C 概念映射:中兴没有 port link-type
华为/H3C 习惯先声明链路类型:port link-type access / trunk / hybrid,再配置 PVID 与允许 VLAN。中兴体系 A 不走这条路,而是通过“端口在哪些 VLAN 中 + 每个 VLAN 是 tag 还是 untag + 端口 PVID”三者组合自然形成等价语义。
| 中兴配置结果 | 等价概念 | 判定方法与典型配置 |
|---|---|---|
端口仅在一个 VLAN 中为 untag,PVID=该 VLAN |
Access | set vlan 10 add port 1 untag + set port 1 pvid 10 |
端口在多个 VLAN 中均为 tag |
Trunk | 对每个 VLAN 执行 set vlan <id> add port 24 tag |
同一端口对某些 VLAN tag、某些 untag |
Hybrid | 如 AP 口:vlan 50 untag + pvid 50,vlan 60 tag |
| Trunk 的 PVID 对应 VLAN 以 untag 发出 | Native VLAN | 依赖 PVID + 该 VLAN 的 untag 成员关系 |
中兴体系 A 的铁律:不存在
port link-type命令;“链路类型”是由成员关系推导出来的结果,而不是预先声明的属性。看到配置时要反过来问:这个端口在哪些 VLAN 里?每个 VLAN tag/untag 如何?PVID 是多少?只要这三项确认,行为就唯一确定。
3_1_5 802.1Q 标签视角下的典型报文路径
PC1(无tag) ──port1── SW1 ──port24(tag)── SW2 ──port1── PC2(无tag)
VLAN10
入 port1(SW1):PC1 发出无 tag 帧
→ PVID=10 → 打上 VID=10 进入 SW1 的 VLAN10 转发表
在 SW1 内部:按 DMAC + VLAN10 的 FDB 查表
出 port24(SW1):port24 在 VLAN10 为 tag → 带 802.1Q(VID=10) 发出
入 port24(SW2):带 tag VID=10 → 校验 port24 是否为 VLAN10 成员
→ 是成员 → 按 VID=10 查 SW2 的 FDB
出 port1(SW2):port1 在 VLAN10 为 untag → 剥标签发给 PC2
3_1_6 【案例故事】① 漏配 PVID 的“半通”
那次是给一栋办公楼接入交换机开 VLAN10 办公网。前一天晚上割接完,第二天早上投诉电话就来了:有的工位能上网、有的只能访问内网部分服务器,跨网段时通时不通。我第一反应是“是不是路由问题”,但很快发现同一台接入交换机下、同属 VLAN10 的两台 PC,ping 网关的结果都不一样。
我先 show vlan 10,看到 port 5 确实在 VLAN10 的 untag 成员里,配置里也写了:
set vlan 10 add port 5 untag
看起来没毛病。再 show port 5,PVID 赫然是 1。问题立刻清楚了:端口收到 PC 的无标签帧后,并没有进入 VLAN10,而是被打了 PVID=1;而出口方向因为端口是 VLAN10 的 untag 成员,VLAN10 的流量又能从它发出去——于是形成“部分入方向错、出方向看似正常”的半通。PC 能收到网关回包(出方向剥标签),但 ARP 请求或上行流量的入方向分类不稳定,表现为时通时断、部分目标可达。
补上一条就恢复:
set port 5 pvid 10
复盘:untag 成员关系只解决“能不能从这个口发 VLAN10 的帧”,PVID 才解决“PC 的裸帧算不算 VLAN10”。此后我们把开局模板写成成对命令,add port X untag 之后必须紧跟 set port X pvid <同一 VLAN>,并把“PVID == 该端口唯一 untag VLAN”列为验收检查项。这个坑后来在 ZCIA 模拟考里救了很多人:看到“同 VLAN 时通时断”,先查 PVID。
3_2 VLAN 配置命令全解(含 FID、forbid/permit、VLAN 命名)
本节要解决什么问题:模型清楚了,接下来是命令。本节把 VLAN 相关命令逐条拆开,并点明 FID、forbid/permit 这类容易被忽略的细节。
3_2_1 命令全表(16 条,务必逐条默写)
以下为体系 A 的标准配置风格。命令对象分为 port 与 trunk:普通以太网口用 port,聚合口/Trunk 口(依型号称为 trunk 或 smartgroup)用 trunk,具体关键字以设备 ? 帮助为准。
| # | 功能 | 命令 |
|---|---|---|
| 1 | 使能/关闭 VLAN | set vlan [vlanlist] {enable|disable} |
| 2 | VLAN 中添加端口(Tag/Untag) | set vlan [vlanlist] add port [portlist] [tag|untag] |
| 3 | VLAN 中删除端口 | set vlan [vlanlist] delete port [portlist] |
| 4 | VLAN 中添加 Trunk | set vlan [vlanlist] add trunk [trunklist] [tag|untag] |
| 5 | VLAN 中删除 Trunk | set vlan [vlanlist] delete trunk [trunklist] |
| 6 | 设置端口 PVID | set port [portlist] pvid [1-4094] |
| 7 | 设置 Trunk PVID | set trunk [trunklist] pvid [1-4094] |
| 8 | 设置 VLAN 优先级 | set vlan [vlanlist] priority {off|on [0-7]} |
| 9 | 配置 VLAN 的 FID | set vlan [vlanlist] fid [1-256] |
| 10 | 禁止端口学习该 VLAN | set vlan [vlanlist] forbid port [portlist] |
| 11 | 允许端口学习该 VLAN | set vlan [vlanlist] permit port [portlist] |
| 12 | 禁止 Trunk 学习该 VLAN | set vlan [vlanlist] forbid trunk [trunklist] |
| 13 | 允许 Trunk 学习该 VLAN | set vlan [vlanlist] permit trunk [trunklist] |
| 14 | 创建 VLAN 描述名称 | create vlan [1-4094] name [name] |
| 15 | 清除 VLAN 名称 | clear vlan [vlanlist] name |
| 16 | 显示 VLAN 信息 | show vlan [[vlanlist]] |
配置逻辑链:set vlan <id> enable(VLAN 存在且生效) → add port/trunk ... tag/untag(确定成员及出方向行为) → set port/trunk pvid(确定入方向裸帧归属) → create vlan <id> name(可维护性) → show vlan(验证)。任何一环缺失都可能导致“配置在、业务不通”。
3_2_2 FID:Filtering Database ID 与共享转发表
FID(Filtering Database ID)是 VLAN 转发数据库实例的编号。默认情况下,FID = VID,即每个 VLAN 有自己独立的 MAC 转发表(FDB);当多个 VLAN 被显式配置为同一 FID 时,它们共享同一张 MAC 地址表。
缺省(FID = VID,独立 MAC 表)
VLAN 10 ── FID 10 ──► MAC 表 A
VLAN 20 ── FID 20 ──► MAC 表 B
VLAN 30 ── FID 30 ──► MAC 表 C
共享 FID(多个 VLAN 共享一张 MAC 表)
VLAN 10 ─┐
VLAN 20 ─┼── FID 5 ──► 同一张 MAC 表
VLAN 30 ─┘
效果:这些 VLAN 内学习到的 MAC 表项互相可见
共享 FID 的典型场景:某些组播/共享介质、特殊桥接或历史迁移业务,要求跨 VLAN 共享 MAC 转发表条目。注意,共享 FID 不等于 VLAN 二层互通:VLAN 隔离与 FDB 实例是不同层面的概念,具体转发行为仍受 VLAN 成员关系、三层路由、ACL 等约束;ZCIA 层级只需掌握“FID 是什么、何时共享”,生产网修改 FID 必须做充分测试。
【踩坑】FID 与静态 MAC 绑定:改了 FID 之后,静态 MAC 绑定(set fdb add ... fid <n>)必须按实际 FID 配置,否则绑不上或命中错误转发表。查看时也应以 FID 维度核对,不能只看 VID。
3_2_3 forbid/permit:VLAN 粒度的 MAC 学习控制
set vlan 10 forbid port 5 ! 禁止 port 5 学习 VLAN10 的 MAC
set vlan 10 permit port 5 ! 恢复允许 port 5 学习 VLAN10 的 MAC
forbid 的用途是:在 VLAN 成员关系不变的前提下,精准裁剪某个端口对该 VLAN 的 MAC 学习能力。典型收益是限制未知单播/广播在特定边缘口的扩散、抑制不必要的 FDB 表项。配合 GVRP 时,被 forbid 的端口无法动态学习该 VLAN。生产使用要注意两点:一是 forbid 不替代 VLAN 成员删除,端口仍可能因其他机制参与转发;二是过度禁用学习可能导致单播泛洪,应结合固定 MAC、静态 FDB 或端口安全一起评估。
3_2_4 VLAN 命名与优先级:可维护性不是“附加项”
create vlan 10 name Office
create vlan 40 name Camera
create vlan 50 name AP-Mgmt
create vlan 60 name STA-User
create vlan 100 name MGMT
命名本身不改变转发行为,但决定半年后割接时运维人员能否在 show vlan 里 3 秒内定位业务。命名建议遵循“业务-位置-角色”规则,如 Office-3F、Camera-B1、AP-Mgmt、Guest-WiFi。清除命名用 clear vlan [vlanlist] name,改名必须先 clear 再 create,或直接覆盖依版本而定,操作前用 ? 确认。
VLAN 优先级 set vlan <list> priority on <0-7> 用于在 802.1Q 标签中写入 PCP(Priority Code Point),配合 QoS 信任与队列策略使用;若设 off 则按既有映射处理。此命令仅在帧带标签或需要重写优先级时体现价值,切勿把它当成“带宽保证”。
3_3 VLAN 工程配置实例(单台接入 / 跨设备互通 / VLAN 间路由)
本节要解决什么问题:真实开局没人一条一条敲命令,都是按端口角色批量下发。本节三个实例覆盖现网九成场景,可直接改成开局模板。
3_3_1 实例一:接入交换机标准 VLAN 部署
设计意图:一台接入交换机承载办公、摄像头、AP 管理与无线用户四类业务。PC/打印机、摄像头属于“不认 tag”的终端,端口做成 Access;AP 需要同时携带管理流量与无线用户流量,做成 Hybrid;上联核心口承载全部业务 VLAN,全部以 tag 透传。
拓扑与端口角色:
PC/打印机 ── port 1-12 (VLAN10 Office, untag, pvid 10)
摄像头 ── port 13-20 (VLAN40 Camera, untag, pvid 40)
AP ── port 21-22 (VLAN50 AP-Mgmt untag + pvid 50,
VLAN60 用户 tag)
上联核心 ── port 23-24 (VLAN10/40/50/60/100 全部 tag)
完整脚本
zte>enable
zte#configure terminal
! ---------- 创建并命名 VLAN(必须先 enable 再使用) ----------
zte(cfg)#set vlan 10 enable
zte(cfg)#set vlan 40 enable
zte(cfg)#set vlan 50 enable
zte(cfg)#set vlan 60 enable
zte(cfg)#set vlan 100 enable
zte(cfg)#create vlan 10 name Office
zte(cfg)#create vlan 40 name Camera
zte(cfg)#create vlan 50 name AP-Mgmt
zte(cfg)#create vlan 60 name STA-User
zte(cfg)#create vlan 100 name MGMT
! ---------- 接入端口(Access 型:untag + PVID) ----------
zte(cfg)#set vlan 10 add port 1-12 untag
zte(cfg)#set port 1-12 pvid 10
zte(cfg)#set vlan 40 add port 13-20 untag
zte(cfg)#set port 13-20 pvid 40
! ---------- AP 端口(Hybrid 型) ----------
! 管理 VLAN50:交换机与 AP 间 untag,PVID=50,使 AP 获取管理地址
! 用户 VLAN60:AP 隧道的业务流量带 tag 上行
zte(cfg)#set vlan 50 add port 21-22 untag
zte(cfg)#set port 21-22 pvid 50
zte(cfg)#set vlan 60 add port 21-22 tag
! ---------- 上联(Trunk 型:全部 tag) ----------
zte(cfg)#set vlan 10 add port 23-24 tag
zte(cfg)#set vlan 40 add port 23-24 tag
zte(cfg)#set vlan 50 add port 23-24 tag
zte(cfg)#set vlan 60 add port 23-24 tag
zte(cfg)#set vlan 100 add port 23-24 tag
! ---------- 收尾:不用端口关闭、保存 ----------
zte(cfg)#set port 1-24 enable
zte(cfg)#exit
zte#save
为什么这么配:
port 1-12只看到一个 untag VLAN,且 PVID=10:PC 的裸帧进入 VLAN10,回包剥标签发出,符合终端行为。- AP 口同时有
vlan 50 untag与vlan 60 tag:这正是 Hybrid 的定义,不能用“access 或 trunk 二选一”的思维理解。 - 上联口对全部业务 VLAN 均为 tag:保证对端核心能靠 VID 区分业务,也避免把流量误送进核心的 PVID VLAN。
set vlan <id> enable排在最前:这是 VLAN 生效前提,漏写会在show vlan里直接暴露为 disable。
配错的典型现象:
| 错误 | 直接现象 | 根因定位 |
|---|---|---|
只 add port untag、忘 set pvid |
终端时通时断、部分 ARP 异常 | 裸帧被打 PVID=1,进入错误 VLAN |
| AP 口把 50 也配成 tag | AP 获取不到管理地址,全部离线 | AP 发出的管理报文带 tag,或交换机剥/打标签逻辑错 |
| 上联口漏加某个 VLAN | 该业务跨设备全不通 | 对端无法收到对应 VID 的帧 |
| 上联口配成 untag | 跨设备部分通、MAC 漂移、VLAN 串流 | 多 VLAN 帧被压进单一 PVID VLAN |
忘 set vlan enable |
配置存在但业务不工作 | VLAN 处于 disable 状态 |
3_3_2 实例二:两台交换机跨设备 VLAN 互通(经典考题)
设计意图:SW-A 与 SW-B 通过 port 24 互联,各自 port1 属于 VLAN10、port2 属于 VLAN20。互联口必须把 VLAN10、VLAN20 都以 tag 放行;两端配置对称。同 VLAN 跨设备可二层互通;不同 VLAN 在未配置三层路由时必须隔离。
跨设备互通拓扑:
┌─────────────┐ port 24 (tag 10,20) ┌─────────────┐
│ SW-A │◄───────────────────────►│ SW-B │
│ p1: VLAN10 │ │ p1: VLAN10 │
│ p2: VLAN20 │ │ p2: VLAN20 │
└─────────────┘ └─────────────┘
两端:接入口均为 untag + PVID;互联口均为 tag
SW-A / SW-B 配置(对称)
! ===== SW-A =====
zte(cfg)#set vlan 10 enable
zte(cfg)#set vlan 20 enable
zte(cfg)#set vlan 10 add port 1 untag
zte(cfg)#set vlan 20 add port 2 untag
zte(cfg)#set port 1 pvid 10
zte(cfg)#set port 2 pvid 20
zte(cfg)#set vlan 10 add port 24 tag
zte(cfg)#set vlan 20 add port 24 tag
! ===== SW-B(与 SW-A 对称,端口 1/2 归属一致) =====
zte(cfg)#set vlan 10 enable
zte(cfg)#set vlan 20 enable
zte(cfg)#set vlan 10 add port 1 untag
zte(cfg)#set vlan 20 add port 2 untag
zte(cfg)#set port 1 pvid 10
zte(cfg)#set port 2 pvid 20
zte(cfg)#set vlan 10 add port 24 tag
zte(cfg)#set vlan 20 add port 24 tag
为什么这么配:接入口 untag + PVID 保证 PC 发出的裸帧正确归类;互联口 tag 保证 VLAN10/20 的标签在链路上保留,对端依 VID 分别进入自己的 VLAN10/20。任何一端把 port 24 的 VLAN10 配成 untag,都会让对端收到的帧落入对端 port24 的 PVID,VLAN20 与 VLAN10 的边界随即失效。
测试矩阵(必须逐条验证,T1~T4 完整)
| # | 测试项(在两台 PC 上实测的方法) | 预期结果 | 不符时的排查点 |
|---|---|---|---|
| T1 | SW-A p1 的 PC ping SW-B p1 的 PC:两台 PC 设同网段地址(如 10.0.10.2/24 ↔ 10.0.10.3/24),互 ping | 通 | show vlan 10:两端 p1(untag)+p24(tag);两端 p1 PVID=10;两端互联口物理 up |
| T2 | SW-A p2 的 PC ping SW-B p2 的 PC:两台 PC 设另一网段同段地址(如 10.0.20.2/24 ↔ 10.0.20.3/24),互 ping | 通 | 排查项与 T1 相同但对应 VLAN20:show vlan 20 两端 p2(untag)+p24(tag) 齐全、两端 p2 PVID=20;另需确认测试机未同时接入 VLAN10,避免地址段混用造成「能通」的假象 |
| T3 | SW-A p1 ping SW-A p2:同交换机不同 VLAN | 不通 | 验证 VLAN 隔离生效;若通,说明 PVID 错配/被划入同 VLAN/存在 trunk 串入 |
| T4 | SW-A p1 ping SW-B p2:不同 VLAN | 不通 | 跨 VLAN 未配三层,应不通;若通,检查是否误配 trunk、VLAN 串流或已有路由/ACL |
实测操作要点:每台 PC 先 ipconfig/ifconfig 确认 IP 与掩码;ping 前先用 arp -a 看能否学到对端 MAC(同 VLAN 二层场景);不通时先在本地交换机 show fdb vlan <id> 看源/目的 MAC 是否在正确 VLAN 学到。T3/T4 不是“顺带的负面测试”,而是验收 VLAN 隔离是否真正成立的证据——ZCIE 答辩要能解释“为什么不通、哪一层丢弃”。
3_3_3 实例三:VLAN 间路由(三层转发)
VLAN 间路由的核心是:为每一个需要互通的 VLAN 配置一个三层逻辑接口(网关),并使交换机开启三层转发。中兴存在两套 CLI 风格,必须按设备体系选择。
方式一:盒式交换机用 ipport 绑定 VLAN(体系 A)
! 前提:VLAN 10/20 已创建并包含相应端口,且各自 VLAN 内有 up 端口
zte(cfg)#set vlan 30 enable ! 上联/互联 VLAN
zte(cfg)#config router
! 用户网段网关:VLAN10
zte(cfg-router)#set ipport 0 ipaddress 192.168.10.1/24
zte(cfg-router)#set ipport 0 vlan 10
zte(cfg-router)#set ipport 0 enable
! 用户网段网关:VLAN20
zte(cfg-router)#set ipport 1 ipaddress 192.168.20.1/24
zte(cfg-router)#set ipport 1 vlan 20
zte(cfg-router)#set ipport 1 enable
! 上联出口:默认路由
zte(cfg-router)#iproute 0.0.0.0 0.0.0.0 10.0.30.2
zte(cfg-router)#exit
zte#save
方式二:机架式/新版(体系 B)SVI 风格
ZXR10(config)#interface vlan 10
ZXR10(config-if)#ip address 192.168.10.1 255.255.255.0
ZXR10(config-if)#description Gateway-for-VLAN10
ZXR10(config)#interface vlan 20
ZXR10(config-if)#ip address 192.168.20.1 255.255.255.0
ZXR10(config)#ip routing ! 部分型号需显式开启三层转发
为什么这么配:ipport/SVI 把二层 VLAN 映射成三层网关,交换机据此生成直连路由并在 VLAN 间做路由查找。终端把默认网关指向对应 ipport/SVI 地址,跨 VLAN 的流量才有下一跳。方式一强调“ipport 编号—VLAN—IP—enable”四元组;方式二强调“interface vlan + ip address + 全局 ip routing”。
【踩坑】VLAN 间路由不通的四查
① ipport/SVI 是否 enable?
→ 体系A:set ipport <id> enable;体系B:interface vlan 必须 up
② ipport 是否绑定到正确的 VLAN?
→ 体系A:set ipport <id> vlan <id>;体系B:interface vlan 编号对应
③ 终端网关是否指向该 ipport/SVI 地址?子网掩码是否正确?
→ PC 默认网关、DHCP Option 3 必须一致
④ show iproute 是否有两条直连路由?
→ 直连路由生成要求:该 VLAN 内至少有一个端口处于 up 状态
直连路由的隐含条件:VLAN 内有 up 端口(接入终端、互联口均可)时,对应直连路由才会进入路由表。若所有成员端口均 down,即使 ipport/SVI 配置完整,
show iproute也看不到该直连路由,表现为“配置都在但就是不通”。排查时优先show vlan <id>、show port确认至少一个端口 up。
3_4 VLAN 规划方法论
本节要解决什么问题:会配不等于会规划。本节给出 VLAN 编号与透传范围的规划方法,这是写方案时的加分项。
3_4_1 VLAN 编号规划:写方案时的加分项
VLAN 编号本身不决定业务,但有规律的分段决定半年后能否快速定位。建议遵循“段位语义化、保留默认、管理/业务/安全分区”的原则,具体数值可依园区规模调整。
| VLAN 段 | 用途 | 建议 |
|---|---|---|
| 1 | 默认 VLAN | 不使用(安全最佳实践,避免 VLAN1 攻击与意外泛洪) |
| 2-99 | 网络设备管理/互联 | 管理 VLAN、互联 VLAN、Loopback 对应段 |
| 100-199 | 办公有线 | 按楼栋/部门细分 |
| 200-299 | 无线(AP 管理 / 用户) | AP 管理段与用户段分离 |
| 300-399 | 安防/摄像头 | 单独隔离,禁止互访 |
| 400-499 | 语音 | 配合 QoS 高优先级 |
| 500-599 | 访客/物联网 | 严格 ACL,只能出公网 |
| 1000-1999 | 专线/特殊业务 | 按需 |
| 2000+ | 组播 VLAN / 保留 | 与 IPTV 组播 VLAN 规划一致 |
规划原则:
- 管理 VLAN 与业务 VLAN 分离,网管、SSH、SNMP 走独立管理域;接入终端不应能直接访问设备管理地址。
- AP 管理 VLAN 与 STA(无线用户)VLAN 分离:AP 拿管理地址、隧道终点或本地转发用户流量走不同 VLAN。
- 摄像头、IoT、访客等“低信任”业务单独分段,默认禁止互访,仅在 NVR/平台侧按白名单放行。
- 语音 VLAN 单独规划,便于在接入层配置 Voice VLAN 与 QoS 优先级映射。
- 保留一段“临时/测试 VLAN”用于割接验证,避免临时占用生产编号。
3_4_2 VLAN 透传范围规划表(交付物模板)
透传范围回答的问题是:一个 VLAN 需要出现在哪些交换机、哪些上联口上。它是割接与验收的共同依据,任何“某 VLAN 忘了透传到某台接入交换机”的遗漏,都会表现为该业务局部不通。
| VLAN ID | 名称 | 网段 | 网关 | 需要透传到 | 是否允许互访 |
|---|---|---|---|---|---|
| 100 | MGMT | 10.0.100.0/24 | 10.0.100.1 | 全部接入/汇聚 | 仅网管服务器 |
| 10 | Office-3F | 192.168.10.0/24 | 192.168.10.1 | 3F 接入、核心 | 允许访问服务器区 |
| 40 | Camera | 192.168.40.0/24 | 192.168.40.1 | 3F 接入、核心 | 仅 NVR 可访问 |
| 60 | STA-User | 192.168.60.0/24 | 192.168.60.1 | AP 所在接入、核心 | 仅出公网 |
工程纪律:规划表要与每台设备的
show vlan逐项对账。现场最贵的一次事故往往来自“某 VLAN 忘了透传到某个接入交换机”:配置脚本在核心上全了,接入上却漏一条add port tag,结果整栋楼该业务不通,而排障人员反复在核心上查路由。对策是“以表为基准、以设备为维度逐口核对”,而不是凭记忆确认。
3_5 PVLAN 与端口隔离
本节要解决什么问题:当需求是「彼此不能互访、但都要能上外网」时,VLAN 数量会爆炸,此时就该用 PVLAN 与端口隔离。
3_5_1 PVLAN 是什么:一台交换机内的“共享口—隔离口”模型
PVLAN(Private VLAN,私有 VLAN)把端口分成两类:隔离端口(Isolated Port)与共享端口(Promiscuous Port)。隔离端口之间二层完全隔离,不能互访;所有隔离端口都可以与共享端口通信。共享端口通常接上行网关、服务器、NVR 等“需要被大家访问的公共节点”。
PVLAN 隔离模型:
┌──────────────┐
│ 共享端口 │ ← 上行/网关/服务器
│ Promiscuous │ 所有隔离端口都能与它通信
└──────┬───────┘
┌───────────────┼───────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ 隔离端口1 │ │ 隔离端口2 │ │ 隔离端口3 │
│ Isolated │ │ Isolated │ │ Isolated │
└───────────┘ └───────────┘ └───────────┘
✗ 相互之间不能通信 ✗(二层完全隔离)
生效条件(配置约束):必须同时配置共享端口和隔离端口,PVLAN 才生效。设备限制:一台交换机仅支持一个 PVLAN。这意味着 PVLAN 是“单台接入交换机内部的隔离工具”,不是跨设备大规模隔离的完整方案。
3_5_2 PVLAN 命令全表
| # | 功能 | 命令 |
|---|---|---|
| 1 | 添加/删除隔离端口 | set pvlan session [id] {add|delete} isolated-port [portlist] |
| 2 | 添加/删除共享端口 | set pvlan session [id] {add|delete} promiscuous port [portname] |
| 3 | 添加/删除共享 Trunk | set pvlan session [id] {add|delete} promiscuous trunk [trunkid] |
| 4 | 显示 PVLAN 配置 | show pvlan |
3_5_3 配置实例:酒店客房/宿舍网端口隔离
场景:port 1-20 接客房,要求互相不能访问(防私接路由、防扫描攻击、防勒索横向扩散),但都能通过 port 24 上联访问网关与互联网。port 24 是共享口,port 1-20 是隔离口。
zte(cfg)#set pvlan session 1 add isolated-port 1-20
zte(cfg)#set pvlan session 1 add promiscuous port 24
zte#show pvlan
为什么这么配:酒店/宿舍的典型诉求是“横向零信任、纵向集中出口”。若给每个客房单独划分 VLAN,配置量和三层接口数量会爆炸;PVLAN 让 20 个客房仍在同一 VLAN 内,却实现二层隔离,节省 VLAN/网关资源。port 24 作为共享口连接网关/NAT,所有客房都能访问出口,而客房之间不能互访。
验证矩阵
| 测试(在两台 PC 上实测) | 预期结果 | 不符时的排查点 |
|---|---|---|
| 客房 A(port1)ping 客房 B(port2) | 不通 | 确认两者都是 isolated-port;检查 session 是否同时配了 promiscuous |
| 客房 A ping 网关(port24 上联) | 通 | 上联物理/VLAN 正常;PVLAN session 配置正确 |
| 客房 A 抓包,看是否收到客房 B 的广播/ARP | 收不到 | FDB/隔离生效;若收到,检查是否误加入同一隔离组外 |
| 客房 A 访问公网 | 通(取决于上层 NAT/ACL) | PVLAN 只负责二层隔离,出口策略另查网关 |
【踩坑】必须同时配共享口与隔离口:只配 isolated-port 而漏配 promiscuous port,PVLAN 不生效;只配共享口没有隔离口,同样无实际隔离效果。show pvlan 必须同时看到两类端口才算完整。
3_5_4 PVLAN 与其他隔离技术的选型
| 技术 | 隔离粒度 | 跨设备 | 适用场景 | 限制 |
|---|---|---|---|---|
| PVLAN | 端口级 | 否(单台) | 单台接入交换机下的客房/宿舍 | 一台设备仅一个 PVLAN |
| 端口隔离组 | 端口级 | 部分型号支持 | 简单隔离 | 依型号 |
| 不同 VLAN + ACL | VLAN 级 | 是 | 整网规模隔离,最通用 | 需要更多 VLAN 与三层策略 |
| MUX VLAN | VLAN 级(主/从) | 是 | 大规模同网段隔离 | 依赖设备支持 |
| Private VLAN + 上行隔离 | 混合 | 视型号 | 园区/酒店集团网 | 复杂度高 |
选型建议:单台设备内隔离用 PVLAN 最省事;跨设备大规模隔离,老实做“每户一个 VLAN + 三层 ACL”,可运维性更好。ZCIE 答辩时应能说明:PVLAN 省 VLAN/网关,但受“单 PVLAN、单设备”限制;VLAN+ACL 配置量大,却天然支持跨设备、可按业务做精细策略。没有“最好”,只有与规模和管理能力匹配的方案。
3_6 Hybrid、QinQ 与 MUX VLAN 扩展
本节要解决什么问题:AP 口、运营商 QinQ、MUX VLAN 是 VLAN 的三个高频扩展场景,理解了它们才算真正把 VLAN 用活。
3_6_1 Hybrid 口(AP 口)完整推演:管理 VLAN untag + 用户 VLAN tag
Hybrid 不是中兴体系 A 的一个命令,而是“同一端口对不同 VLAN 分别 tag/untag”的结果。最典型的是 AP 接入:交换机需要给 AP 下发管理地址(走管理 VLAN),又要承载无线用户的业务(走用户 VLAN),而 AP 与交换机之间的管理通道通常不希望带标签、用户业务则由 AP 以 tag 方式上报。
Hybrid AP 口(port 21)推演:
AP ── port 21 ── SW
管理:VLAN50 AP-Mgmt
用户:VLAN60 STA-User
port 21 在 VLAN50:untag + PVID 50
→ AP 发出的无 tag 管理帧 → 入方向打 PVID=50 → 进 VLAN50
→ SW 发往 AP 的 VLAN50 帧 → 出方向剥标签 → AP 正常接收
port 21 在 VLAN60:tag
→ AP 上报的带 VID=60 的用户帧 → 入方向按 tag 进入 VLAN60
→ SW 发往 AP 的 VLAN60 帧 → 出方向保留 VID=60 → AP 识别
配置:
set vlan 50 add port 21 untag
set port 21 pvid 50
set vlan 60 add port 21 tag
为什么管理 VLAN 用 untag、用户 VLAN 用 tag:
- 管理通道面向 AP 本身,AP 通常按“access/untag + native VLAN”逻辑获取管理地址,untag 最兼容、最稳定。
- 用户业务来自多个 SSID/多租户时,需要用 VID 区分不同用户 VLAN,因此以 tag 上行,让接入交换机能按 VLAN60/70/80 继续分流、做 ACL/QoS。
3_6_2 【案例故事】② AP 口 Hybrid 配反
那是个无线扩容的晚上,新增了 40 台 AP。上线脚本是批量生成的,结果凌晨一点全部 AP 在控制器上显示“离线”,比没上线还糟糕——因为旧 AP 也跟着掉线了。我先怀疑 POE 供电和控制器,但 show port 21-22 显示端口都是 up、协商正常、收发光也没有异常。
再看 VLAN:show vlan 50 里 port 21-22 赫然是 tag,而 show vlan 60 是 untag。正好配反了。AP 本身发出的管理报文按 native 处理,交换机却指望它带 VID=50 标签才放行进 VLAN50;AP 拿不到管理地址,自然无法与控制器建立隧道——而用户 VLAN60 的帧被剥了标签,又被打进 PVID,业务逻辑也一起乱掉。表现就是“端口 up、链路协议正常、AP 就是不上线”,非常像控制器故障,实则二层标签语义错了。
修正为“管理 VLAN50 untag + PVID 50,用户 VLAN60 tag”后,AP 在几分钟内全部回连:
set vlan 50 add port 21-22 untag
set port 21-22 pvid 50
set vlan 60 add port 21-22 tag
复盘:此后 AP 模板固定为三段不可拆:vlan <mgmt> add port X untag / set port X pvid <mgmt> / vlan <user> add port X tag,并在批量脚本里用变量校验“管理 VLAN 必须同时是 untag 且等于 PVID”。凡是 Hybrid 口,验收时一定 show vlan <mgmt> 与 show vlan <user> 各看一行,确认 tag/untag 方向与设计一致。
3_6_3 QinQ:运营商/园区多租户的二层隧道
QinQ(802.1ad/IEEE 802.1Q tunneling)在报文外层再封装一个 802.1Q 标签,形成“客户 VLAN(C-VLAN)+ 运营商 VLAN(S-VLAN)”的双层标签。核心价值是:运营商/集团核心只感知外层 S-VLAN,内层 C-VLAN 对传输网络透明,从而突破单设备 4094 个 VLAN 的规划压力,实现多租户二层隔离。
QinQ 帧结构:
┌────┬────┬───────────────────────┬────┬────┬─────────┬──────┐
│DMAC│SMAC│ 外层 S-Tag (S-VLAN) │DMAC│SMAC│ C-Tag │ Data │
│ │ │ TPID=0x8100/0x88A8 │ │ │VLAN10-20│ │
└────┴────┴───────────────────────┴────┴────┴─────────┴──────┘
外层:S-VLAN,运营商/骨干传输使用
内层:C-VLAN,租户/客户内部 VLAN
对称封装/解封装模型:
CE(SW-A) ── port(access C-VLAN) ── PE(SW-B) ── port(QinQ/S-VLAN) ── 骨干 ── PE ── CE
用户帧带 C-Tag(VLAN10) PE 加上 S-Tag(S-VLAN 100)
骨干只按 S-VLAN 100 转发 PE 剥掉 S-Tag,还原 C-Tag
工程模型要点(概念层面,具体命令关键字依型号/版本不同,现场务必用 ? 确认):
- 接入侧端口识别客户 C-VLAN,并按规则决定叠加哪个 S-VLAN;
- 骨干侧端口以 S-VLAN 作为 tag 透传,S-VLAN 通常对应一条二层服务/一个租户/一条专线;
- 双层标签使内层 VLAN 空间可在不同租户间复用,骨干不必为每个客户 VLAN 单独规划全局 ID;
- QinQ 与 VLAN 透传范围规划表要联动:S-VLAN 的透传范围 = 该业务的骨干路径,C-VLAN 只在接入侧有意义。
适用与限制:QinQ 适合多租户、城域以太网、专线汇聚、集团多园区二层互联;它解决的是“二层标识扩展与隔离”,不解决三层路由、ARP 代理或跨子网互访。部署前要确认设备对 0x8100 / 0x88A8 TPID、双层标签深度、ACL/QoS 匹配能力的支持,并统一两端封装方式。
3_6_4 MUX VLAN:大规模同网段隔离的 VLAN 级方案
MUX VLAN(Multiplex VLAN)把 VLAN 分为主 VLAN(Principal VLAN)与从 VLAN(Subordinate VLAN):从 VLAN 内的端口彼此隔离,但都能与主 VLAN 通信。它常用于“大量终端同网段、需要共同访问一个网关/服务器、彼此又不应互访”的场景,是 PVLAN 在“VLAN 级、可跨设备”维度的扩展。
MUX VLAN 模型(概念示意):
Principal VLAN(主,如 VLAN100)
├─ 网关、服务器、公共资源
Subordinate VLAN(从,如 VLAN200/300)
├─ Group1(VLAN200):组内隔离,可与 Principal 通信
└─ Group2(VLAN300):组内隔离,可与 Principal 通信
从 VLAN200 端口 A ──✗── 从 VLAN200 端口 B (组内隔离)
从 VLAN200 端口 A ────── Principal 网关 (允许)
从 VLAN300 端口 C ────── Principal 网关 (允许)
与 PVLAN 的对比判断:
- PVLAN 是“单交换机、端口级”的隔离,配置简单、资源省;
- MUX VLAN 是“VLAN 级、可跨设备”的隔离模型,适合更大规模、需要按组划分的同网段隔离;
- 两者都实现“横向隔离 + 集中出口”,但生效范围、配置对象、设备支持不同,选型时先看规模、再看设备能力。
【踩坑】MUX VLAN 的能力依赖型号:并非所有中兴产品/版本都支持 MUX VLAN,且主/从 VLAN 的配置命令、互通策略关键字差异较大。依型号/软件版本不同,现场用 ? 帮助确认;在不确定的设备上,优先采用“每用户 VLAN + 三层 ACL”的可移植方案。
3_7 笔记方法与验证清单
本节要解决什么问题:VLAN 问题八成出在「配了但没验」。本节给出可直接复制的笔记模板与逐条验证清单。
3_7_1 笔记方法(三张可直接复制的模板)
模板一:VLAN 规划表模板
| VLAN ID | 名称 | 用途/业务 | 网段 | 网关 | 优先级 | 是否透传到汇聚/核心 | 互通策略 | 备注 |
| ------- | ---- | --------- | ---- | ---- | ------ | ------------------- | -------- | ---- |
| 100 | MGMT | 设备管理 | | | 6 | 全部 | 仅网管 | 保留 |
| 10 | Office-3F | 办公 | | | 0 | 3F接入、核心 | 访服务器 | |
| 40 | Camera | 安防 | | | 4 | 3F接入、核心 | 仅NVR | |
| 60 | STA-User | 无线用户 | | | 3 | AP接入、核心 | 仅出公网 | |
模板二:端口-VLAN 归属登记表
| 设备 | 端口 | 端口角色 | untag VLAN | tag VLAN 列表 | PVID | 上联/互联 | 描述 |
| ---- | ---- | -------- | ---------- | ------------- | ----- | --------- | ---- |
| SW-A | 1-12 | Access | 10 | - | 10 | 否 | Office |
| SW-A | 21-22| Hybrid | 50 | 60 | 50 | 否 | AP |
| SW-A | 24 | Trunk | - | 10,40,50,60,100 | 1(或管理) | 是 | To-Core |
这张表是“看到端口就能说出行为”的关键。登记时强制填写 untag VLAN、tag VLAN 列表、PVID 三列,杜绝只写“属于 VLAN10”的模糊记录。
模板三:变更前后对比记录模板
【变更编号】CHG-VLAN-<序号> 【日期】 【操作人】 【复核人】
【变更对象】设备/版本/管理IP
【变更目的】如:新增访客 VLAN、扩展 AP 用户 VLAN
【变更前】
show vlan 关键输出(粘贴真实输出)
端口-VLAN 归属登记表(变更前版本)
【变更步骤】逐条命令(可直接粘贴)
1. set vlan 60 enable
2. create vlan 60 name STA-User
3. set vlan 60 add port 21-22 tag
4. set vlan 60 add port 23-24 tag
5. show vlan 60
【变更后】
show vlan 关键输出(粘贴真实输出)
端口-VLAN 归属登记表(变更后版本)
【验证项】引用 3_7_2 验证清单,逐项记录结果
【回退触发条件】任一关键业务不通 / show vlan 与规划表不一致 / MAC 漂移告警
【回退脚本】
set vlan 60 delete port 21-22
set vlan 60 delete port 23-24
clear vlan 60 name
set vlan 60 disable
save
【复盘】一句话结论 + 关联考点(如:3_1_2 Tag/Untag/PVID 模型)
记录纪律:所有变更必须“先备份、再变更、再验证、再保存”;回退脚本要在变更前准备好,而不是故障发生后临时想。粘贴真实输出而不是“概括描述”,因为答辩与上机考的是“你见过什么”,不是“你背过什么”。
3_7_2 验证清单
| 验证命令 | 预期结果/关键字段 | 不符时的排查方向 |
|---|---|---|
show vlan [[vlanlist]] |
VLAN 状态 enable;端口列表与 tag/untag 符合规划 | 漏 enable、成员漏加、tag/untag 写反 |
show vlan <id>(逐 VLAN) |
该 VLAN 所有接入口、上联口均出现,角色与设计一致 | 透传范围缺失、接入口漏配 |
show port [portlist] |
PVID 等于设计值;与唯一 untag VLAN 一致 | 只配 untag 未配 PVID、PVID 错配 |
show pvlan |
isolated-port 与 promiscuous port 同时存在 | PVLAN 未生效、共享口漏配 |
show fdb vlan <id> |
能在正确 VLAN 学到源/目的 MAC | VLAN 错、端口未 up、环路/漂移 |
show iproute |
各 ipport/SVI 对应直连路由存在 | VLAN 内无 up 端口、ipport/SVI 未 enable |
show running / show config |
关键命令齐全,已保存 | 仅当前配置未写入、重启丢失 |
show interface <port> |
端口物理/协议 up、速率双工协商正常 | 端口 down、协商异常、光模块问题 |
ping(同 VLAN 两端 PC) |
同 VLAN 互通、ARP 正常 | 成员/PVID/tag 任一不匹配 |
ping(跨 VLAN 网关) |
终端能 ping 通自身网关 | 网关地址、掩码、ipport/SVI、直连路由 |
traceroute(跨 VLAN/跨网段) |
路径经过正确网关 | 路由缺失、ACL/防火墙、下一跳不可达 |
mirror / 抓包(终极手段) |
带 tag 抓包可见正确 VID | 上联 untag、两端 PVID/VLAN 不一致 |
验证节奏:先“设备内自证”(show vlan / show port),再“链路对称”(两端 tag、PVID、VLAN ID 一致),最后“端到端业务”(ping/ARP/路由/抓包)。不要一上来就抓包,也不要只 ping 通就收工——T3/T4 类的负向测试同样要留痕。
3_8 考点速记与自检清单
本节要解决什么问题:最后是考点速记与自检清单,考前过一遍就够。
3_8_1 考点速记【ZCIA 10%】
- VLAN 的作用:隔离广播域、增强安全、按业务/部门集中化管理。
- VLAN ID 范围 1-4094,VLAN 1 为默认,0 与 4095 保留;802.1Q Tag 4 字节:TPID(0x8100) + PRI(3bit) + CFI(1bit) + VID(12bit)。
- PVID 只作用于入方向的 untagged 帧;untag/tag 决定出方向是否剥离标签。
- 中兴体系 A 无
port link-type,靠pvid + tag/untag组合实现 Access/Trunk/Hybrid。 - Access = 单一 VLAN untag + PVID=该 VLAN;Trunk = 多个 VLAN tag;Hybrid = 部分 tag + 部分 untag。
set vlan <id> enable是 VLAN 生效前提;set vlan <id> add port <list> tag/untag决定成员与出方向行为;set port <list> pvid决定入方向裸帧归属。- FID 默认等于 VID;多个 VLAN 共享 FID 则共享 MAC 转发表;静态 MAC 绑定要按 FID 配。
forbid/permit控制端口是否学习某个 VLAN;GVRP 下 forbid 的端口无法动态学习。- 跨设备互通四要素:两端 VLAN ID 一致、两端互联口均为 tag、两端 PVID(native)一致、物理链路 up。
- VLAN 间路由:体系 A 用
set ipport <id> ipaddress/vlan/enable,体系 B 用interface vlan <id>+ip routing;终端网关须指向对应地址。 - 直连路由生成条件:该 VLAN 内至少有一个 up 端口;否则配置完整也看不到直连路由。
- PVLAN:共享端口 + 隔离端口必须同时配置才生效;一台交换机仅支持一个 PVLAN。
- AP Hybrid 口原则:管理 VLAN untag + PVID=管理 VLAN,用户 VLAN tag;配反会导致 AP 批量离线。
- 上联口一律 tag(Hybrid AP 口除外)——最重要的工程纪律之一。
- QinQ = S-VLAN 外层 + C-VLAN 内层,用于多租户/城域二层隔离;MUX VLAN = 主 VLAN + 从 VLAN,适合跨设备的大规模同网段隔离。
3_8_2 本板块自检清单
3_8_3 故障排查速查(决策树与典型故障)
现象:终端不通 / 跨设备 VLAN 不通
├─ ① show vlan <id> VLAN 是否存在且 enable?
│ └─ 否 → set vlan <id> enable
├─ ② show port <id> PVID 是否正确?
│ └─ 典型错误:只有 untag 成员关系,没改 PVID → 入向帧被打上 VLAN1
├─ ③ show vlan <id> 上联口是否在该 VLAN 中且为 tag?
│ └─ 典型错误:上联口配成 untag → 对端收到无 tag 帧 → 落进对端 PVID
├─ ④ 两端一致 两端 VLAN ID / tag 方式 / PVID 是否一致?
├─ ⑤ show fdb vlan <id> 是否学到 MAC?VLAN 是否正确?
└─ ⑥ 镜像抓包 看帧里到底带的是哪个 VID
└─ 终极手段:带 tag 抓包,直接看清 VLAN 标签
| 故障 | 现象 | 判据 | 解决 |
|---|---|---|---|
| 漏配 PVID | 端口在同 VLAN 但不通/半通 | show port <id> 显示 pvid=1 |
补 set port <id> pvid <vid> |
| 上联配成 untag | 跨设备不通,本设备通 | show vlan <id> 上联口为 untag |
改为 tag |
| VLAN 未 enable | 配置都在但不通 | show vlan 状态 disable |
set vlan <id> enable |
| Native VLAN 不一致 | 部分流量通、部分不通 | 两端 Trunk 的 PVID 不同 | 统一 Trunk PVID(set trunk <id> pvid <vid>) |
| VLAN 透传遗漏 | 某栋楼/某台接入不通 | 全网 show vlan 比对规划表 |
逐台补透传 |
| PVLAN 只配一端 | 隔离不生效 | show pvlan 缺共享口/隔离口 |
同时补齐两类端口 |
| Hybrid 配反 | AP 批量离线 | 管理 VLAN 被配成 tag | 管理 VLAN untag + PVID=管理 VLAN |
| 直连路由缺失 | 路由不通但配置完整 | 该 VLAN 无 up 端口 | 确保至少一个端口 up |
一个“幽灵故障”复盘(理解 tag/untag 的经典案例)
现象:新接入一台交换机后,全网部分终端间歇性断网,日志大量 MAC 漂移。
排查:
① show fdb → 核心网关 MAC 在两个端口间漂移
② 检查新交换机 → 上联口把管理 VLAN 配成 untag,同时该交换机的
另一个口又接回旧交换机 → 形成环路 + VLAN 标签错乱
根因:上联口 untag 使核心收到帧进入错误 VLAN,同时物理成环。
解决:上联口改 tag + 启用 MSTP + 端口描述规范化。
复盘:所有上联口一律 tag(唯一例外是明确需要 Hybrid 的 AP 口),
并写进开局模板,杜绝人为差异。
把这个案例沉淀成一条开局铁律:上联口默认 tag,只有明确需要 Hybrid 的 AP 口才例外;端口描述按"对端设备-端口-业务"写全。VLAN 排障看似在查协议,八成时候查的是"标签方向有没有写对"——把这条写进模板,比记住十条命令更能减少事故。
本板块交付标准:能独立完成 VLAN 规划、单台与跨设备配置、VLAN 间路由与 PVLAN 隔离;能在"半通""全不通""串 VLAN"三类现象下用 show vlan / show port / show fdb 三板斧定位;能在答辩中解释 tag/untag/PVID 的判定顺序与回退方案。若任一项做不到,回到对应小节重做实验,不以"看过"代替"做过"。
浙公网安备 33010602011771号