☰
华为S5700 VLAN配置实战:VLAN间不通的根因与排查方法
2026/10/3 3:36:56 网站建设 项目流程

搞华为S5700的VLAN配置,我猜你大概率遇到过这种情况:VLAN也划了,端口也加了,电脑IP也配了,结果不同VLAN之间就是ping不通,在交换机上看接口状态全是UP,配置翻来覆去找不出毛病。这个坑我踩过很多次,也帮不少朋友排查过,今天就把S5700上VLAN配置容易踩的坑一次说清楚,尤其是VLAN间无法互通的几个根因,以及对应的排查和解决办法。

这篇文章不是单纯的命令手册,而是从“为什么不通”的角度切入,把VLAN间通信的完整链条、S5700这个型号的特性、配置细节以及常见翻车现场全部讲明白。不管你是在公司机房做运维,还是在学校实验室做网络实验,只要手上有一台S5700(或者类似的华为三层交换机),这篇文章都能帮你少走弯路。

1. 为什么你配了VLAN,不同网段还是ping不通?

1.1 先搞懂VLAN间通信的完整链路

很多人配置VLAN后ping不通,第一反应是命令敲错了,但真正的问题往往出在“对整个转发路径理解不完整”。VLAN的本质是二层隔离技术,它把物理局域网在逻辑上切分成多个广播域,同一个VLAN内的设备可以互相通信,不同VLAN之间默认是互相隔绝的。这就像一栋楼被隔成了几套房子,每套房子里的人可以自由走动,但两个房子之间没有走廊,你敲对面邻居的门,人家根本听不见。

那不同VLAN的PC要怎么通信?必须通过三层设备来做路由转发。这里有三条常见的路:一是用路由器做单臂路由,在路由器上创建子接口,分别对应不同VLAN的网关;二是用防火墙的虚拟接口来终结VLAN;三是用三层交换机上的VLANIF接口做网关。S5700这个场景下,最常用也是最推荐的就是VLANIF方案。

VLANIF接口可以理解成交换机为某个VLAN创建的一个“虚拟网口”,你在这个虚拟网口上配置IP地址,这个IP就是该VLAN内所有PC的网关。PC把数据包发给网关,网关查路由表,发现目标网段在另一个VLANIF下,就把包从对应的VLANIF接口转发出去。整个过程涉及二层封装和解封装、路由表查询、ARP解析等多个环节,任何一个环节断了,VLAN间就通不了。

1.2 “三层交换机”不等于开箱即支持三层

这里要先泼一盆冷水:S5700这个系列其实不是所有型号都支持三层功能。S5700家族里,带EI、SI后缀的通常支持VLANIF三层转发,而部分LI结尾的型号在硬件上只支持二层转发。如果你拿了一台S5700-LI做VLAN间通信实验,配置了半天VLANIF接口,发现设备根本不认这条命令,那不用怀疑,不是你的问题,是设备型号本身不带这个能力。

所以拿到设备的第一件事,就是确认明白自己用的是哪款。在命令行敲display version,看设备型号那一行,如果型号里带LI,且你明确需要三层VLAN间互通,那就要么换设备,要么走外部路由器单臂路由方案。很多人在这上面浪费了大量时间,排查到最后才发现是设备选型就错了。

2. 配置前的三个关键概念,搞不懂它们必踩坑

2.1 Access口、Trunk口、Hybrid口到底有何区别

华为交换机上的端口类型有Access、Trunk、Hybrid三种,很多从思科转过来的人最容易在这上面迷糊。Access口一般用来连接终端设备,比如PC、打印机、服务器,这个口只能属于一个VLAN,收到不带标签的帧就打上这个VLAN的标签,发出去的时候剥掉标签。Trunk口用来连接交换机与交换机,或者交换机与路由器,它能同时承载多个VLAN的流量,帧在Trunk上带着VLAN标签传输,这样不同VLAN的流量就能在同一条物理链路上跑。

Hybrid口是华为特有的端口类型,它兼顾了Access和Trunk的特性,既可以像Access那样只走一个VLAN,也可以像Trunk那样放通多个VLAN,而且还能精细控制哪些VLAN带标签、哪些不带标签。新买的华为交换机,所有端口默认都是Hybrid类型,这点和思科默认Access完全不同,很多人一上来就按思科的思路配,结果端口类型不匹配导致流量异常,这是新手最容易踩的坑之一。

口说无凭,我用个类比帮你记:Access口是“单程票通道”,只服务一个VLAN;Trunk口是“多程票通道”,一张链表上挂多个VLAN;Hybrid口是“灵活通道”,既能单程也能多程,但车门怎么开你得自己设定。

2.2 PVID和Native VLAN,为什么它俩决定生死

PVID(Port VLAN ID)是端口默认的VLAN ID,当端口收到一个不带VLAN标签的帧时,交换机会把这个帧打上PVID对应的VLAN标签。这个机制在Access口和Trunk口上的表现不太一样。

Access口的PVID就是它所属的VLAN,比如端口划分到VLAN 10,那么PVID就是10,收到的无标签帧会打上VLAN 10的标签。而Trunk口的PVID可以手动指定,默认是VLAN 1。关键点来了:Trunk口在发送数据时,如果这个帧的VLAN等于端口的PVID,交换机会把标签剥掉,以untagged形式发送;如果VLAN不等于PVID,就带上标签发送。

这就引出了华为和思科的一个概念对应关系:华为的PVID对应思科的Native VLAN。很多人在配置跨交换机Trunk时,只记得放通VLAN,忘了检查两端的PVID是否一致。如果两端PVID不一致,比如一端PVID是10,另一端PVID是20,那么VLAN 10的流量在Trunk上传输时,到达对端后会被打上VLAN 20的标签,等于数据进了别人家的门,VLAN间通信自然就乱了。

2.3 VLANIF接口才是“三层楼”

VLANIF接口是三层交换机独有的逻辑接口,它不是实实在在的物理口,而是为某个VLAN创建的一个虚拟三层接口。你在这个接口上配置IP地址,它就成了该VLAN内所有终端设备的网关地址。

这里有一个容易被忽略的细节:VLANIF接口想要正常工作,前提是该VLAN内至少有一个物理端口是UP状态。如果VLAN 10下没有任何物理端口,或者端口全部shutdown,那么VLANIF 10会显示Down,IP地址虽然配置了,但路由不会生效,流量根本进不来。

我见过很多奇葩案例,VLANIF接口配置了地址,VLAN也划分了端口,但端口连接的是未开机的电脑,结果VLANIF一直Down,排查了半天才发现是物理层就没通。所以在配置VLANIF之前,一定要确认物理端口在线,可以用display interface brief先看一眼端口状态。

3. 手把手配置:一套能直接抄作业的S5700 VLAN配置

3.1 环境说明与IP规划

实际配置之前,先约定一个实验环境。假设你手头有一台S5700-EI作为核心交换机,下面接了两台PC,PC1在VLAN 10,网段192.168.10.0/24,PC2在VLAN 20,网段192.168.20.0/24,目标是通过交换机的VLANIF接口实现两个网段互通。

IP规划表如下:

设备VLANIP地址掩码网关
PC1VLAN 10192.168.10.10255.255.255.0192.168.10.254
PC2VLAN 20192.168.20.10255.255.255.0192.168.20.254
S5700 VLANIF10VLAN 10192.168.10.254255.255.255.0-
S5700 VLANIF20VLAN 20192.168.20.254255.255.255.0-

PC1接在交换机的GigabitEthernet0/0/1口,PC2接在GigabitEthernet0/0/2口,两个PC的网关分别指向对应的VLANIF地址。这里有一个原则要记住:终端的网关地址必须和VLANIF地址在同一网段,否则数据包根本出不了本网段。

3.2 核心交换机基础VLAN划分与端口配置

登录交换机后,先进入系统视图,把设备名称改一下便于管理,然后批量创建VLAN。华为交换机支持用vlan batch命令一次创建多个VLAN,不用一条条敲:

<Huawei> system-view [Huawei] sysname Core-SW [Core-SW] vlan batch 10 20

创建好VLAN之后,把连接PC的物理端口划分到对应VLAN。GigabitEthernet0/0/1口连PC1,划入VLAN 10;GigabitEthernet0/0/2口连PC2,划入VLAN 20。这里端口类型选Access即可,因为PC只属于一个VLAN:

[Core-SW] interface GigabitEthernet0/0/1 [Core-SW-GigabitEthernet0/0/1] port link-type access [Core-SW-GigabitEthernet0/0/1] port default vlan 10 [Core-SW-GigabitEthernet0/0/1] quit [Core-SW] interface GigabitEthernet0/0/2 [Core-SW-GigabitEthernet0/0/2] port link-type access [Core-SW-GigabitEthernet0/0/2] port default vlan 20 [Core-SW-GigabitEthernet0/0/2] quit

配置完可以用display vlan查看VLAN下的端口信息,确认端口划分是否正确。这一步虽然简单,但却是最容易被忽略的,我有一次排查了半天,最后发现端口明明敲了命令,但实际还在VLAN 1里,原因是命令没生效就quit了,所以检查一定要做。

3.3 Trunk口配置与跨交换机VLAN放通

如果你的网络里不止一台交换机,核心交换机和接入交换机之间要跑多个VLAN,那链路端口就必须配置成Trunk,并且要把相关VLAN放通。

假设核心交换机的GigabitEthernet0/0/24口连接着接入交换机,配置如下:

[Core-SW] interface GigabitEthernet0/0/24 [Core-SW-GigabitEthernet0/0/24] port link-type trunk [Core-SW-GigabitEthernet0/0/24] port trunk pvid vlan 10 [Core-SW-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [Core-SW-GigabitEthernet0/0/24] quit

这段配置里,port trunk allow-pass vlan 10 20的意思是允许VLAN 10和VLAN 20的流量通过这个Trunk口,注意华为默认只放行VLAN 1,其他VLAN必须手动放通。而port trunk pvid vlan 10是指定该Trunk口的默认VLAN为10,这样对端发来的不带标签的帧会被当成VLAN 10的流量处理。

对端接入交换机上同样要配置Trunk口,而且放通的VLAN和PVID必须保持一致。这里最容易出问题的就是两端PVID不一致,或者一端放通了VLAN 20另一端忘了放通,结果VLAN 20在跨交换机时静默丢失,表现就是部分VLAN互通、部分不通。

3.4 配置VLANIF接口,打通三层路由

VLAN划分和端口配置完成,只完成了二层的工作,此时VLAN 10和VLAN 20之间还是不通的,因为还没有三层网关。接下来就是关键步骤,创建VLANIF接口并配置IP地址:

[Core-SW] interface Vlanif 10 [Core-SW-Vlanif10] ip address 192.168.10.254 255.255.255.0 [Core-SW-Vlanif10] quit [Core-SW] interface Vlanif 20 [Core-SW-Vlanif20] ip address 192.168.20.254 255.255.255.0 [Core-SW-Vlanif20] quit

配置完之后,交换机的路由表中会自动生成两条直连路由,因为VLANIF接口的IP地址所在的网段就是直连网段。可以用display ip routing-table查看路由表,确认192.168.10.0/24和192.168.20.0/24这两条直连路由是否都在。

到这一步,理论上PC1 ping PC2已经能通了,因为交换机已经具备了三层转发能力。PC1把数据包发给网关192.168.10.254,交换机查路由表发现192.168.20.0/24是直连网段,于是通过VLANIF20把数据包转发给PC2。整个链路就走通了。

3.5 进阶:给VLAN配置DHCP和默认路由

实际生产环境中,终端设备通常不希望手动配IP,而是通过DHCP自动获取。S5700可以在VLANIF接口上开启DHCP服务,给对应VLAN内的终端动态分配地址。先全局开启DHCP:

[Core-SW] dhcp enable [Core-SW] interface Vlanif 10 [Core-SW-Vlanif10] dhcp select interface [Core-SW-Vlanif10] dhcp server dns-list 114.114.114.114 8.8.8.8 [Core-SW-Vlanif10] quit

dhcp select interface表示接口地址池模式,交换机自动把该VLANIF的网段作为地址池,分配的网关就是VLANIF的IP地址。这个模式比较省事,不用单独创建全局地址池,适合中小型网络。

如果交换机上联的是出口路由器或防火墙,还需要配置一条默认路由指向出口设备,否则VLAN间互通没问题,但访问外网会不通:

[Core-SW] ip route-static 0.0.0.0 0.0.0.0 192.168.1.1

这里假设出口路由器的地址是192.168.1.1,实际环境中要根据你的上行网关来定。

4. 高频问题与排查思路实录

4.1 排查VLAN间不同怎么办:一条条命令过

遇到VLAN间不同,不要慌,按顺序检查一定能找到问题。我通常的排查思路是:先看物理层,再看二层,最后看三层。

第一板斧,确认物理端口状态。用display interface brief查看端口是否UP,物理层都不通,后面全白搭。第二板斧,确认VLAN划分。用display vlan查看各VLAN下有哪些端口,很多问题出在端口划分错乱上。第三板斧,确认Trunk放通状态。用display interface trunk查看Trunk口的PVID和放通VLAN列表,重点检查两端的配置是否一致。第四板斧,确认VLANIF接口状态和路由表。用display ip interface brief查看VLANIF接口是否UP,IP地址是否正确,再用display ip routing-table确认直连路由是否生成。

如果这些都检查过了还没头绪,那就用display current-configuration把当前配置全拉出来,仔细对比每一条关键配置。这个方法看着笨,但在复杂环境下往往最有效。

4.2 六大高频翻车现场

第一个高频问题:只划分了VLAN,没创建VLANIF接口。二层隔离是有了,三层网关没建,不同VLAN当然不通。这个问题在新手里出现概率极高,很多人以为划分VLAN就等于三层互通了。

第二个高频问题:VLANIF接口建了,但IP地址配错或没生效。VLANIF 10的IP应该是PC1的网关地址,如果配成了其他网段的地址,PC1的网关根本指向不到交换机,自然通不了。

第三个高频问题:端口划分错误,PC接的端口没划到对应VLAN。比如PC1本来要划到VLAN 10,结果端口还在默认的VLAN 1里,那PC1根本不在VLAN 10内,VLANIF 10对它来说形同虚设。

第四个高频问题:Trunk口没放通对应VLAN,或者PVID不一致。这个问题在前面已经讲过,跨交换机时尤其常见,表现就是单交换机内部VLAN互通没问题,跨交换机就不通。

第五个高频问题:终端设备的网关或掩码配置错误。PC的网关填错、掩码填错,都会导致数据包发不到网关,或者网关认为目标地址不在本网段。这种问题最坑人,因为交换机配置看起来完全正常,结果错在终端上。

第六个高频问题:设备型号不支持三层。前面提到的S5700-LI,配置VLANIF直接报错,这种不是配置问题,是硬件能力问题。

4.3 快速定位问题的小技巧

最后分享几个我带徒弟时常说的调试小技巧,能帮你快速缩小问题范围。

一是在交换机上带源地址ping测试。假设你想验证交换机自身到PC1的连通性,可以用ping -a 192.168.10.254 192.168.10.10,这样能确认交换机VLANIF接口和终端之间链路是否正常。如果交换机ping得通PC,但PC之间ping不通,问题大概率出在PC的网关或掩码上。

二是学会看MAC地址表。在交换机上执行display mac-address,看PC的MAC地址是否学习到了正确的端口和VLAN下。如果MAC地址没学到,说明二层链路有问题,或者端口VLAN划分有误。

三是善用抓包工具。如果条件允许,在PC上用Wireshark抓包,ping不通的时候看ARP请求有没有发出去、有没有回复。PC发出ARP请求找不到网关的MAC地址,说明二层广播域有问题,数据包根本到不了网关。如果ARP正常但ICMP请求没有回复,那问题就出在三层路由转发上。

4.4 配置后必须做的事:保存

这个问题我已经强调过很多次,但每次还是有人中招。配置完一切正常,结果设备一重启,所有配置全部丢失,回到出厂状态。华为交换机的配置默认只保存在内存里,必须手动执行save命令才能写入flash的配置文件里:

[Core-SW] save

系统会提示确认是否保存,输入Y回车即可。这个动作虽然简单,却是生产环境中最重要的习惯之一。我遇到过不止一次,半夜机房断电,第二天设备重启后配置全没了,业务瘫痪,最后发现是当初配置完没save。

最后的经验

我在实际配置华为S5700的过程中,最深的体会是:VLAN间无法互通,十有八九不是哪个命令敲错了,而是对整个转发链路缺乏整体认识。你只要记住三层交换机的核心逻辑——VLAN负责二层隔离,VLANIF负责三层网关,Trunk负责跨设备承载,PVID负责无标签帧的归属——绝大多数问题都能在五分钟内定位。

配置前先拿display version确认设备型号支持三层,再按“物理口划VLAN、Trunk放通、VLANIF配网关、终端网关指向VLANIF”这个顺序来操作,基本不会出大问题。如果真遇到疑难杂症,就用display命令一层层往下查,不要凭感觉盲改配置,所有排查都要以输出结果为依据。

希望这篇实战笔记能帮你少踩几个坑。VLAN配置是网络运维的基本功,把基本功打扎实了,后面再接触M-LAG、VXLAN这些复杂技术时,你会发现底层原理其实都是相通的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询