Access、Trunk、Hybrid 端口有什么区别?
Access、Trunk、Hybrid 这三个词,弱电同行天天在配置命令里见,但能把区别说利索的没几个。
要懂这三种端口模式,必须先知道交换机内部怎么干活。华为官方文档里有一句很直白的话:交换机内部处理的数据帧,一律都带有 VLAN 标签。
一、先记住一个前提:交换机内部只认带标签的帧
这个标签是 802.1Q 标准定义的,4 个字节,插在数据帧里,核心就一个编号:VLAN ID,取值 1 到 4094。帧带着「我是 10 号 VLAN 的」这个标签,交换机才知道把它转发到哪些口。
问题来了:你的电脑、摄像头、打印机这些终端,发出来的帧都是不带头贴的裸帧(不带标签)。一个裸帧进了交换机,交换机怎么区分它属于哪个 VLAN?
答案就在端口的配置上。每个端口都有一本账,记着两件事:
•收方向:裸帧进来,给它贴哪个 VLAN 的标签(PVID,端口缺省 VLAN)
•发方向:帧出去之前,标签撕不撕
下面这张总表就是三种配置的全集。看懂了它,后面的每一章都是注释:
模式 | 收到裸帧 | 收到带标签帧 | 发出时 |
Access | 贴上 PVID 标签 | 标签=PVID 收下;别的扔 | 一律撕掉标签 |
Trunk | 贴上 PVID 标签(PVID 必须在放行列表里) | 在放行列表里收下;不在扔 | PVID 那个 VLAN 撕掉;其余保留标签 |
Hybrid | 贴上 PVID 标签 | 在放行列表里收下;不在扔 | 你自己定:哪些 VLAN 撕、哪些保留 |
注意三种模式的差异全部集中在「撕不撕、撕几个」上。把这个表抄下来贴工位,比背一百遍定义都有用。
二、Access:只认自己人的单间
用园区打比方。整个园区的人胸前挂工牌,牌上写着单位编号(VLAN ID)。门卫看牌认人。
Access 端口就是一个具体单位宿舍区的大门:只认本单位的牌。住在里面的人平时在自己楼栋进出是不带牌的(终端发裸帧)——守门的师傅见你是熟脸,直接给你挂上「本单位」的牌(贴上 PVID 标签)放你进小区。外面来个挂别的单位牌子的(带别的 VLAN 标签的帧),一看不是本单位,拦下。
出方向更简单:从宿舍区出去的人,牌全摘了。因为外面不需要知道你属于哪个单位。
所以 Access 的用法一句话:接终端。电脑、打印机、摄像头、门禁控制器——这些设备发的全是裸帧,Access 口把裸帧统一贴上所属 VLAN 的标签,完美对口。
配置也就两条命令:
# 把 GE0/0/1 划给 VLAN 10(接 PC 的口)
[Huawei-GigabitEthernet0/0/1] port link-type access
[Huawei-GigabitEthernet0/0/1] port default vlan 10
# 可选:直接丢弃收到的带标签帧,防止有人私接交换机改用途
[Huawei-GigabitEthernet0/0/1] port discard tagged-packet
我在项目上批量划 VLAN 有个偷懒不脏的做法:端口组。监控项目一台接入交换机 24 个口全给监控 VLAN,不用挨个口敲,几条命令搞定:
# 把 GE0/0/1 到 24 一口子划给监控 VLAN 30
[Huawei] vlan batch 30
[Huawei] port-group group-monitor
[Huawei-port-group-group-monitor] group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/24
[Huawei-port-group-group-monitor] port link-type access
[Huawei-port-group-group-monitor] port default vlan 30
批量配置必须进端口组视图再敲,24 个口的活两分钟干完。验收的时候同样用 display port vlan 一次看全。
上面代码块里那条 port discard tagged-packet 是华为官方推荐的加固配置:宿舍区大门只许裸帧进,谁要挂着牌往里闯(带标签的帧),一律扔。有些项目甲方要求端口安全审计,这条必须配。
三、Trunk:认所有牌的主干道
还是工地。两个单位宿舍区之间有条主干道,所有人必须挂牌通行——门卫见牌放行,没牌的补个牌。
Trunk 端口就是这条主干道:允许多个 VLAN 的帧带标签通过。交换机之间、交换机连路由器、连 AC、连 AP,都是它。
对照总表拆开看:
•收到裸帧:贴上 PVID 标签——但注意,PVID 对应的 VLAN 必须同时在这条干道的放行列表里,贴了牌才能放进来。华为官方文档原话:「缺省 VLAN 不一定是接口允许通过的 VLAN」
•收到带标签帧:查放行列表,在就收,不在就扔
•发出时:绝大多数 VLAN 保留标签;只有 PVID 那一个 VLAN 撕掉标签
配置三条命令:
# 上联口:跟核心交换机的互联口
[Huawei-GigabitEthernet0/0/24] port link-type trunk
[Huawei-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30
# PVID 一般维持默认 VLAN 1 就行,改了的话记两条规则:
# 1) 这个 VLAN 必须提前创建好(vlan batch)
# 2) 它必须也在 allow-pass 列表里,不然裸帧贴上牌也过不去
[Huawei-GigabitEthernet0/0/24] port trunk pvid vlan 100
Trunk 的 PVID 这个坑,新手一踩一个准:只改了 pvid,没把新 VLAN 加进 allow-pass——裸帧进来贴上 VLAN 100 的牌,结果 VLAN 100 不在放行列表,直接扔掉。表现就是:带标签的 VLAN 全通,裸帧全死。症状诡异得很,查起来最费劲。
⚠ 两台交换机之间的 Trunk 口,两边的 PVID 不用一样也能通带标签的业务——但裸帧会进错 VLAN。管理流量(不带标签)走的是 PVID 通道,两边 PVID 不一致,管理流量就乱了。跨厂商对接时更狠:华为的 PVID 对的是思科的 native VLAN,两边不一致,VLAN 1 的流量直接不通。这个后面第七章细说。
四、Hybrid:物业说了算的特殊通道
园区还有第三种口子:访客通道、物料通道。哪些单位的人必须挂牌、哪些单位的人允许不挂,物业一条一条定。这就是 Hybrid——华为(和 H3C)特有的第三种模式。
它的规则自由度最高:出方向,每个 VLAN 单独指定撕不撕标签。tagged 列表里的 VLAN 保留标签出去,untagged 列表里的 VLAN 撕掉标签出去。思科没有这个模式,这也是一批批转华为平台的工程师犯迷糊的根源。
什么时候真的需要它?三个典型场景:
•IP 电话串联电脑:电话接交换机、电脑再串在电话屁股后面。语音 VLAN 带标签给交换机,电脑数据 VLAN 不带标签——一条网线跑两种玩法,只能 Hybrid
•AP 上联口:管理 VLAN 带标签上云管平台,本地转发的业务 VLAN 不带标签——AP 上联口用 Hybrid 是华为无线项目的标准打法
•对端设备不支持 Trunk:有些老设备、弱电面板只认裸帧,又需要透传多个 VLAN,用 Hybrid 的 untagged 列表兼容
配置长这样:
# AP 上联口:管理 VLAN 100 带标签,业务 VLAN 10/20 不带标签
[Huawei-GigabitEthernet0/0/2] port link-type hybrid
[Huawei-GigabitEthernet0/0/2] port hybrid pvid vlan 10
[Huawei-GigabitEthernet0/0/2] port hybrid tagged vlan 100
[Huawei-GigabitEthernet0/0/2] port hybrid untagged vlan 10 20
但我得说句得罪厂商的实话:90% 的弱电项目,Access 加 Trunk 就够用了。Hybrid 是特殊场景的专用工具,不是标配。我见过有人所有端口统一配 Hybrid,问他为什么,他说「高级」。高级的代价是排障难度翻倍——Hybrid 的报文处理逻辑本来就是三种模式里最复杂的(华为官方那张处理表里,Hybrid 的规则写了最长的一段)。
判断该不该用 Hybrid 就一个问题:这个口接的设备,是不是同时需要「一部分 VLAN 带标签、一部分不带」?是,就用 Hybrid;不是,Access 或 Trunk 老实配。
五、华为特有的三个坑,踩一个值半天
讲完原理,讲华为环境里最值钱的实战经验。这三个坑,全是钱换来的。
5.1 出厂默认是 Hybrid,不是 Access
华为 S 系列交换机,接口出厂默认 link-type 就是 Hybrid,PVID=1,untagged 列表里放行 VLAN 1。也就是说,你什么都不敲,它已经是一个「能转发 VLAN 1 裸帧」的 Hybrid 口了。
补一个 2024 年之后的新变化:华为一批新型号(S300、S500、S5735 系列里的部分形态)出厂默认又改成了 negotiation-auto——端口自己和对端协商链路类型(华为管这叫 LNP)。你敲 display 命令看到 Link Type 显示 negotiation,别慌,手动配了 link-type 就固定下来了。老库存和旧固件设备,默认还是 Hybrid。所以「出厂默认是什么」这事,最稳的答案永远是:上架先 display 看一眼。
我见过从思科转过来的同行,最不适应这个:思科一条 switchport access vlan 10 敲下去,端口自动变成 Access 模式,隐含动作全齐了。华为没有这个隐含动作——port default vlan 10 只负责「裸帧贴 VLAN 10 的牌」,不负责把端口改成 Access。两条命令各管各的。
后果就是开头那个事故:只敲了 port default vlan,端口还是 Hybrid,接终端的口子看着能通(裸帧贴牌转发了),可一旦接上带标签的设备、或者做端口安全审计,行为跟预期完全对不上。
配完必查一条命令:display port vlan。看 Link Type 那一列是不是你要的模式。配置命令敲没敲、模式改没改,这条命令一秒见真章。
5.2 Trunk 的 PVID 要过两道关
第三章说过,这里再钉一遍:改 port trunk pvid vlan 100,必须同时满足两个条件——VLAN 100 已经创建(vlan batch 100)、VLAN 100 在 allow-pass 列表里。少一道,裸帧就过不去。华为官方文档把这条写在「注意事项」里,说明被坑的人足够多。
5.3 华为其实有第 4 种:QinQ
冷知识:华为官方文档里定义的链路类型是四种——Access、Trunk、Hybrid,外加一个 QinQ。QinQ 是给运营商和大型园区用的:帧上叠两层 VLAN 标签,外层走运营商骨干,内层保留客户自己的 VLAN。90% 的文章只写三种,倒也没错,你 90% 的职业生涯也用不到 QinQ,但面试被问到「华为有几种链路类型」,答四种,显得你读过官方文档。
六、排障实战
6.1 AP 加了访客 SSID,新网段死活不通
商场项目,AP 上联口配的 Hybrid:管理 VLAN 100 走 tagged,业务 VLAN 10、20 走 untagged。后来加了个访客 VLAN 30,AC 上 SSID 配好了,AP 也下发成功了,就是上不了网。查了两小时——AP 上联口的 untagged 列表没加 VLAN 30,访客数据帧带着标签出来,被端口拒之门外。
教训:Hybrid 口每加一个「不带标签」的业务 VLAN,untagged 列表必须跟着加。少一个,就是一片区域断网。
6.3 跨楼监控「时通时断」,PVID 两边不一致
两栋楼各一台交换机,中间一根光纤 Trunk 互联。带标签的监控 VLAN 30 一直通,不带标签的楼宇对讲 VLAN 1 时通时断。查到根上:A 楼 Trunk 的 PVID 是 1,B 楼不知道谁改成了 2。裸帧在 A 楼进 VLAN 1,过链路到 B 楼,B 楼按自己的 PVID 2 归置——对讲流量进错 VLAN,当然不通。
教训:Trunk 两端的 PVID 对齐,是所有跨交换机故障排查的第一眼。带标签业务通、裸帧业务不通,九成是它。
display port vlan 的输出,三类端口排在一起长这样(典型片段):
[Huawei] display port vlan
Port Link Type PVID Trunk VLAN List
GE0/0/1 access 10 -
GE0/0/24 trunk 1 10 20 30
GE0/0/2 hybrid 10 Tagged: 100 Untagged: 10 20
三行输出就是三种配方的一生:GE0/0/1 只认 VLAN 10;GE0/0/24 放行 10/20/30,PVID 是 1;GE0/0/2 出方向 VLAN 100 带标签、VLAN 10/20 撕标签。排障先看这张输出,八成的问题在这一步就现形了。
排障三板斧,抄走:
# 1. 看端口类型和 VLAN 归属
[Huawei] display port vlan
# 重点看 Link Type / PVID / VLAN 列表三列
# 2. 看 VLAN 和端口成员关系(反过来查)
[Huawei] display vlan 10
# 3. 看 Trunk 放行列表
[Huawei] display port vlan active
七、碰思科设备怎么办:名词对照表
我经手的项目里,华为、思科混着来是常事。两个体系名词不一样,行为基本对得上,背这张表:
华为/H3C | 思科 | 对应关系 |
port link-type access | switchport mode access | Access 对 Access |
port link-type trunk | switchport mode trunk | Trunk 对 Trunk |
port trunk allow-pass vlan | switchport trunk allowed vlan | 放行列表对放行列表 |
PVID(所有端口都有) | native VLAN(只管 Trunk) | 裸帧归属,默认都是 VLAN 1 |
Hybrid | (没有这东西) | 跨厂商对接用 trunk + native VLAN 近似模拟 |
跨厂商互联只有一条硬规矩:华为这边 Trunk 的 PVID 必须等于思科那边 Trunk 的 native VLAN。两边默认都是 1,但项目里常见有人把思科 native VLAN 改成别的做管理——对接前先核对,否则不带标签的流量全部进错 VLAN。
思科 Trunk 上 native VLAN 的帧是不带标签传输的,这点和华为 Trunk「PVID 那个 VLAN 撕标签」是一个动作,两个名字。
八、总结
Access 只认一个 VLAN、进出撕牌,接终端;Trunk 认多个 VLAN、只给 PVID 撕牌,接设备;Hybrid 每个 VLAN 单独定撕不撕,特殊场景专用。
再配一句华为特色忠告:新交换机上架,先把 display port vlan 跑一遍,确认每个端口的 Link Type 是你脑子里的那个模式。这条命令救过我三个下午。
注:转载文章来自于网络,版权归原作者或企业所有,侵删!