华为交换机VLAN配置实战:从广播域隔离到跨VLAN通信

发布时间:2026/10/18 14:00:16
华为交换机VLAN配置实战:从广播域隔离到跨VLAN通信
1. 从一次全公司网络卡死说起VLAN到底解决什么问题去年下半年我接手了一家公司内部网络的维护工作。网络看起来很正常几台交换机堆叠在弱电井里终端、打印机、监控全部接入IP地址段也划分得井井有条。但有个问题困扰了IT部门很久——一到下午办公高峰期全网延时飙升文件服务器响应能到十几秒最离谱的是财务室一台电脑发出的大批量ARP广播能让整个办公区的网络直接瘫痪。问题根源并不复杂全公司几百台设备挤在同一个广播域里。在没有VLANVirtual Local Area Network虚拟局域网的传统二层交换网络中交换机收到广播帧比如ARP请求后会把这个帧向除接收端口之外的所有端口转发。设备越多广播流量越大互相之间的干扰越严重。更关键的是任何一台设备发出的广播物理上可以到达网络中的每一台设备这既是广播风暴的温床也是安全隐患——恶意抓包者可以在同一广播域内嗅探到大量无关设备的通信。VLAN的引进本质上做了一件事把物理上的一台交换机从逻辑上切分成多台互不相通的虚拟交换机。每个VLAN是一个独立的广播域广播帧只能在同VLAN的端口之间转发不同VLAN之间默认无法直接互访。用一个不太严谨但很好记的类比物理交换机相当于一栋办公楼VLAN相当于把办公楼隔成一间间独立的房间房间之间的走廊默认是锁死的谁要串门必须经过专门的门禁。这篇文章不打算停留在概念层面。我基于实战经验把VLAN的原理、华为交换机的配置步骤、跨VLAN通信方案、常见故障排查以及配套的练习题整理成一篇完整的实操笔记。无论你是刚入行的网络新手、备考网络认证的学生还是被公司网络问题困扰的兼职网管照着这篇操作和排查大部分VLAN问题都能落地解决。2. 配置前必须掰扯清楚的底层逻辑802.1Q Tag、Access口与Trunk口很多人配置VLAN最容易犯的错是拿到交换机就敲命令对端口为什么分Access和Trunk、Tag到底加在哪个位置、PVID和VLAN ID是什么关系一概不关心。结果就是命令敲完了display vlan一看确实有了VLAN但设备之间就是不互通最后只能把所有配置清空重来。2.1 一个VLAN帧到底长什么样IEEE 802.1Q的4字节Tag先讲帧格式。标准以太网帧Ethernet II由目的MAC6字节、源MAC6字节、类型/长度字段2字节、载荷和数据校验组成。802.1Q标准在源MAC地址之后、类型字段之前插入了4字节的VLAN TagTPIDTag Protocol Identifier2字节固定值0x8100表示这个帧携带VLAN Tag。TCITag Control Information2字节内含Priority3位QoS优先级、CFI/DEI1位、VIDVLAN ID12位。VID是核心取值范围0到4095其中0和4095保留实际可用的是1到4094。这12位决定了VLAN的编号空间上限——这也是为什么你会看到VLAN 4094是上限的说法。普通PC网卡不认识这个Tag所以交换机在把帧发给终端设备PC、打印机等时必须把Tag剥掉在交换机互联端口之间传输时则必须保留Tag这样对端交换机才能识别这个帧属于哪个VLAN。Access端口负责剥Tag或打TagTrunk端口负责带着Tag转发——这个分工是VLAN配置的基础。2.2 Access端口的处理逻辑一个端口只属于一个VLANAccess口主要用于连接终端设备比如PC、打印机、IP电话等。它的逻辑很简单收到无Tag的帧时打上该端口默认PVIDPort VLAN ID默认和Access口的VLAN ID一致的Tag交给交换机内部处理。收到有Tag的帧时如果Tag中的VID与端口PVID一致则接收并处理如果不一致直接丢弃。向外发送帧时一律剥掉Tag以标准以太网帧格式发送给终端。所以Access口只能属于一个VLAN配置了VLAN 10之后这个口只处理VLAN 10的流量。终端设备不需要做任何配置网卡感知不到VLAN的存在。2.3 Trunk端口的处理逻辑交换机之间横向流量的主干道Trunk口用于交换机之间的互联或者交换机与路由器单臂路由场景、防火墙等设备之间的链路。它的处理要点是默认PVID通常是VLAN 1华为设备默认PVID为1。通过Trunk口发送帧时除了PVID对应的VLAN帧会被剥掉Tag发送之外其他被允许通过的VLAN帧都保留Tag发送。为什么PVID对应的VLAN帧要剥Tag因为对端Trunk口的PVID也可能正好是VLAN 1如果带了Tag反而可能会被某些厂商的设备特殊处理。华为设备默认行为就是这样理解即可。接收帧时无Tag帧打上PVID对应VLAN的Tag有Tag帧则检查是否在允许通过的VLAN列表里在则接收不在则丢弃。这就是三个关键参数Trunk口的PVID、允许通过的VLAN列表、帧出入时的Tag剥离规则。我见过不少人在配置Trunk时只设置了允许VLAN通过却忘了检查PVID是否合理导致VLAN 1的流量意外进入了本不该达的区域。2.4 Hybrid端口华为设备特有的第三种模式如果接触的是华为交换机还会见到Hybrid模式。它的灵活之处在于可以针对不同VLAN分别指定发送时剥不剥Tag。比如同一个端口VLAN 10的帧剥Tag发给终端VLAN 20的帧保留Tag发给另一台交换机一个口同时承担Access和Trunk的职能。实际项目中Hybrid常用在连接路由器的场景或者在部分需要灵活收发策略的接入场景。不过作为入门先掌握Access和Trunk就足够了Hybrid可以在后续进阶中慢慢研究。3. 实战配置以华为交换机为例把整个办公网划分成三个VLAN配置命令本身不难难的是配置思路。我以一个典型的中小企业办公场景为例一台核心交换机S5700系列、三台接入交换机终端分布在三个区域——财务部、研发部、行政办公区。要求是三个部门二层隔离互相之间默认不通但都能访问服务器区的共享资源。3.1 规划VLAN编号与端口分配先做好规划不要随手起VLAN号。VLAN ID虽然是数字但在实际项目中应该承载语义VLAN ID用途网段规划示例网关VLAN 10财务部终端192.168.10.0/24192.168.10.254VLAN 20研发部终端192.168.20.0/24192.168.20.254VLAN 30行政办公区192.168.30.0/24192.168.30.254VLAN 100服务器区192.168.100.0/24192.168.100.254注意VLAN ID和IP网段之间没有强制对应关系但强烈建议建立一种固定映射比如VLAN 10对应192.168.10.0/24。否则网络规模一大排查问题时光回忆这个VLAN是哪个部门的就够你头疼的。3.2 接入交换机上的配置创建VLAN与划分Access口登录接入交换机创建VLAN然后连接终端的端口划入对应VLAN。以华为VRP系统为例system-view vlan batch 10 20 30 100 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit这里有三点值得说明第一vlan batch可以一次创建多个VLAN比逐个vlan 10再退出高效得多。生产环境中一条vlan batch命令往往同时创建十几个VLAN。第二port link-type access之后port default vlan才生效。如果先设了default vlan再改link-type有些版本会报错建议按这个顺序操作。第三交换机上联核心交换机的端口不要划入某个VLAN正确的做法是配置为Trunk并放行所有需要的VLAN。这一步常常被忽略——很多人把上联口也设成Access口只放行了默认VLAN 1导致其他VLAN的终端完全无法访问服务器。3.3 核心交换机上的配置Trunk对接与VLANIF网关核心交换机上同样创建VLAN然后配置上联口为Trunksystem-view vlan batch 10 20 30 100 interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30 100如果接入交换机有多个需要在每个接入交换机的上联口上做相同的Trunk配置并确保允许列表一致。比如接入交换机A的上联口只放行VLAN 10接入交换机B要访问VLAN 10的终端数据从B到核心再到A核心转发逻辑本身没问题但A的Trunk口没放行VLAN 10帧到了A直接被丢弃——这就是跨交换机VLAN不通最常见的原因之一。另外提醒一点华为Trunk口的port trunk allow-pass vlan 10 20 30 100和port trunk allow-pass vlan all不要混用。前者只放行指定VLAN后者放行所有VLAN。生产环境建议显式列出VLAN列表方便日后审计。如果设置了allow-pass vlan all后面新增VLAN不需要再改这个口但风险是一旦某个新VLAN的广播域因为配置失误扩散到核心排查范围会非常大。完成Trunk对接后在核心交换机上给每个VLAN配一个VLANIF接口作为终端网关interface Vlanif10 ip address 192.168.10.254 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quit interface Vlanif30 ip address 192.168.30.254 255.255.255.0 quit interface Vlanif100 ip address 192.168.100.254 255.255.255.0 quit这时候如果终端把各自的网关指向对应的VLANIF地址VLAN 10、20、30之间就能够通过三层转发互相通信了。3.4 验证配置的命令习惯配置完成后别急着说搞定用一组命令确认display vlan summary # 查看VLAN数量及编号 display vlan # 查看VLAN内端口划分情况 display port vlan # 查看各端口VLAN属性access/trunk及PVID display interface trunk # 查看Trunk端口允许通过的VLAN列表实际操作中display port vlan是我最常用的一条它能一屏展示所有端口的链路类型、PVID、允许通过的VLAN。如果一个应该属于VLAN 10的端口实际还在VLAN 1里这里一眼就能发现。别完全信任配置前的规划文档以设备实际显示的状态为准——文档和真实环境不一致是网络维护中最常见的隐形炸弹。4. 跨VLAN通信的两种主流方案单臂路由与三层交换机默认情况下VLAN之间是不能互访的因为每个VLAN是一个独立广播域二层帧根本不会跨VLAN转发。要让不同VLAN的终端通信必须在三层上做路由。这里有两种最常见的方案。4.1 单臂路由一台路由器一个物理口多个子接口早期方案是用一台路由器物理网口连接交换机的一个Trunk口然后把物理口划分成多个子接口每个子接口对应一个VLAN并分配网关IP。交换机和路由器之间只有一条物理链路但承载了所有VLAN的流量所以叫单臂路由。华为路由器上的典型配置interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.254 255.255.255.0 quit interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.254 255.255.255.0 quit交换机的对接端口要配置为Trunk并放行对应VLAN同时注意PVID需要设置为不同于路由器子接口的VLAN否则无Tag帧会被错误地映射到某个VLAN造成不可预期的转发行为。单臂路由的优点是配置简单、成本低缺点是所有VLAN的流量都挤在一条物理链路上带宽瓶颈明显而且路由器的三层转发性能远不如交换机芯片。如果公司规模小几十台终端、流量不大这个方案够用但我不建议在超过百台终端的网络里用单臂路由做核心网关瓶颈期一到你就得返工。4.2 三层交换机的VLANIF方案把网关做在交换机上现在的组网实践里更主流的是在核心交换机上配置VLANIF接口让交换机同时承担二层交换和三层路由的职责。核心交换机内部有一个三层转发引擎VLANIF接口就是逻辑上的三层接口配置了IP地址后终端把网关指向它VLAN之间就能通过交换机硬件转发了。我在3.3节已经给出了VLANIF的配置命令这里补充几个设计要点VLANIF的IP地址必须和终端所处的IP网段在同一子网内并且该VLAN内所有终端的网关都指向这个地址。不同VLANIF接口之间默认是三层路由关系核心交换机开启IP转发即可华为交换机默认开启。如果你的核心交换机支持三层功能尽量把网关放在核心交换机上不要每一台接入交换机都配VLANIF当网关——那样会增加配置复杂度还要处理不同交换机之间的路由协议问题。两种方案对比对比维度单臂路由三层交换机VLANIF带宽瓶颈单物理链路共享背板交换瓶颈小配置复杂度需要子接口Trunk配合只需VLANIF配IP转发性能取决于路由器CPU硬件转发性能高适合规模小规模几十台中大规模上百台以上4.3 防火墙或路由器参与网段间访问控制需要注意一点VLANIF做的只是路由不做安全过滤。如果财务部VLAN 10和研发部VLAN 20之间虽然通过交换机能通信但你还想精细化控制谁可以访问谁单靠VLANIF不够需要引入ACL访问控制列表或者把关键流量牵引到防火墙做策略过滤。很多公司的做法是核心交换机负责常规三层转发敏感VLAN之间比如服务器区与终端区的互访流量强制经过防火墙。这个属于进阶方案这里先提个思路不展开了。5. 我踩过的VLAN配置坑三个典型故障与完整排查链路配置手册上的命令是死的网络环境是活的。下面三个故障案例都是我在实际维护中真实遇到过的每一个都曾让我在设备前面蹲了不短时间。与其给你一个标准答案不如带你走一遍完整的排查思路。5.1 故障一同一个VLAN跨交换机不通直连同一台交换机却正常现象财务部的PC-A接入交换机A的G0/0/1口打印机接入交换机B的G0/0/2口两个口都划在VLAN 10内PC能ping通同交换机的其他设备却ping不通另一台交换机上的打印机。排查链路先在PC-A上ping打印机IP不通。在PC-A所在的接入交换机A上查看display vlan 10确认端口G0/0/1在VLAN 10内。再查看接入交换机B上的display vlan 10确认G0/0/2确实在VLAN 10内。两台交换机的VLAN配置看起来都没问题那问题大概率出在互联Trunk口。在交换机A上执行display interface trunk发现Trunk口只放行了VLAN 1和VLAN 10没问题再在交换机B上执行同样的命令发现交换机B的上联Trunk口只允许了VLAN 1——当时配置时漏加了VLAN 10。修复在交换机B的上联口补上放行配置interface GigabitEthernet0/0/24 port trunk allow-pass vlan 10之后PC-A再ping打印机通了。这类问题的本质是Trunk允许列表两端不对称。帧从A发出时带VLAN 10 Tag到了B的Trunk口B的允许列表里没有VLAN 10直接丢弃。排查时不要只看本端两端都要查。5.2 故障二终端网速时快时慢ping网关忽通忽断现象某个办公区所有终端上网正常但同一个VLAN内的PC之间互访非常不稳定时通时断。终端ping网关没问题说明三层链路基本正常问题定位在二层。排查链路查看核心交换机display mac-address发现同一个终端的MAC地址出现在两个不同端口上。继续排查发现办公区有一个员工私接了一个小交换机而这个交换机同时连接了接入交换机的两个端口——形成了一个二层环路。生成树协议STP按理应该阻断环路但该接入交换机上STP被关闭了。修复恢复接入交换机上的STP默认开启状态并建议将终端接入交换机的方式改为单线连接或者在接入交换机端口上配置BPDU保护防止私接设备破坏生成树计算。这个案例和VLAN本身不完全相关但非常典型VLAN只是隔离广播域如果二层存在环路广播帧会在环路里反复转发风暴照样会发生而且多个VLAN一起遭殃。排查二层网络问题时display mac-address出现飘移是最明显的环路信号之一。5.3 故障三VLAN配置核对无误但终端无法获取DHCP地址现象新划了一个VLAN 50终端接入后无法从DHCP服务器获取IP地址。检查了交换机端口划分、Trunk放行、VLANIF配置全部正常DHCP服务器也确认工作正常。排查链路终端ping网关通。说明二层和三层基本没问题。在终端上手动配置静态IP能正常上网。说明DHCP报文交互出了问题。在核心交换机上抓包或查看DHCP报文计数发现客户的DHCP Discover报文能到达核心交换机但回程的DHCP Offer报文没有到达终端。进一步检查DHCP服务器的配置发现服务器只监听在默认VLAN对应的网段接口上没有为VLAN 50配置对应的作用域Scope。修复在DHCP服务器上为VLAN 50对应的网段添加作用域即可。这类问题的本质往往不在网络设备而在DHCP服务器与VLAN网段之间的配置匹配。排查时不要一头扎进交换机里先确认DHCP服务器是否真的知道这个VLAN的存在。另外如果DHCP服务器和终端不在同一个广播域内还需要在交换机或路由器上配置DHCP Relay把DHCP广播报文转换成单播报文转发给服务器否则报文根本到不了服务器。5.4 通用的VLAN排查方法论结合上面三个案例我总结一个四步排查法你可以直接套用第一步确认物理与链路状态。检查端口有没有UP网线、光电模块有没有问题。物理层不通时一切上层排查都白费。第二步确认VLAN与端口归属。用display vlan、display port vlan核对端口是否正确划分、PVID是否正确。第三步确认Trunk与允许列表。两端Trunk的PVID和允许VLAN列表必须一致。第四步确认三层与DHCP设置。VLANIF有没有配IP、终端网关对不对、DHCP作用域有没有覆盖对应网段。这四步做完绝大多数VLAN不通的问题都能找到根因。如果四步全做了依旧不通再考虑抓包分析不要一上来就抓包——在没确认配置之前抓包只会看到一堆看不懂的报文在眼前飞过。6. 练习题检验你是否真的理解了VLAN以下题目是我在带新人时经常用的几道覆盖概念理解、配置思路和故障判断三个层次。建议先自己做再看答案解析。6.1 选择题第1题IEEE 802.1Q标准中VLAN Tag插入在以太网帧的哪个位置A. 目的MAC地址之前 B. 源MAC地址之后、类型字段之前 C. 载荷数据之后 D. 帧校验序列FCS之后第2题一台主机的MAC地址同时出现在交换机两个不同端口上最可能的原因是A. 主机配置了多个IP地址 B. 二层环路导致MAC地址飘移 C. Vlan配置错误 D. 交换机端口DOWN第3题Trunk端口收到一个带VLAN Tag的帧但该VLAN不在允许列表中交换机会如何处理A. 剥掉Tag后转发 B. 打上PVID后转发 C. 直接丢弃 D. 发送给CPU处理第4题终端PC通过Access端口接入交换机时交换机向终端发送的帧应当A. 携带VLAN Tag B. 不携带VLAN Tag C. 打上PVID D. 修改目的MAC地址6.2 配置题某公司核心交换机S5700需要创建VLAN 10财务、VLAN 20人事、VLAN 30行政三个部门网段分别为192.168.10.0/24、192.168.20.0/24、192.168.30.0/24。写出核心交换机上需要完成的三部分关键配置创建VLAN、配置VLANIF接口网关取各网段最后一个可用地址、以及与接入交换机对接的Trunk口放行配置。6.3 故障判断题某网络终端能ping通网关但无法访问另一个VLAN中的服务器。已知核心交换机上的VLANIF配置正确请列出至少三种可能的原因并说明排查方法。6.4 答案解析第1题答案B。802.1Q Tag插入在源MAC之后、类型字段之前。这4字节对终端网卡透明只有交换机才会识别和处理。第2题答案B。同一个MAC地址出现在两个端口上几乎可以断定二层环路存在导致交换机地址表反复刷新。优先检查STP状态和物理链路拓扑。第3题答案C。Trunk口对不在允许列表中的VLAN帧直接丢弃这是VLAN隔离的边界。第4题答案B。Access口发往终端的帧必须剥掉Tag否则普通网卡无法识别。配置题参考答案system-view vlan batch 10 20 30 interface Vlanif10 ip address 192.168.10.254 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quit interface Vlanif30 ip address 192.168.30.254 255.255.255.0 quit interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30 quit注意网关取了各网段的.254地址这是实践中的常见做法有些企业习惯用.1没有强制标准但全网必须一致。故障判断题参考答案可能原因一接入交换机Trunk口没有放行服务器所在VLAN排查方法为检查两端Trunk允许列表。可能原因二核心交换机缺少到服务器网段的路由排查方法为在核心交换机上执行display ip routing-table确认是否有对应网段的路由。可能原因三终端网关配置不正确排查方法为在终端上查看默认网关并与VLANIF地址比对。可能原因四服务器端的防火墙或ACL拦截了来自该VLAN的流量排查方法为查看对应安全策略和ACL配置。说实话VLAN配置的功夫不在敲命令上我见过的不少新人能把vlan batch和port link-type背得滚瓜烂熟却依然搞不定一个中等规模网络的VLAN布网。差距不在命令而在对流量走向的理解。比如Access口的Tag剥不剥、Trunk口的允许列表两端对不对、PVID改没改这些细节决定了终端和设备之间到底是通还是不通。还有一个经验之谈VLAN规划一定要留余量。我经历过一个项目规划时只给每个部门分了一个VLAN结果半年后又要细分权限、又要新加IoT设备网段最后VLAN号不够用整个核心交换机的配置重来了一遍。宁可前期多规划两个预留VLAN也不要等业务跑起来再改网络架构。另外无论项目大小配置完一定要把端口归属、VLAN划分、IP规划整理成文档。不要相信自己的记忆力——半年后你再回头看当初随手敲的几条命令大概率想不起来为什么这个Access口划到了VLAN 30而不是VLAN 20。文档这东西短期看是麻烦长期看是救命。