news 2026/10/22 11:00:54

二层交换核心:VLAN划分、Access口与Trunk口实战详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二层交换核心:VLAN划分、Access口与Trunk口实战详解

我接手过不少入门网络的同事和学员,大家几乎都会卡在同一个地方:基础概念好像都懂,但一进真机就懵。尤其是到了路由交换这部分,VLAN怎么划分、Trunk怎么放行、同一台设备上不同VLAN为什么不能互相访问,这些细节不掰扯清楚,后面学ACL、学路由协议、学堆叠,全都会觉得地基是歪的。这篇咱们就顺着HCIA基础网络知识系列的节奏,把二层交换里最核心的这块内容一次讲透,全程用实际组网的思路走一遍,不带半点虚的。

这篇内容面向刚接触华为设备、正在备考HCIA、或者工作中需要自己动手调试交换机的人。我尽量用大白话把“广播域为什么要切分”“Access口和Trunk口到底有什么区别”“配置命令背后的逻辑是什么”讲明白。你会发现,只要把这几件事理解了,再去看官方文档里的配置手册,基本就是顺水推舟。

1. 二层网络里最大的坑:广播域

1.1 为什么一台交换机就能把网络搞瘫

很多初学者觉得,交换机嘛,比集线器聪明,知道MAC地址,会按地址转发,那二层网络是不是就没什么可担心的了?真不是。交换机转发单播帧确实精准,但有一种流量它没办法精准转发,那就是广播帧。只要目的MAC是全F,交换机除了接收端口以外,所有端口都得复制一份发出去。你办公室有100台电脑,随便一台发一个ARP广播,其他99台都得收一遍。

单台交换机广播也就罢了,问题是交换机之间还会相互转发。你一台交换机接着一台,广播帧就顺着Trunk口在整个园区网里到处跑。设备多了以后,广播包占比会越来越高,极端情况下网络里全是广播,正常的数据帧反而发不出去,这就是广播风暴。

我当年在某个集成项目里就真遇到过一回。某公司办公区三百多台终端,网络偶尔会突然卡死,Ping网关延迟从1ms跳到上千ms。查了半天,最后发现是有人私接了一台小交换机,没有做任何VLAN划分,整个办公室被广播报文塞满了。那就不得不重新规划VLAN,把大广播域切成小块。

1.2 冲突域和广播域,别再傻傻分不清

很多教材喜欢把冲突域和广播域放在一起讲,本身是为了对比记忆,但初学者经常搞混。这里说个最朴素的区分方法。

冲突域形容的是“同时只能有一个设备发数据”的范围。老式的同轴电缆总线型网络,或者用集线器组建的网络,所有端口都在同一个冲突域里,两台机器同时发数据就会撞车。交换机每个端口独立带宽,冲突域被打破了,每个口基本可以认为是独立通道。

广播域形容的是“广播报文能传到多远”的范围。只要二层设备没有做隔离,广播帧走到哪,广播域就到哪。交换机会转发广播,默认情况下所有端口都在同一个广播域里。要缩小广播域,就得靠VLAN把端口逻辑分组。

打比方说,冲突域像一条单车道土路,所有车挤在一起走,对面来车就得互相让。广播域像一个大喇叭广播站,只要在覆盖范围内,所有人都能听到广播。交换机解决了土路堵车的问题,但没解决大喇叭扰民的问题,广播域还得靠VLAN来管。

注意:路由器和三层交换机可以隔离广播域,但纯二层交换机不行。所以,就算你用一百台二层交换机串联,广播域依然是一整个。

1.3 VLAN出现的时机,恰恰是网络变慢的时候

VLAN全称是Virtual Local Area Network,虚拟局域网。它做的事情说起来很简单,就是在一台物理交换机上,把端口划分成好几个逻辑组。不同组的设备虽然插在同一台交换机上,但它们之间二层是隔离的,广播帧不会跨组转发。

早期的办公网络没那么大,几十台机器放在一个网段里,也不怎么卡。后来设备多了,ARP、NetBIOS、各种服务发现协议天天发广播,网络质量直线下降。有工程师就想,能不能像用路由器隔离广播域那样,把一个大网络切成几块?但路由器太贵,而且转发的瓶颈太明显。VLAN应运而生,成本低,灵活,在交换机内部就能完成隔离。

这个思路放到今天依旧高效。现在很多公司一个楼层一个VLAN,财务部、研发部、人事部各管各的,不光广播减少了,安全上也舒服了很多——毕竟二层隔离能挡住不少直接扫描内网的行为。

2. 先把VLAN的关键机制说透

2.1 VLAN ID,以及Access口和Trunk口的区别

VLAN ID是VLAN的身份证,范围是1到4094,其中0和4095保留。这个范围来自802.1Q标准,就是它在以太网帧头里插入了4个字节的Tag,其中有12个bit用来存放VLAN ID,2的12次方正好是4096。这个Tag是VLAN能跨交换机传输的基础,交换机通过识别Tag,才知道这个帧属于哪个VLAN。

端口类型是理解配置的关键。日常用得最多的就是Access口和Trunk口。

Access口主要接终端设备,比如电脑、打印机、IP电话。它只属于一个VLAN,发出去的数据帧不带Tag,收到的帧如果没有Tag,就按这个端口所属的VLAN来处理。用行话讲,就是Access口会打上PVID对应的VLAN,然后剥离Tag转发。

Trunk口主要接交换机、路由器子接口,它可以同时承载多个VLAN的流量。Trunk口默认会放行VLAN 1,其他VLAN需要额外允许。帧在Trunk口上传输时,是带着Tag走的,这样对端交换机才知道该把它归给哪个VLAN。

新手最容易错的地方,是把Access口当成“也能传多个VLAN”的口,或者把Trunk口当成“不用配VLAN放行”的口。这两种想法都会出问题。

2.2 PVID到底是什么,别把它和VLAN ID搞混

PVID,Port Default VLAN ID,端口默认VLAN。它表示的是:如果数据帧进入这个端口时没有携带Tag,交换机就默认这个帧属于哪个VLAN。

对Access口来说,端口所属的VLAN和PVID是同一个,手动配置的时候通常一起生效。对Trunk口来说,PVID默认是VLAN 1,而且Trunk口的PVID是可以修改的,Trunk口会把PVID对应的那个VLAN在发送时去掉Tag。

说个常见应用场景。交换机和路由器之间用Trunk连接,物理链路只有一条,但要走多个VLAN的流量。路由器的物理口不够用,就可以在路由器上配子接口,比如GigabitEthernet0/0/1.10封装dot1q vid 10,GigabitEthernet0/0/1.20封装dot1q vid 20。这种“单臂路由”的组网里,Trunk口上VLAN 10和VLAN 20的帧都需要打Tag进入路由器,但在交换机侧如果PVID配错了,很可能导致某些帧被错误地贴上了别的VLAN标签,通不通就看命了。

我这里给个容易记的经验:Trunk口的PVID只对“不带Tag的帧”有意义。如果上行流量本身就带着Tag,PVID并不会覆盖原有标签。

2.3 交换机转发数据帧时,脑子里到底在想什么

把转发逻辑拆成三步就清楚了。

第一步,接收帧,看端口类型。如果是Access口,帧进入时如果没有Tag,就贴上这个端口所属VLAN的Tag。如果有Tag,就看这个Tag和端口所属VLAN匹配不匹配,不匹配就丢弃。如果是Trunk口,帧进入时如果没有Tag,就按PVID贴标签。如果有Tag,就看这个VLAN是否在Trunk口的允许列表里,不在就丢弃。

第二步,查MAC地址表。MAC地址表记录的是“某个MAC地址从哪个端口学到的”。交换机根据目的MAC查表,查到就按表转发,查不到就广播泛洪。

第三步,决定出口怎么处理。如果出口是Access口,帧发出时去掉Tag,变成普通以太网帧。如果出口是Trunk口,看这个帧的VLAN是否在允许列表里,不在就丢弃,在就保留Tag发送。

这个流程看着简单,但实际排障时非常有用。不同VLAN不通、跨交换机同VLAN不通、配置了VLAN但是终端上不了网,十有八九都能在这三步里找到原因。

3. 实操配置:从零划分一个多VLAN办公网

3.1 组网需求与规划思路

为了演示,咱们模拟项目X。某公司有三层楼,每层一个部门,要求逻辑隔离,各部门独立网段。设备有一台核心交换机(三层),两台接入交换机(二层),每层楼的终端就近接入对应交换机。

规划信息可以这样定:

楼层部门VLAN ID网段网关
1层前台与访客10192.168.10.0/24192.168.10.1
2层行政财务20192.168.20.0/24192.168.20.1
3层研发运维30192.168.30.0/24192.168.30.1

接入交换机分别接一楼的终端、二楼的终端、三楼的终端,再用Trunk口上联核心交换机,核心交换机启用VLANIF接口充当各VLAN的网关。这个组网思路很常见,练会了基本能应对中小型办公网的搭建。

提示:VLAN ID不一定要跟网段第三位对应,但强烈建议规划时至少保证“VLAN ID —— 网段 —— 用途”三者好记,不然后期运维排查能在地址对应上浪费大量时间。

3.2 接入交换机配置:Access口和Trunk口的命令行写法

接入交换机上,先把VLAN建好。华为设备的命令很直接。

system-view sysname Switch-Access-1 vlan batch 10 20 30

vlan batch 是为了批量创建,不用一条条敲 vlan 10、vlan 20、vlan 30,效率高很多。

接下来把连接终端的端口配成Access口,并划入对应VLAN。假设终端接的是GigabitEthernet0/0/1到GigabitEthernet0/0/10,命令如下。

interface GigabitEthernet0/0/1 port link-type access port default vlan 10

如果终端口比较多,可以用端口组批量处理,省得一个一个敲:

port-group group-member GigabitEthernet0/0/1 to GigabitEthernet0/0/10 port link-type access port default vlan 10

接着把上联核心交换机的口配置为Trunk,并且放行相应VLAN。假设上联口是GigabitEthernet0/0/24。

interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30

注意,华为设备上如果没有特别指定,Trunk口默认放行VLAN 1。上面这条命令并不会自动覆盖默认放行列表,而是把10、20、30追加进去。如果你只想让特定的几个VLAN通过,可以先执行 port trunk allow-pass vlan none,再执行 allow-pass vlan 10 20 30,更干净。

3.3 核心交换机配置:VLANIF网关和Trunk承载

核心交换机需要创建同样的VLAN,配置VLANIF作为网关,同时用Trunk口下联接入交换机。

先创建VLAN,再把下联口设为Trunk:

system-view sysname Switch-Core vlan batch 10 20 30 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30

然后进入对应VLAN,配置IP地址:

interface Vlanif 10 ip address 192.168.10.1 255.255.255.0 interface Vlanif 20 ip address 192.168.20.1 255.255.255.0 interface Vlanif 30 ip address 192.168.30.1 255.255.255.0

到这一步,各VLAN内的终端把网关指向对应的VLANIF地址,同一个VLAN内互通,不同VLAN之间需要三层转发,但三层路由表是直连路由,只要终端网关配置正确,核心交换机本身就能转。

如果想限制部门互访,后面再配ACL做策略,那是下一个阶段的内容。现在先把二层的底子打通。

3.4 验证配置效果,不能只看乍一看能通

配完以后必须验证。华为设备上最常用的三条命令是display vlan、display port vlan、display mac-address。

display vlan 可以看到交换机上已有的VLAN、对应端口、接口类型。display port vlan 可以看到每个端口当前的链路类型、PVID、允许通过的VLAN。display mac-address 看MAC地址表,如果终端上线了,对应VLAN应该能看到学习到的MAC条目。

我自己的习惯是,先看端口VLAN状态,确认Access口归属正确;再Ping网关,确认三层通;接着跨VLAN Ping,确认核心交换机VLANIF配置无误;最后再测一下广播是否被隔离——怎么测呢,VLAN 10里的电脑发广播,VLAN 20的电脑不该收到,在Wireshark里看有没有对应广播帧就行。

用一台电脑配置IP为192.168.10.2,网关192.168.10.1,另一台电脑配置IP为192.168.20.2,网关192.168.20.1。两台都Ping自己的网关通了,说明二三层基本OK。接着从VLAN 10的电脑Ping VLAN 20的网关,正常应该通,因为核心交换机会做三层转发。如果通了但不该通的场景,比如访客VLAN能访问财务VLAN,那后面就要靠ACL接口策略来限制。

注意:终端改了IP和网关以后,如果之前系统里有旧的ARP缓存,可能第一下Ping不通。正常现象,清一下ARP缓存或者等它老化就行,别急着改配置。

4. 实战中经常翻车的几个场景

4.1 配置了VLAN之后,终端反而上不了网

这个情况太常见了。第一天直连交换机好好的,划分VLAN之后电脑就获取不到IP,或者获取到了也Ping不通网关。

排查思路分两步。第一步看电脑接的端口类型和PVID,确认是不是Access口且划入了正确VLAN。华为设备上可以用display port vlan查到端口的PVID。第二步看VLANIF是否创建,IP地址是否正确。很多人在核心交换机上只创建了VLAN,但没有进interface Vlanif 10配IP,那这个VLAN就没有网关,终端当然上不了网。

还有一种情况,电脑没设IP,走DHCP获取。DHCP的请求是广播帧,Access口把广播打上PVID标签后,交换机就会在对应VLAN内转发。如果VLANIF没配IP,说明VLAN的三层接口根本不存在,DHCP服务器就算在同一台交换机上,也可能收不到请求。所以排查DHCP问题之前,先把每个VLANIF的IP都确认一遍。

4.2 跨交换机相同VLAN不通

两台接入交换机都配置了VLAN 10,各自下面都有终端,但A交换机下的终端Ping不通B交换机下的终端。

大多数情况是Trunk口配置问题。Trunk口没有放行VLAN 10、对端Trunk口配置不一致、或者两台交换机上VLAN ID本身就不一样(比如一台用的是10,另一台不小心建成了20),都会导致二层不通。

排查时先看两端Trunk口的allow-pass列表,可以用display port vlan看Trunk口允许的VLAN列表。重点确认两端列表一致,VLAN ID一致。再一个容易被忽略的点:Trunk链路两端的PVID如果被改成不一致的值,不带Tag的帧可能被错误归类,导致通信异常。标准做法是Trunk口两端PVID保持一致,没事别乱改。

4.3 把Trunk口当成Access口用,导致VLAN信息丢失

有人为了方便,把交换机级联的口直接配成Access口,然后归属某个VLAN。这样下一级交换机发出的帧只有一种VLAN标签,链路再往上走时,其他VLAN的流量就全丢了。

这种情况常见于临时接线或图省事。一台交换机如果同时下面还有好几个VLAN的终端,它和上级之间的链路必须是Trunk,这是硬性要求。强行用Access口级联,信号能通,但VLAN隔离会退化成单VLAN模式。

真遇到这种组网,正确解法是先把级联口改成Trunk,放行所有需要的VLAN,然后再逐一确认下级交换机的Access口归属。

4.4 排查工具和手法:先看端口状态,再抓包,别盲目重启

设备不通,别一上来就重启交换机,重启往往掩盖了真实原因。推荐按顺序排查。

先看物理状态,display interface brief,有没有端口Down,协商速率正不正常,有没有大量错包。再看端口VLAN状态,display port vlan,确认链路类型、PVID、允许VLAN。再看MAC地址表,display mac-address vlan 10,确认终端MAC是否被正确学习。如果MAC表里没有对应条目,大概率是端口类型或PVID问题。最后如果还查不出来,在关键链路上抓包,看帧有没有携带正确的VLAN Tag,有Tag没Tag一眼就能看出来。

有一次我在某现场排查一个“时通时不通”的故障,查了半小时没结果。后来抓包发现,交换机发出的一帧带有VLAN 10 Tag,但中间经过了一台傻瓜交换机,它不知道这个Tag是什么,直接按二层转发把Tag剥了或者处理错了,导致对端交换机以为这是VLAN 1,然后就出现了间歇性不通。这就是Trunk链路中间串入了不支持VLAN的设备,属于硬伤,排查思路很重要,别一根筋只查配置。

5. 学完VLAN之后,下一步怎么走

5.1 紧接着要啃的是STP

有了VLAN,二层网络能隔离广播域了,但链路冗余问题也跟着来了。公司网络里为了保证可靠性,交换机之间往往不止一条物理链路,这就会出现物理环路。没有环路协议,广播帧会在环路里无限转发,直接打满带宽。

STP(Spanning Tree Protocol)就是用来解决这个问题的。它会让交换机之间通过BPDU协商,选出一个根桥,然后阻塞某些冗余端口,逻辑上把环路打断。华为设备上默认开启了STP或RSTP,但很多初学者根本没意识到它的存在,直到手动配置链路聚合时才发现STP在背后捣乱。

建议学完VLAN以后,马上去看STP/RSTP的工作原理、端口角色、端口状态迁移。这些东西理解了,后面排环路故障会非常从容。

5.2 跨VLAN通信要进一步提升,得接触路由

VLANIF是三层交换机的内置网关,适合小规模组网。但网络规模一大,不同业务之间可能不在同一台三层设备上,甚至跨越多个网段,这时候就得靠动态路由协议,比如OSPF。

HCIA的基础网络知识里,路由协议是后半程的重点。很多人在VLAN阶段以为“能Ping通就完事”,但真实网络要解决的问题更多:路径选择、路由优先级、负载分担、故障收敛。学路由一定要跟实验结合,用华为模拟器或者真机搭一个三台路由器互联的环境,多看看路由表怎么变的。

5.3 安全控制别忘了ACL

VLAN天然隔离了二层广播,但同一VLAN内部的访问控制它管不了。比如财务部和行政部虽然分属不同VLAN,三层互通之后,如果不想让行政部访问财务部服务器,光靠VLAN是挡不住的。

这时候需要ACL,访问控制列表。它可以在接口上配置入方向策略,通过匹配源IP、目的IP、协议端口号做允许或拒绝。HCIA阶段要求你会写基本的ACL规则,知道inbound和outbound的区别,会把它应用在接口上,并且能理解匹配顺序是自上而下、一旦命中就停止匹配。

ACL本身不难,但很多人上手就忘掉了一个细节:ACL规则里隐含的deny any。如果你写了允许某台主机访问,但后面忘了放行其他流量,应用策略后可能导致该接口上的所有其他流量全被丢弃。所以练习ACL时,多在真机上验证,多看看提示信息。

最后还是分享点个人体会

VLAN这部分,从我带新人的经验看,最大的难点不在命令,而在于脑子里有没有一张“帧从进到出经历了什么”的流程图。你什么时候能把Access口、Trunk口、PVID、VLAN Tag这些概念像放电影一样在脑子里串起来,什么时候配置就再也不会犹豫了。

我建议你拿到设备后,别急着敲命令,先画一张简单的拓扑图,标明哪台是核心、哪台是接入、哪些口接终端、哪些口是级联,然后亲手从头配置一遍。遇到不通的时候,别怕,那正是长经验的好时机。先看端口状态,再看MAC地址表,顺着帧的路径一段一段查,绝大多数问题都能在十分钟内定位。这是我个人最推崇的排障方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 11:00:18

从马具到工程外壳:理解Harness如何为流程套上缰绳

第一次在项目的构建目录里看到“Harness”这个名字时,我第一反应是:这跟马具有什么关系?后来翻了半天文档,才发现它在工程语境里指的是“外壳”——一套把工具、命令、检查点组织起来,让整个流程可以被复用、被约束、被…

作者头像 李华
网站建设 2026/10/22 10:58:28

Docker Compose部署Harbor私有镜像仓库全流程实操与避坑指南

部署一个私有镜像仓库这种事,我印象里每次都有人卡在同一批坑上。这次我用 docker-compose 在云主机上完整部署了最新版 Harbor v2.3.4,从离线安装包下载、自签名证书生成、harbor.yml 配置,到 prepare 脚本、docker-compose up -d 全流程走完…

作者头像 李华
网站建设 2026/10/22 10:55:24

OpenCode 终端 AI 编码助手:从安装到自定义 Agent 实战指南

我刚开始接触 OpenCode 的时候,其实并没有抱太高期待。AI 编程助手我前前后后试过不少,编辑器的、独立客户端的、各种插件拼装出来的“全家桶”方案都有,但用下来的感觉就是,真正干活的时候,总得在好几个窗口之间来回切…

作者头像 李华
网站建设 2026/10/22 10:53:02

异构固定翼无人机集群协同搜索与自适应避障的Matlab实现

前阵子把一套异构固定翼无人机集群协同搜索方法在Matlab里完整跑通了。简单说,这套方法解决的是这么一个问题:有多架气动参数和传感器配置都不一样的固定翼无人机,在部分已知、部分未知的复杂环境里,要在某个区域内搜索目标&#…

作者头像 李华
网站建设 2026/10/22 10:53:01

以太网底层原理与真实排障实战指南

1. 这不是“背题库”,而是重建以太网认知的起点很多人看到“思科答案参考”四个字,第一反应是找标准答案、划重点、突击刷题——这恰恰踩进了最危险的认知陷阱。我带过十几期网络基础实训班,几乎每期都有学员考前狂背“以太网帧结构各字段长度…

作者头像 李华
网站建设 2026/10/22 10:52:59

白盒漏洞AI运营实战:从扫描报告到修复工单的自动化闭环

如果你所在的安全团队也背着“白盒漏洞”的KPI,那你大概率经历过这种场景:周三早上,静态扫描任务刚跑完,工单列表里一下子多出两三百条待处置的漏洞记录。每一条都要打开看代码上下文、判断触发路径、确认是否误报、想修复方案、再…

作者头像 李华