ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Access、Trunk、Hybrid三模式详解:从VLAN标签到eNSP实战

Access、Trunk、Hybrid三模式详解:从VLAN标签到eNSP实战 很多刚开始学交换机的朋友都会卡在同一个地方打开华为设备后配置 VLAN 时总被一个选择难住端口到底是设成 Access、Trunk 还是 Hybrid有人说“Access 接电脑Trunk 接交换机”也有人说“Hybrid 是华为主推的灵活模式”。听起来都有道理可一旦自己动手配问题就来了同一个 PVID为什么 Trunk 口发送时不带标签同一个端口为什么 Hybrid 里既能 untagged 又能 tagged如果只是背命令换一个拓扑基本就懵了。更麻烦的是在 eNSP 里做实验时命令敲完却 ping 不通也不知道该看哪里。我在给零基础学员讲这部分时最常用的一个判断是Access、Trunk、Hybrid 不是三种“设备类型”而是同一个本质——交换机端口如何对待 VLAN 标签——的三种配置策略。Access 让一个端口只属于一个 VLANTrunk 让一条链路能透传多个 VLANHybrid 则在同一个端口上为每个 VLAN 分别决定“带标签出去”还是“不带标签出去”。理解了这一点背什么命令都不难遇到问题也知道从哪里下手。这篇文章会先把 VLAN 标签、PVID、Tagged、Untagged 这些底层概念讲透然后逐个拆解三种模式的收帧、转发和发帧规则再用 eNSP 做一套零基础实操最后分享我在实际排查中总结出来的流程和坑点。看完之后你不需要再去搜“Access、Trunk、Hybrid 区别”这类问题因为你会自己判断。1. 先别急着敲命令VLAN 标签和端口模式的关系1.1 交换机为什么要用 VLAN 标签VLAN 的作用是把一个物理网络划分成多个逻辑广播域。两个不同 VLAN 的设备默认情况下二层不能直接通信这既提升了安全性也减少了广播报文的影响范围。但问题也随之而来如果交换机之间需要同时传输多个 VLAN 的流量难道要每个 VLAN 都拉一根物理线显然不现实。IEEE 802.1Q 解决了这个问题。它在标准以太网帧中插入一个 4 字节的 VLAN Tag里面最关键的字段是 VLAN ID范围是 1 到 4094。这个 Tag 就像给每个帧贴了一张“身份证”告诉交换机这个帧属于哪个 VLAN。这样一来多个 VLAN 的帧就可以在同一条物理链路上传输交换机靠标签来识别和转发。理解这个背景很重要因为 Access、Trunk、Hybrid 的差异本质上都围绕一个核心问题端口在收到帧、发送帧时到底要不要打标签、能不能通过、标签要怎么处理。1.2 端口对帧的处理收、转发、发三件套任何交换机端口在转发帧时都必须回答三个问题收到不带 802.1Q 标签的帧时怎么处理收到带标签的帧时怎么判断是否可以接收发送某个 VLAN 的帧时是保留标签发送还是先把标签剥掉再发送不同的端口模式就是对这些问题的不同回答。你可以把端口想象成一道门禁Access 口像一个“单员工门禁”只认一个工号进门必须刷成这个工号出门自动把工牌摘掉。Trunk 口像一条“主干道门禁”允许一批工号通行但其中默认工号对应的帧出门时会把工牌摘掉其它工号保留工牌。Hybrid 口更像一个“智能门禁”对每个工号可以单独设置摘牌还是留牌自由度最高但也最容易配乱。所以我不建议你死记“Access 是什么、Trunk 是什么”。你只需要在每次配置时问一句这个端口收到一个无标签帧时会放到哪个 VLAN发送某个 VLAN 的帧时带不带标签这两个问题一旦清晰三种模式的区别就自然出来了。判断端口模式时别只问“这是什么模式”要问“这个 VLAN 的帧在这个端口进出时哪些要带标签哪些要剥掉标签”。这是理解整个 VLAN 交换配置的核心。1.3 三个必须记住的名词PVID、Tagged、Untagged在配置端口时会频繁看到三个术语新手一定要提前理解PVIDPort VLAN ID端口的默认 VLAN ID。当交换机端口收到一个不带标签的帧时会把它当成 PVID 对应 VLAN 的帧并在内部打上这个 VLAN 的标签后转发。你可以把 PVID 理解成“无标签帧的默认归属”。Tagged VLAN发送该 VLAN 的帧时保留 802.1Q Tag这个帧在链路上依然带着 VLAN 身份信息。Untagged VLAN发送该 VLAN 的帧时剥离 802.1Q Tag让帧以普通以太网帧的形式到达对端设备。Access 口最简单它只有一个默认 VLAN并且发送帧时一定是 Untagged。Trunk 口默认 PVID 通常是 VLAN 1默认放行列表里也包含 VLAN 1但可以通过命令修改。Hybrid 口则可以在同一个端口上同时设置某些 VLAN 是 Untagged、某些 VLAN 是 Tagged。这三个概念不是孤立知识它们直接决定你在 eNSP 里配完命令后PC 能不能 ping 通。2. Access、Trunk、Hybrid 规则拆解同样一句话三种执行风格2.1 Access单 VLAN 的专用通道Access 端口一般情况下只允许一个 VLAN 通过这个 VLAN 通过port default vlan指定。华为交换机默认 Access 口的 PVID 就是 default vlan所以不需要额外配置 PVID。接收规则收到无标签帧给帧打上端口的 PVID 标签接收并转发到对应 VLAN 内部。这个行为很直接终端发来的普通帧进入交换机后就被归入某个 VLAN。收到有标签帧检查帧上的 VLAN ID 是否等于本端口的 PVID。如果相等就接收如果不相等直接丢弃。发送规则从 Access 口向终端发送帧时会先剥掉 VLAN 标签以 Untagged 形式发送。这样终端网卡收到的就是普通以太网帧不会看到 4 字节的 VLAN Tag也不需要额外配置。Access 口适合连接 PC、打印机、IP 电话等终端设备。但如果用 Access 口连接交换机通常会遇到一个问题这条链路上只透传一个 VLAN其他 VLAN 的流量无法通过。不是说 Access 口不能接交换机而是这种用法的基础网络设计通常不合理会造成端口和链路浪费。2.2 Trunk多 VLAN 的主干通道Trunk 端口的主要用途是连接交换机、路由器或防火墙让多个 VLAN 在同一条物理链路上传输。Trunk 口不再只属于一个 VLAN而是通过允许列表管理哪些 VLAN 可以通过。接收规则收到无标签帧打上本端口 PVID 对应的 VLAN 标签接收。由于华为交换机 Trunk 口默认 PVID 是 VLAN 1所以一台刚配置完的交换机上未打标签的帧进入 Trunk 口后通常会被归入 VLAN 1。如果要让某个 VLAN 作为这个口的“本征 VLAN”需要通过port trunk pvid vlan修改。收到有标签帧如果该 VLAN ID 在允许列表中就接收如果不在允许列表中就丢弃。默认情况下 Trunk 口只放行 VLAN 1所以新配 Trunk 口时一定要检查port trunk allow-pass vlan配置。发送规则对允许列表中的 VLAN如果该 VLAN ID 等于本端口 PVID则发送时剥掉标签以 Untagged 形式发送。如果该 VLAN ID 不等于本端口 PVID则保留标签以 Tagged 形式发送。这里有一个很容易忽略的细节Trunk 口发送 PVID 对应 VLAN 的帧时默认是剥掉标签的。也就是说假设一台交换机的互联口 PVID 是 VLAN 10那么对端交换机从这个口收到的 VLAN 10 帧是没有标签的普通帧。如果对端端口是 Access 且 default vlan 也是 10可能还能正常工作但如果对端期待的是带标签的 Trunk 帧两边就很可能互相不通。配置 Trunk 时不要只关注允许列表两端的 PVID 也一定要一致。这是很多“明明配置了 allow-pass vlan 还是 ping 不通”的常见原因。2.3 Hybrid每一条 VLAN 单独设置标签策略Hybrid 端口是华为交换机上比较有特色的模式也是很多学习者容易混淆的模式。它允许在同一个端口上对不同 VLAN 分别设置 Tagged 或 Untagged相当于把 Access 和 Trunk 的行为合到了一起。接收规则对无标签帧的处理和 Trunk 类似先打上端口 PVID 对应的 VLAN 标签再判断该 VLAN 是否在允许列表中。如果允许就接收不允许就丢弃。对有标签帧的处理更灵活。只要 VLAN ID 在允许列表中就会接收发送时则严格按照每个 VLAN 的 Tagged / Untagged 配置来决定是否保留标签。发送规则对于port hybrid untagged vlan里列出的 VLAN发送时会剥掉标签成为普通帧。对于port hybrid tagged vlan里列出的 VLAN发送时会保留标签让帧继续以 Tagged 形式在链路上传输。举个例子一个端口可以这样配置interface GigabitEthernet0/0/3 port link-type hybrid port hybrid pvid vlan 10 port hybrid untagged vlan 10 port hybrid tagged vlan 20这条配置的含义是这个端口收到无标签帧后会打上 VLAN 10 的标签发送 VLAN 10 的帧时不带标签发送 VLAN 20 的帧时带标签。也就是说这个端口既能像 Access 口一样接一个普通终端又能像 Trunk 口一样把 VLAN 20 的流量以 Tagged 形式透传出去。Hybrid 的灵活性很高但也意味着配置必须更仔细。尤其在别人维护的网络里如果每个端口都设置了一大堆 untagged / tagged 列表查起问题来会非常吃力。2.4 三种模式对照表为了方便记忆我把三种模式在常用场景下的行为整理成一张表对比项AccessTrunkHybrid默认 PVID等于 default vlan通常手动指定VLAN 1可修改可以通过 port hybrid pvid 修改允许 VLAN 数量通常一个多个通过 allow-pass vlan 控制多个通过 untagged/tagged 列表控制接收无标签帧打上 PVID 标签接收打上 PVID 标签接收打上 PVID 标签接收接收有标签帧只接收 VLAN ID 等于 PVID 的帧接收允许列表中的 VLAN接收允许列表中的 VLAN发送帧是否带标签一定不带标签PVID 对应 VLAN 不带其他带看每个 VLAN 的 untagged/tagged 配置典型用途接 PC、打印机等终端交换机之间、路由器子接口华为此特性下需要同时带/不带标签的灵活接入这张表不需要死记。你只需要记住 Access 最单纯Trunk 是“一个 PVID 多个允许 VLAN”Hybrid 是“多个 VLAN 各自设置标签策略”。在实际项目中把握住“什么场景用哪种模式”比背规则更重要。3. eNSP 实操从零开始把三种模式跑通3.1 准备工作eNSP 环境和启动 AR 失败排查eNSP 是华为官方推出的网络模拟器用来练习交换机、路由器配置很合适。零基础可以先下载最新版本然后安装 VirtualBox 和 Wireshark 等依赖组件。安装时要注意如果电脑上已经有旧版本 VirtualBox最好先卸载干净否则容易出现兼容性冲突。很多人在 eNSP 里启动路由器或交换机时会遇到“启动设备 AR1 失败 40”或“错误代码 40”。这个问题的常见原因有几类电脑没有开启 CPU 虚拟化需要进入 BIOS 开启 Intel VT-x 或 AMD-V。VirtualBox 版本和 eNSP 版本不兼容。电脑内存不足设备同时启动数量太多。eNSP 没有以管理员身份运行。解决办法通常是先重启电脑进 BIOS 开启虚拟化再卸载重装匹配版本的 VirtualBox最后用管理员身份打开 eNSP。如果仍然失败可以右键点击设备选择“停止”再逐个启动设备不要一次性启动太多。3.2 搭建最小拓扑这次实验我们用一个最简单但很完整的拓扑PC1 ── [S1] ── [S2] ── PC2S1 和 S2 使用 eNSP 里的 S5700 系列交换机。PC1 连接 S1 的 Ethernet0/0/1S1 的 Ethernet0/0/2 连接 S2 的 Ethernet0/0/2PC2 连接 S2 的 Ethernet0/0/1。接口编号可能因为设备型号不同略有差异但 eNSP 中通常都能在拓扑图上看到。打开设备后进入系统视图system-view如果你希望交换机有更清晰的名字可以执行sysname S13.3 实验一Access 模式验证同 VLAN 互通先在 S1 上创建 VLAN 10 和 VLAN 20然后配置连接 PC1 的接口为 Access并划入 VLAN 10vlan batch 10 20 interface Ethernet0/0/1 port link-type access port default vlan 10接着配置连接 PC2 的接口为 Access并划入 VLAN 20。这里需要注意如果你的 PC2 连接在 S1 的另一个接口上可以直接用 Ethernet0/0/3如果按照我们的拓扑PC2 在 S2 上那么 S2 也需要做类似配置。为了实验简单你可以先在 S1 上接两台 PC都用 Access 口分别属于 VLAN 10 和 VLAN 20。配置完成后给两台 PC 设置同一个网段的 IP比如PC1192.168.10.1 / 24PC2192.168.10.2 / 24这时你会发现PC1 和 PC2 虽然 IP 在同一个网段但默认情况下 ping 不通。原因就是两台 PC 所在的 Access 口分别属于 VLAN 10 和 VLAN 20二层广播域被隔离了。随后把 PC2 所在接口的 default vlan 改成 10interface Ethernet0/0/3 port link-type access port default vlan 10再 ping 一次就通了。这个实验能很直观地让你理解Access 口划分 VLAN 后二层是否互通并不只看 IP 网段还要看 VLAN 成员关系。3.4 实验二Trunk 模式跨交换机透传多 VLAN现在把拓扑恢复成两台交换机PC1 接 S1PC2 接 S2。为了让两个交换机上的 VLAN 10 能够互通同时 VLAN 20 也能透传我们需要把 S1 和 S2 的互联口配置成 Trunk。在 S1 上interface Ethernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20在 S2 上同样配置interface Ethernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20同时S1 上连接 PC1 的接口继续属于 VLAN 10S2 上连接 PC2 的接口也属于 VLAN 10。也就是# S2 上 interface Ethernet0/0/1 port link-type access port default vlan 10配置完成后PC1 和 PC2 都使用 192.168.10.0/24 网段的 IP相互 ping 通。这就验证了 Trunk 口可以让同一个 VLAN 跨交换机透传。如果你还想验证多个 VLAN只需要在 S2 上再接一台 PC3把它划入 VLAN 20然后在 S1 上也接入一个 VLAN 20 的 PC4。只要 Trunk 口放行了 VLAN 20PC3 和 PC4 就可以互通。3.5 实验三Hybrid 模式控制标签行为Hybrid 的配置比前两种稍微复杂一些但非常值得练习。我们用一个简化场景S1 的 Ethernet0/0/3 接口连接一个普通终端 PC3同时要让 VLAN 20 的帧从这个口以 Tagged 形式发送给另一台设备。这个配置用 Access 做不到用 Trunk 又会让 VLAN 10 的帧也带标签于是用 Hybridinterface Ethernet0/0/3 port link-type hybrid port hybrid pvid vlan 10 port hybrid untagged vlan 10 port hybrid tagged vlan 20配置完成后可以这样理解从 PC3 发来的无标签帧进入端口后被划入 VLAN 10。交换机向该端口发送 VLAN 10 的帧时不带标签PC3 能正常识别。交换机向该端口发送 VLAN 20 的帧时带标签对端如果支持 VLAN 标签就能进一步处理。这个实验建议你在 eNSP 里开启抓包观察两种 VLAN 的帧在链路上的区别。虽然抓包在模拟器里偶尔会提示失败但只要链路状态正常通常都能看到 802.1Q Tag 字段。3.6 用 display 命令验证配置做完实验后查看配置不要只靠“感觉能通”要养成用命令验证的习惯。常用命令如下display vlan这个命令可以查看当前交换机上创建了哪些 VLAN每个 VLAN 包含哪些端口。display port vlan这个命令可以查看端口的工作模式、PVID、允许的 VLAN 列表是排查模式问题最直接的命令。display interface Ethernet0/0/2这个命令可以查看端口状态、协商速率、双工模式、收发报文统计等。display current-configuration interface Ethernet0/0/2如果只想看某个端口的完整配置用这个命令最清晰。在 eNSP 里做完实验最好先把配置保存到本地启动配置文件否则关闭工程后设备配置可能会丢失。真实交换机也同样需要执行 save 保存。4. 理解边界三种模式怎么选以及坑在哪里4.1 选型判断不是越灵活越好学习时容易产生一种错觉既然 Hybrid 又能配 untagged 又能配 tagged是不是以后都用 Hybrid 好了但工程实践里不是这样。模式越灵活配置越复杂出问题时排查越困难。我的建议是连接终端设备优先用 Access。终端不需要看到 VLAN 标签Access 口简单、明确、不容易出错。交换机与交换机之间、交换机与路由器之间需要透传多个 VLAN 时用 Trunk。这是最常见的主干链路方案。只有在一个端口既需要接普通终端又需要让某种 VLAN 流量以 Tagged 形式上送时才考虑 Hybrid。而且配置前要先把 untagged / tagged 的 VLAN 列表在纸上列出来再敲命令。如果你刚学完基础先不要追求“一个端口解决所有问题”。把 Access 和 Trunk 用熟练已经能覆盖大多数工作场景。Hybrid 更像一个“补充工具”用来处理那些标准模式覆盖不了的特殊需求。4.2 最容易被忽略的 5 个坑我在学习和排障过程中见过太多人栽在这几个细节上这里集中说一遍。第一个坑Access 口收到带标签帧时不是所有带标签帧都丢。它只接收 VLAN ID 等于 PVID 的帧其他 VLAN 的帧会丢。如果你把两个 Access 口对接并且 PVID 恰好一致某些流量可能就通了但其他 VLAN 直接不通拓扑稍复杂就很难排查。第二个坑Trunk 口发送 PVID 对应 VLAN 时默认剥标签。很多新手以为 Trunk 口发出的帧全部带 Tag其实不对。只要 VLAN ID 等于 PVID华为 Trunk 口默认就会把它转成 Untagged。如果对端端口期待的是 Tagged 帧就会出现“配置看起来都对但就是不通”的情况。第三个坑Hybrid 的默认 untagged / tagged 列表容易被忽略。不同版本、不同端口默认状态可能不一样。配置之前先执行display port vlan看清当前状态再决定怎么改。第四个坑配置没保存。eNSP 里重启设备配置可能全丢真实交换机重启也会回到启动配置。实验和项目现场都必须记得save。第五个坑改端口模式时原来的配置不会自动清除。从 Access 改成 Trunk 后之前 Access 口设置的port default vlan可能仍然存在只是不再生效有些配置还会和新配置冲突。所以改模式后习惯性再用display this看一下当前接口完整配置。4.3 排查链路ping 不通从哪里开始查当 PC 之间 ping 不通不要急着怀疑配置写错了。按照下面这个链路顺序排查效率会高很多看端口状态。用display interface确认物理口是 Up 还是 Down。如果 Up再看端口有没有收发包计数。看 VLAN 是否创建。用display vlan确认相关 VLAN 已经创建并且端口已经加入。看端口模式。用display port vlan确认 Access 口的 default vlan、Trunk 口的 allow-pass vlan、Hybrid 口的 untagged/tagged 列表是否符合预期。看 PVID 是否一致。如果是 Trunk 互联两边的 PVID 要一致如果一边改过 PVID另一边没有就会导致标签处理不匹配。看终端配置。PC 的 IP、掩码、网关是否配置正确是否处于同一个 VLAN。看二层策略。是否存在端口隔离、ACL、风暴控制、DHCP Snooping 等影响转发的配置。看抓包。eNSP 里可以开启抓包确认链路上的帧是否带 VLAN Tag这往往能直接定位问题。这个排查顺序核心思路是“先确定哪一层坏了再决定修哪里”。不要一开始就怀疑设备坏了或者模拟器有问题大多数问题都出在配置逻辑上。4.4 从模拟器到真机的差异eNSP 能帮你建立思维模型但它毕竟是模拟器和真实设备之间还有距离。真机上有光口、电口、自协商、光模块、链路聚合、生成树等机制模拟器里不一定能够完全复现。比如真实交换机端口协商成百兆还是千兆会受网线质量、对端端口能力的影响eNSP 里则没有这个物理概念。所以用 eNSP 学完只能说明你理解了配置逻辑。真正上真机前还要熟悉设备型号的差异、命令的兼容性以及现场物理链路的状态确认。不要因为模拟器里通了一次就以为真机一定没问题。5. 关于 eNSP 和端口模式这些常见问题很耽误人5.1 eNSP 启动设备失败怎么快速处理除了前面提到的“启动设备 AR1 失败 40”还有一个常见现象是设备启动后显示#号一直不进入命令行。这通常是设备启动慢或者内存不足。可以尝试只启动当前实验需要的设备不要一次开太多。如果问题依旧关闭 eNSP 后重新打开工程。有些电脑上安装 eNSP 后打开拓扑时会提示“启动设备失败”但其他软件都正常。这种情况优先检查 VirtualBox 服务是否正常。在 Windows 服务里找到 VirtualBox 相关服务手动启动一次再打开 eNSP。如果遇到进程崩溃比如process exited with code 3221225477这本质是内存访问异常常见于模拟器与当前系统环境不兼容。试试升级 eNSP 版本或者卸载旧 VirtualBox 后安装匹配版本。5.2 怎么看交换机的端口识别到了百兆还是千兆这个热搜词说明很多人还会遇到速率协商问题。在真机上查看端口当前速率用display interface GigabitEthernet0/0/1输出里的 Speed 字段会显示当前速率比如 100M 或 1000MDuplex 字段显示双工模式。如果发现速率不对先检查两端端口是否都开启自协商再检查网线是不是至少超五类最后看对端设备端口是否有限速或 shutdown 配置。eNSP 里没有真实物理协商过程但这条命令同样可以练习。真机上如果端口从千兆协商成千兆通常链路是正常的如果协商成百兆就要从物理层开始排查。5.3 实验后配置丢失或忘记保存eNSP 里如果关闭工程前没有保存再次打开时可能回到初始状态。真实交换机重启后如果之前没有save运行配置也会全部丢失。建议每次完成配置后在用户视图下执行save系统会提示确认文件名直接回车即可。这个习惯在实验室和真实项目里都非常重要。5.4 学习时不要被搜索热词带偏“Access”这个词在搜索引擎里很容易混进 Access 数据库、access denied 报错、Access Token 这类完全不相干的内容。如果你是在学交换机看到access denied或者your access token could not be refreshed先不要慌那大概率是其他软件或 Web 系统的问题和交换机端口模式没有关系。遇到报错时最关键的是先判断报错来自哪个层面是 eNSP 工具本身、是网络设备命令行、还是 PC 终端。不同层面的问题排查方向完全不同。5.5 排除完模式问题还要看生成树和端口隔离有时候 Access、Trunk、Hybrid 都配正确了但 VLAN 间依然不通。这时要检查交换机是否开启了端口隔离比如某些华为交换机默认在同一个 VLAN 内使用port-isolate enable会导致同一 VLAN 端口之间互相隔离。还要检查生成树协议是否把端口阻塞了特别是接 PC 的端口如果启用了环路保护也可能导致无法转发。这些内容可以暂时不深入但当你发现“配置没问题就是不通”时要意识到端口模式只是二层链路的一部分不是全部。说回最开始的问题Access、Trunk、Hybrid 三者到底有什么区别现在你应该更能理解了。它们不是三个孤立的命令而是同一个 VLAN 标签处理策略在端口上的三种实现方式。Access 让端口只属于一个 VLANTrunk 让一条链路承载多个 VLANHybrid 则允许在同一个端口上为不同 VLAN 单独设置标签策略。对零基础来说最有效的学习路径不是反复看教程而是打开 eNSP 把三种模式各配一遍通一次再故意配错一次看它到底怎样不通。只有亲手遇到过“为什么这里不带标签”“为什么 PVID 不一致就 ping 不通”这些规则才会变成你自己的经验。下一步建议你从 Access 实验开始先建两台 PC 和一台交换机跑通一个 VLAN 的互通再逐步加上 Trunk 和 Hybrid。这个投入很小但对后面理解 VLAN 间路由、生成树、链路聚合都很有帮助。网络这个东西很多概念听起来复杂真正动手之后你会发现它不过是一套有逻辑的规则。
返回列表