网络基础 | Trunk 配置:交换机之间怎么「一根线传多个 VLAN」
网络基础 | Trunk 配置:交换机之间怎么「一根线传多个 VLAN」
上篇《VLAN 的划分》讲了 VLAN 隔离和 Access 口,但跨交换机的同一个 VLAN 要互通,Access 口做不到——它只能带一个 VLAN 且出方向去标签。本篇专门讲 Trunk 干道:一根链路同时透传多个 VLAN,靠 802.1Q 标签区分身份。
1. 一句话理解 Trunk
- Access 口:接终端(PC/服务器),只属于一个 VLAN,出方向剥离标签
- Trunk 口:连交换机/路由器,同时承载多个 VLAN,帧带 802.1Q 标签传输
- Trunk 干道:两台设备之间的 Trunk 链路,本质是「多 VLAN 共用的高速公路」
口诀:「交换机连交换机用 Trunk,交换机连 PC 用 Access」
2. 三种端口类型速查表
| 端口类型 | 连接对象 | 允许 VLAN 数 | 是否打标签 | 典型用途 |
|---|---|---|---|---|
| Access | 终端(PC/打印机) | 仅 1 个 | 出方向去标签 | 用户接入 |
| Trunk | 交换机/路由器 | 多个(默认仅 VLAN 1) | 带标签透传 | 设备互联干道 |
| Hybrid | 终端或设备均可 | 多个 | 可灵活控制每张标签去留 | 特殊场景(如 VoIP+数据) |
⚠️ 华为/H3C 与 Cisco 差异:Cisco 的 Trunk 用 802.1Q(dot1q);华为默认端口类型是 Hybrid,要手动
port link-type trunk切到 Trunk。本文以华为 VRP 为例。
3. 802.1Q 标签长什么样(帧结构)
Trunk 口在转发跨 VLAN 帧时,会在源 MAC 之后、类型字段之前插入 4 字节标签:
标签 4 字节拆解:
| 字段 | 长度 | 含义 |
|---|---|---|
| TPID | 2B | 固定 0x8100,标识这是 802.1Q 帧 |
| PRI | 3bit | 优先级(0–7),QoS 用 |
| CFI | 1bit | 规范格式指示位,以太网固定 0 |
| VLAN ID | 12bit | VLAN 编号 0–4095,真正决定归属的字段 |
💡 关键认知:Trunk 不靠「记得哪根线属于哪个 VLAN」,而是每帧都带着自己的 VLAN ID 跑,对端交换机按标签转发。
4. PVID 是什么(最容易混的概念)
- PVID(Port Default VLAN ID)= 端口的缺省 VLAN
- 收帧时:收到无标签帧(如来自 Access 口/PC),交换机给它打上本端口 PVID 的标签
- 发帧时:若帧的 VLAN ID 等于出端口 PVID 且端口配置去标签,则剥离标签发出
| 场景 | 行为 |
|---|---|
| Access 口收无标签帧 | 打上 PVID(= 该口所属 VLAN)标签 |
| Trunk 口收无标签帧 | 打上 Trunk 口 PVID(默认 VLAN 1)标签 |
| Trunk 口发帧,VLAN ID = PVID | 剥离标签发出(native VLAN 行为) |
| Trunk 口发帧,VLAN ID ≠ PVID | 带标签发出 |
⚠️ 排障高频坑:两端 Trunk 的 PVID(native VLAN)不一致会导致 VLAN 漏配/环路。建议两端保持一致,且生产环境把 native VLAN 改掉别用默认的 1。
5. 实验拓扑
目标:PC1(V10)与 PC3(V10)跨交换机互通;PC1 与 PC2(V20)隔离。
6. Trunk 完整配置(VRP)
6.1 LSW1 配置
system-view
sysname LSW1
# 1. 创建 VLAN
vlan batch 10 20
# 2. 连接 PC 的 Access 口
interface GigabitEthernet 0/0/1 # 接 PC1(VLAN 10)
port link-type access
port default vlan 10
interface GigabitEthernet 0/0/2 # 接 PC2(VLAN 20)
port link-type access
port default vlan 20
# 3. 连接对端交换机的 Trunk 口
interface GigabitEthernet 0/0/24 # 接 LSW2
port link-type trunk
port trunk allow-pass vlan 10 20 # 放行指定 VLAN(华为默认仅 VLAN 1)
# port trunk pvid vlan 1 # 默认 native VLAN=1,可改
6.2 LSW2 配置(对称)
system-view
sysname LSW2
vlan batch 10 20
interface GigabitEthernet 0/0/1 # 接 PC3(VLAN 10)
port link-type access
port default vlan 10
interface GigabitEthernet 0/0/2 # 接 PC4(VLAN 20)
port link-type access
port default vlan 20
interface GigabitEthernet 0/0/24 # 接 LSW1
port link-type trunk
port trunk allow-pass vlan 10 20
💡 简写技巧:放行所有 VLAN 用
port trunk allow-pass vlan all;若只放行 10 20 之外的某几个,可undo port trunk allow-pass vlan 1把默认 VLAN 1 移出。
7. 验证命令
# 看每个端口的链路类型 + 缺省 VLAN + 放行 VLAN
display port vlan
# 看 VLAN 与成员端口的对应关系
display vlan
# 看接口物理/协议状态
display interface GigabitEthernet 0/0/24 brief
# 详细看某 Trunk 口的 PVID / 放行列表
display port vlan interface GigabitEthernet 0/0/24
预期输出要点:
display port vlan里 G0/0/24 的 LINK TYPE = trunk,VLAN LIST = 10 20- PC1
ping 10.0.10.30(PC3)通;ping 10.0.20.20(PC2)不通
8. ⚠️ 默认放行陷阱(最高频)
华为交换机 Trunk 口默认只允许 VLAN 1(port trunk allow-pass vlan 1)。如果只配 port link-type trunk 而忘了 allow-pass vlan 10 20,那 VLAN 10/20 的帧过不了 Trunk,跨交换机同 VLAN 也 ping 不通——现象和「没配 VLAN」一模一样,极难第一时间想到是 Trunk 没放行。
红色警告:配完 Trunk 第一件事就是
display port vlan确认放行列表,别等 ping 不通才查。
9. 对比表
9.1 Access vs Trunk vs Hybrid
| 维度 | Access | Trunk | Hybrid |
|---|---|---|---|
| 连接对象 | 终端 | 交换机/路由器 | 均可 |
| 允许 VLAN | 1 个 | 多个 | 多个 |
| 标签处理 | 出方向去标签 | 按 VLAN ID 决定带/去 | 每 VLAN 单独配置 |
| 默认 PVID | 所配 VLAN | 1 | 1 |
| 常用度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
9.2 allow-pass 写法对照
| 命令 | 效果 |
|---|---|
port trunk allow-pass vlan 10 | 仅放行 VLAN 10 |
port trunk allow-pass vlan 10 20 | 放行 10 和 20 |
port trunk allow-pass vlan 10 to 20 | 放行 10–20 连续段 |
port trunk allow-pass vlan all | 放行全部 |
undo port trunk allow-pass vlan 1 | 从放行列表移除 VLAN 1 |
10. 八大踩坑表
| # | 坑 | 现象 | 正确做法 |
|---|---|---|---|
| 1 | Trunk 没 allow-pass | 跨交换机同 VLAN 不通 | 显式放行 allow-pass vlan 10 20 |
| 2 | 两端 Trunk PVID 不一致 | VLAN 错乱/潜在环路 | 两端 native VLAN 保持一致 |
| 3 | Access 口接交换机 | 多 VLAN 帧被丢弃 | 设备互联必须用 Trunk |
| 4 | 忘了 vlan batch | 端口无法加入 VLAN | 先建 VLAN 再配端口 |
| 5 | 用 default vlan 配 Trunk | Trunk 不支持该命令 | Trunk 用 allow-pass |
| 6 | native VLAN 用默认 1 | 安全风险/易混 | 生产改掉,别用 1 |
| 7 | 一端 Trunk 一端 Hybrid 没对齐 | 标签处理不一致丢帧 | 两端类型与放行一致 |
| 8 | 配完不验证 | 问题滞后暴露 | display port vlan 立即确认 |
结语
Trunk 的核心就一句:用 802.1Q 标签让一根物理链路透传多个 VLAN,配置上记得「接口改 trunk + allow-pass 放行 + 两端 PVID 对齐」三件套。
下一篇预告:《VLAN 间路由》——不同 VLAN 要互访,二层 Trunk 不够,得上三层(单臂路由 / 三层交换 SVI),把这套「路由+交换」系列彻底闭环。
# 续写模板(下篇直接用)
# 目标:VLAN 10 与 VLAN 20 互通
# 方案A:单臂路由(路由器子接口 dot1q termination)
# 方案B:三层交换(interface vlanif 10 / 20 + ip address)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)