组网第25课:VLAN 进阶——Trunk 与 802.1Q
Trunk 配完不通?90% 栽在 PVID 和放行列表上
文章目录
一、开场:Trunk 都配了,财务怎么还不通?
上一课我们把网切成了几段,问题也跟着来了:一栋楼里有接入交换机、有核心交换机,一根线要同时传好几个 VLAN,怎么办?
新办公楼那天,我带的小兄弟把接入交换机和核心交换机之间的链路配成了 Trunk。配完一测,办公 VLAN10 通得好好的,偏偏财务 VLAN20 死活不通。
他挠着头很委屈:“我 Trunk 都配了啊,怎么财务还不通?”
我让他把端口配置打出来,一眼就看出问题——放行列表里只有默认的 VLAN,财务 VLAN20 压根没放进去。Trunk 是配了,可 Trunk 上的“门禁名单”没给财务开门,财务的帧自然过不去。
我干这些年,Trunk 配完不通,十次里有九次栽在两个地方:
- 放行列表(allow-pass):VLAN 没在 Trunk 上放通;
- PVID 不一致:两端默认 VLAN 对不上,不带标签的帧被塞错房间。
这一课就把 Trunk、802.1Q 标签、收发规则、Hybrid、Voice VLAN 一次讲透,让你配完就通、不通也能快速定位。
二、Trunk 是什么:两栋楼之间的“共用主干道”
可能有人会问:不用 Trunk,给每个 VLAN 单独拉一根线行不行?
理论上行,VLAN10 一根、VLAN20 一根、VLAN30 一根,全用 Access 口。可你算笔账:一栋楼里五六个 VLAN,接入到核心就得拉五六根线,多占五六个交换机端口,布线、光模块、端口都得加钱,VLAN 一多线就乱成麻,扩容时还得再拉。Trunk 用一根线、一对口,靠标签把所有 VLAN 装进去,省线、省口、省成本,这就是它存在的意义。Trunk 也叫“干道”,名字就说明了——它是各 VLAN 共用的主干道。
1. 类比:一条传送带,同时跑多个房间的包裹
上一课的 Access 口,是只通向一个房间的门。Trunk 口则完全不同,它是两栋楼(交换机)之间共用的主干道、快递传送带:
- 这条主干道上同时跑多个房间的包裹,VLAN10、VLAN20、VLAN30 的帧都走同一根线;
- 为了不混淆,每个包裹上都贴着房间号贴纸,这就是 VLAN 标签(Tag);
- 交换机在主干道上全靠这张贴纸,判断这个帧属于哪个 VLAN、该往哪送。
2. 三个关键“角色”
| 角色 | 类比 | 作用 |
|---|---|---|
| Tag(标签) | 包裹上的房间号贴纸 | 标记帧属于哪个 VLAN,Trunk 上靠它区分 |
| 放行列表 | 主干道的门禁名单 | 名单上的 VLAN 才能过,没名单的一律拦 |
| PVID | 无标签包裹的默认房间 | 不带标签的帧从这口进来,按 PVID 塞默认房间 |
两个容易踩的坑,也用类比说清:
- 放行列表没加 VLAN:就像某个房间的包裹没在门禁名单上,根本不让上这条传送带,再怎么配链路类型都没用;
- 两端 PVID 不一致:两栋楼“无标签包裹默认房间”的门牌贴得不一样,不带标签的包裹会被塞错房间,直接迷路。
3. 802.1Q 标签长什么样
VLAN 标签遵循 IEEE 802.1Q,在帧里插 4 个字节,位置就在源 MAC 之后:

- TPID(2 字节):固定
0x8100,表示“这是个带 802.1Q 标签的帧”; - PRI(3 位):优先级,QoS 用,语音这类高优先级帧可以靠它优先转发;
- CFI(1 位):标识以太网/令牌环,以太网里通常为 0;
- VID(12 位):就是 VLAN 号,范围 1~4094,这是最关键的部分。
三、Trunk 收发规则:带标签还是不带标签
1. 收发规则口诀
Trunk 口处理帧,分“进”和“出”两个方向:
帧进来(进 Trunk):
- 帧带标签:查这个 VLAN 在不在放行列表里,在就保留标签转发,不在就丢弃;
- 帧不带标签:打上 PVID 的标签,再按 PVID 对应 VLAN 处理。
帧出去(出 Trunk):
- 要发出去的 VLAN 等于 PVID:剥掉标签,发无标签帧;
- 要发出去的 VLAN 不等于 PVID:保留标签,发带标签帧。
2. Trunk 收发决策流程
3. 跨交换机的实际走向

4. 三种链路类型对比
| 类型 | 属于 VLAN | 出端口发帧 | 典型用途 |
|---|---|---|---|
| Access | 只一个 VLAN | 一律剥标签 | 接电脑、打印机 |
| Trunk | 放行列表内多个 | 只有 PVID 剥标签,其余带标签 | 交换机之间、上联 |
| Hybrid | 灵活,可多个 | 可自定义哪些 VLAN 带标签/不带 | 华为特色,特殊场景 |
一个帧,从头到尾走一遍(把规则串起来)
财务电脑(VLAN20)发一个无标签帧,从接入交换机的 Access 口进来,打上 VLAN20 标签;这个帧要去核心,就得走 Trunk。因为 VLAN20 不等于 Trunk 的 PVID(默认 1),它带着标签上了 Trunk;到了核心交换机,先查 VLAN20 在不在放行列表(在),就保留标签接收。反过来,核心要给财务电脑回帧,最终从 Access 口出去时,标签被剥掉,电脑收到的还是无标签帧。
整个过程里,标签只在交换机之间的 Trunk 上“穿戴”,进出终端都不碰标签——这正是 Access 和 Trunk 配合的默契:终端只管收发,标签和区分都交给交换机。
四、命令落点:配 Trunk、配 Hybrid、查结果
1. 配置 Trunk 并放行 VLAN
下面是华为 VRP 完整链路,从进系统视图到保存:
<SW> system-view
[SW] vlan batch 10 20 30
[SW] interface GigabitEthernet0/0/24
[SW-GigabitEthernet0/0/24] port link-type trunk # 设为Trunk口
[SW-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 # 放行10/20/30(关键!)
[SW-GigabitEthernet0/0/24] quit
[SW] return
<SW> save
默认 Trunk 口 PVID 是 VLAN1,一般上联场景保持默认、两端一致即可,不要随意改。若确需修改,用
port trunk pvid vlan 10,且两端必须配成一样,否则无标签帧会走错。
放行列表的几个实操细节
- 想让 Trunk 跑所有 VLAN,用
port trunk allow-pass vlan all,但生产环境不建议,广播域和安全范围太大; - 已经放行一批、只想再加一个,直接再敲
port trunk allow-pass vlan 40,是追加而不是覆盖; - 注意 Trunk 默认就放着 VLAN1,若要彻底隔离,要确认 VLAN1 是否也该从放行列表去掉;
- 两端放行列表要一致,一端放了、一端没放,照样不通。
2. 验证结果
<SW> display port vlan GigabitEthernet 0/0/24
正常回显(关键看 Link Type、PVID、放行了哪些 VLAN):
Port Link Type PVID VLAN List
GE0/0/24 trunk 1 1,10,20,30
Link Type=trunk、VLAN List里要能看到 10、20、30,少一个就是那个 VLAN 没放通;- 也可以
display vlan看该 Trunk 口在哪些 VLAN 下、是TG(带标签)还是UT(无标签)。
3. 异常与排查
| 现象 | 命令 | 看到什么 | 判断 | 动作 |
|---|---|---|---|---|
| 某个 VLAN 不通 | display port vlan | VLAN List 缺该 VLAN | 放行列表没放通 | 补 port trunk allow-pass vlan xx |
| 无标签帧走错 | display port vlan | 两端 PVID 不一样 | PVID 不一致 | 两端 PVID 配成相同 |
| 一端能通一端不通 | 两端都看 | 一端 Access 一端 Trunk | 链路类型不一致 | 两端统一成 Trunk |
| 有本征 VLAN 告警 | 看日志 | Native VLAN mismatch | 两端本征 VLAN 不一致 | 统一本征 VLAN |
| 配了不通 | display vlan | 该 VLAN 根本没建 | VLAN 未创建 | 先 vlan batch 建 VLAN |
4. Hybrid 口:灵活的“万能门”
Hybrid 是华为交换机上很灵活的口,能手动指定哪些 VLAN 带标签、哪些不带标签,常用于一台口要同时接多个特殊设备的场景:
[SW] interface GigabitEthernet0/0/10
[SW-GigabitEthernet0/0/10] port link-type hybrid
[SW-GigabitEthernet0/0/10] port hybrid tagged vlan 100 # VLAN100带标签
[SW-GigabitEthernet0/0/10] port hybrid untagged vlan 10 20 # VLAN10/20不带标签
[SW-GigabitEthernet0/0/10] port hybrid pvid vlan 10
[SW-GigabitEthernet0/0/10] quit
tagged的 VLAN 出端口带标签,untagged的剥标签,按需自由组合;- 普通接终端用 Access、交换机互联用 Trunk 就够了,Hybrid 留到有特殊需求时再用,别为了“显得高级”把口都配成 Hybrid,反而增加维护难度。
5. Voice VLAN:给 IP 电话单独划道
很多工位是 IP 电话和电脑串接(墙面板→电话→电脑),希望语音和数据分开、语音优先。这时用 Voice VLAN:
[SW] voice-vlan 100 enable
[SW] interface GigabitEthernet0/0/5
[SW-GigabitEthernet0/0/5] voice-vlan 100 enable # 接口启用语音VLAN
[SW-GigabitEthernet0/0/5] port link-type hybrid
[SW-GigabitEthernet0/0/5] port hybrid pvid vlan 10
[SW-GigabitEthernet0/0/5] port hybrid untagged vlan 10
[SW-GigabitEthernet0/0/5] port hybrid tagged vlan 100
- 电话发来的语音帧进 VLAN100(带标签、优先转发),电脑数据走 VLAN10;
- 不同型号/版本命令细节略有差异,配置前查对应版本手册,核心思路是“语音单独 VLAN、靠标签和优先级区分”。
为什么语音值得单独划一个 VLAN?
打电话对网络的要求和上网不一样:它怕延迟、怕抖动,你这边“喂喂喂”听不清、对方声音一卡一卡,往往就是语音包被大量数据挤在后面排队了。把语音单独放进 VLAN100,一来它和数据互不干扰,二来能配合 802.1Q 标签里的 PRI 优先级和 QoS,让语音包在网络拥塞时也能优先通过。这也是为什么很多企业 IP 电话要和电脑串接在同一个墙面口、却又必须在逻辑上分开——一根线进工位,里面语音、数据各走各的道,互不耽误。
思科对照
| 动作 | 华为 VRP | 思科 IOS |
|---|---|---|
| 设 Trunk | port link-type trunk | switchport mode trunk |
| 放行 VLAN | port trunk allow-pass vlan 10 20 30 | switchport trunk allowed vlan 10,20,30 |
| 改默认 VLAN | port trunk pvid vlan 10 | switchport trunk native vlan 10 |
| 语音 VLAN | voice-vlan ... enable | switchport voice vlan 100 |
| 看口 | display port vlan | show interfaces trunk |
思科的 Native VLAN(本征 VLAN) 对应华为的 PVID,无标签帧都走它。两端本征 VLAN 不一致,思科会明确报
VLAN mismatch告警。
五、Trunk 不通,按这四步查
排查时还可以先从现象快速缩小范围:所有 VLAN 都不通,多半是链路类型、物理链路或 VLAN 压根没建;只有个别 VLAN 不通、其他正常,几乎可以直接锁定放行列表;时通时不通、或出现串 VLAN 的怪现象,重点查 PVID 和本征 VLAN 是否一致。先分清是“全不通”还是“个别不通”,能少走很多弯路。

排查顺序给你固定下来,照着走:
- 放行列表:该 VLAN 是否在两端
allow-pass里?没放通就加; - PVID 是否一致:两端默认 VLAN 必须相同,不同就会走错;
- 链路类型:两端是否都是 Trunk?一端 Access 一端 Trunk 必不通;
- 本征 VLAN:两端 Native VLAN 是否一致?不一致会有告警。
六、🔧 运维视角 & 📐 设计视角
🔧 运维视角:
- Trunk 配完先
display port vlan,确认链路类型、PVID、放行列表三项都对,再谈业务; - 某个 VLAN 不通、其他 VLAN 正常,十有八九是放行列表,别一上来就怀疑线和硬件;
- 改 PVID 一定两端一起改,这是最容易被忽略、也最容易出玄学问题的地方。
📐 设计视角:
- 上联 Trunk 要明确放行哪些 VLAN,不要为了省事放行所有 VLAN,会扩大广播和安全范围;
- 全网 PVID、本征 VLAN 要有统一约定,写进设计文档;
- 语音、监控这类需要隔离或优先的业务,从规划阶段就定好 VLAN 和标签策略,Voice VLAN 方案要提前和电话、AP 厂家对齐。
七、小结与命令速查表
- Trunk 是交换机之间的“共用主干道”,一根线同时跑多个 VLAN,靠 802.1Q 标签区分;
- 标签 4 字节:TPID
0x8100、PRI、CFI、VID,VID 12 位决定 VLAN 号; - 进 Trunk:带标签查放行列表、不带标签打 PVID;出 Trunk:等于 PVID 剥标签、不等于 PVID 带标签;
- Trunk 不通先查放行列表,再查 PVID、链路类型、本征 VLAN;
- Hybrid 可灵活配带/不带标签,Voice VLAN 把 IP 电话语音单独划道。
本篇命令速查表(华为 VRP):
| 目的 | 华为命令 | 思科对照 |
|---|---|---|
| 设 Trunk | port link-type trunk | switchport mode trunk |
| 放行 VLAN | port trunk allow-pass vlan 10 20 30 | switchport trunk allowed vlan 10,20,30 |
| 改 PVID | port trunk pvid vlan 10 | switchport trunk native vlan 10 |
| Hybrid | port hybrid tagged/untagged vlan | (多用 switchport 组合) |
| 语音 | voice-vlan 100 enable | switchport voice vlan 100 |
| 看口 | display port vlan / display vlan | show interfaces trunk |
八、思考题 & 评论区接招
💬 看图题(这题最能看出你有没有真懂):
两台交换机之间配了 Trunk,两端口的 PVID 不一样(左边 PVID 是 10,右边 PVID 是 20)。
这时一个不带标签的帧从左边发出来,会发生什么?它会被当成哪个 VLAN?到了右边又会怎么处理?
把你判断的过程写在评论区,我来看看谁的答案最准,也会在评论区给出完整的“帧走向”图解。
系列导航:
- 上一课:第 24 课《VLAN 入门——把一张大网切成几段》
- 下一课:第 26 课《VLAN 间通信——VLANIF、单臂路由怎么选》
- 专栏主页:[网络工程师进阶:企业组网实战——从交换机配置到园区网交付]
我是你们的老网工。到这儿,VLAN 会切了、Trunk 也会配了,二层这张网算是理清楚了。但你肯定发现一个问题:VLAN 切完之后,不同 VLAN 之间默认互相不通,那办公要访问财务服务器、要上网,怎么办? 下一课就讲 VLAN 间通信,三层交换机 VLANIF 和单臂路由到底怎么选,我们下一课见。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)