简介:华为GVRP实验配置文本,是一份面向网络工程师及华为设备初学者的实验学习材料,适合备考华为数通认证或正在练习VLAN动态管理的人群。文档以S1至S4四台交换机组成的互联环境为背景,从GVRP作为GARP应用的协议定位讲起,先梳理手工配置的静态VLAN与协议自动生成的动态VLAN的区别,再对比Normal、Fixed、Forbidden三种注册模式的行为差异,最后落到Trunk接口允许所有VLAN通过并开启GVRP的完整配置命令。资源共1个docx文档,压缩包约306KB,内容包含S1至S4逐台设备的配置过程、VLAN100/200动态注册现象、由左至右与从右至左传播不一致造成的单向注册问题分析,以及S3上配置Fixed模式后的对照验证,读者可直接复制命令复现实验,也可以借助其中的排错思路排查同类动态VLAN故障。目前已有266人学习下载,适合需要系统理解GVRP注册机制、动手完成华为交换机动态VLAN实验的读者。
1. 华为GVRP配置:四台交换机串联,三种注册模式一次讲透
华为GVRP配置这个题目,初看就是几条命令的事,真正在eNSP里复现一遍才发现,VLAN能不能从S1自动传到S4,取决于全局开关、接口开关、端口模式和注册模式四个条件同时成立。这份实验配置文本把四台交换机S1到S4串行互联,Trunk口全部打通,在端口上开启GVRP,分别验证Normal、Fixed、Forbidden三种注册模式下动态VLAN的传播差异。适合正在备华为ICT大赛网络赛道、用华为eNSP做三层交换机实验,以及在生产环境里想用GVRP做动态VLAN下发的运维人员。文章按实验顺序拆解每一段命令,重点说清楚单向注册和动态VLAN不能直接下发端口这两个最容易被忽略的坑。
2. GVRP协议机制与三种注册模式:Normal、Fixed、Forbidden各自锁住了什么
2.1 GARP通用属性注册协议:动态VLAN是怎么“长”出来的
GVRP全称是GARP VLAN Registration Protocol,它是GARP(Generic Attribute Registration Protocol,通用属性注册协议)在VLAN属性上的一种具体应用。可以先这么理解:GARP是一套通用的“属性注册与注销”规则,而GVRP只是把待注册的属性从“某个通用值”换成了“VLAN编号”。交换机与交换机之间,就是靠这套规则互相通告“我这里有VLAN 100,你需要的话可以学过去”。
动态VLAN的产生过程并不复杂。当S1上手工创建了静态VLAN 100之后,S1上开启了GVRP的Trunk接口会周期性发送注册消息,对端交换机收到这条消息,就在本地创建出VLAN 100,这个被动创建的VLAN就是动态VLAN。动态VLAN会继续沿着开启GVRP的链路往下传,从而实现“配置一台,全网皆知”的效果。注销方向也是对称的:静态VLAN被删除,或者收到对端的注销消息后,动态VLAN会在超时周期过后自动消失。
这里有一个容易误解的点:GVRP并不是通过广播报文把整个VLAN配置“复制”过去,它只传VLAN编号和注册状态。也就是说,对端交换机知道的是“VLAN 100存在”,但VLAN 100的名字、关联的接口、网关这些配置全都不会同步。动VLAN创建出来后,只是一张“空壳”,得由本机继续配置端口和业务,它才能承载流量。这一点直接关系到第5章要讲的动态VLAN不能直接下发端口的问题。
2.2 Normal模式:既能学也能传,是GVRP的默认状态
Normal模式是GVRP最完整的注册模式,接口在Normal模式下,允许动态注册VLAN,也允许动态注销VLAN,同时还会把动态VLAN和静态VLAN的信息都传播出去。换句话说,一个接口处于Normal模式时,它是“全双工”的:从对端学到的VLAN会继续往其他端口传,自己静态创建的VLAN也会主动通告出去。
大多数实验场景,接口保持默认的Normal模式就可以跑通。需要注意的一点是,Normal模式不仅传播VLAN,也会传播“注销”信息。比如本端删除了某个静态VLAN,Normal接口会把这条注销消息传给对端,对端的动态VLAN也会跟着注销。在实验里这没什么问题,但在生产环境里,一个误操作删除VLAN,可能导致下游交换机全部跟着注销,这是Normal模式最需要警惕的行为。
2.3 Fixed与Forbidden模式:一个只传静态,一个连静态都不传
Fixed模式的规则是:禁止接口动态注册VLAN,也禁止动态注销VLAN,只传播静态VLAN信息。写成白话就是,这个接口“不学习”对端动态发来的VLAN,但它会把自己这台设备上手工创建的静态VLAN继续通告出去。原文里有一句很到位的描述:被设置成Fixed模式的Trunk接口,就算配置了port trunk allow-pass vlan all,实际能通过的VLAN也只是本端手动配置的那部分。
Forbidden模式比Fixed更彻底:接口不仅禁止动态注册、注销,而且不传播除VLAN 1之外的任何VLAN信息。一个Trunk接口被设置为Forbidden之后,即使port trunk allow-pass vlan all还挂在配置里,实际能通过的也只有VLAN 1。这个模式通常用来做接入隔离,或者在某些端口上彻底关闭除管理VLAN以外的所有业务VLAN。
2.4 三种注册模式对照
| 模式 | 动态注册VLAN | 动态注销VLAN | 传播动态VLAN | 传播静态VLAN | Trunk实际放行范围 |
|---|---|---|---|---|---|
| Normal | 允许 | 允许 | 允许 | 允许 | 动态+静态VLAN全部 |
| Fixed | 禁止 | 禁止 | 禁止 | 允许 | 仅本端静态VLAN |
| Forbidden | 禁止 | 禁止 | 禁止 | 禁止 | 仅VLAN 1 |
这张表建议截图保存。实际排障时,90%的“VLAN传到一半断了”的现场,最后都落在这张表里某一行的某个属性上。
3. Trunk链路与GVRP基础配置:S1到S4的完整开局命令行
3.1 为什么端口必须是Trunk,且必须允许所有VLAN通过
GVRP要在一个物理接口上同时承载多个VLAN的注册信息和数据帧,access口天然不适合。access口只能属于一个VLAN,收到带其他VLAN标签的帧直接丢弃,动态注册进来的VLAN 100、200根本没有安放位置。Trunk口则不同,它能同时承载多个VLAN的帧,配合port trunk allow-pass vlan all,任何一个VLAN的数据帧都能穿过这条链路。
在搭配GVRP时,我一般会在一个接口上按三步顺序操作:先改链路类型为Trunk,再放行全部VLAN,最后开启GVRP。顺序上建议先配Trunk再开GVRP,华为设备上端口开启GVRP要求端口类型为Trunk或Hybrid,如果端口还是默认的access就去敲gvrp命令,系统会直接拒绝,提示链路类型不对。先配链路类型再继续,能省掉一次报错后返工的麻烦。
3.2 全局gvrp与接口gvrp:两级开关,少一级都不通
GVRP在华为交换机上有两个开关:一个是系统视图下的全局开关,用命令gvrp开启;一个是接口视图下的端口开关,也是用命令gvrp开启。全局开关负责让整台设备具备GVRP处理能力,端口开关负责让这个具体接口参与VLAN注册消息的收发。只开全局关端口,VLAN学不进来;只开端口关全局,接口下敲命令时就会收到报错。很多第一次配GVRP的人会在这里翻车:全局开了,却漏掉某一个Trunk口的接口开关,然后去查VLAN为什么传播不过去,查半天查不出原因。配置完所有端口后,逐接口确认gvrp命令在dis this里真实存在,这一步省不得。
3.3 S1到S4的完整配置文本
先说拓扑:S1的GE0/0/23连S2的GE0/0/23,S2的GE0/0/24连S3的GE0/0/23,S3的GE0/0/24连S4的GE0/0/23。所以S2和S3需要配置两个口,S1和S4各配置一个口。
S1的配置:
<S1>sys [S1]int g0/0/23 [S1-GigabitEthernet0/0/23]port link-type trunk [S1-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S1-GigabitEthernet0/0/23]q [S1]gvrp [S1]int g0/0/23 [S1-GigabitEthernet0/0/23]gvrp [S1-GigabitEthernet0/0/23]dis th这一段是整份实验的起点。port link-type trunk把GE0/0/23从默认的access改为Trunk;port trunk allow-pass vlan all放行全部VLAN,保证后续动态学习到的VLAN数据能走过这条链路;退出到系统视图后用gvrp开启全局开关;再回到接口用gvrp开启端口开关。dis th是接口下的查看命令,用来确认当前接口的完整配置,看到gvrp出现在输出里才算配置生效。
S2的配置:
<S2>sys [S2]int g0/0/23 [S2-GigabitEthernet0/0/23]port link-type trunk [S2-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S2-GigabitEthernet0/0/23]int g0/0/24 [S2-GigabitEthernet0/0/24]port link-type trunk [S2-GigabitEthernet0/0/24]port trunk allow-pass vlan all [S2-GigabitEthernet0/0/24]q [S2]gvrp [S2]int g0/0/23 [S2-GigabitEthernet0/0/23]gvrp [S2-GigabitEthernet0/0/23]int g0/0/24 [S2-GigabitEthernet0/0/24]gvrp [S2-GigabitEthernet0/0/24]q [S2]dis cuS2处在链路中间,GE0/0/23朝S1方向,GE0/0/24朝S3方向。两个Trunk口都要放行全部VLAN,全局gvrp开启后,两个接口各自再开端口级GVRP。这个“中间节点”的配置最容易漏第二口,漏了之后,S1那边学过来的VLAN到S2就断了,S3、S4完全感知不到。
S3的配置:
<S3>sys [S3]int g0/0/23 [S3-GigabitEthernet0/0/23]port link-type trunk [S3-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S3-GigabitEthernet0/0/23]int g0/0/24 [S3-GigabitEthernet0/0/24]port link-type trunk [S3-GigabitEthernet0/0/24]port trunk allow-pass vlan all [S3-GigabitEthernet0/0/24]q [S3]gvrp [S3]int g0/0/23 [S3-GigabitEthernet0/0/23]gvrp [S3-GigabitEthernet0/0/23]int g0/0/24 [S3-GigabitEthernet0/0/24]gvrp [S3-GigabitEthernet0/0/24]q [S3]dis cuS3的拓扑位置与S2对称,命令结构完全一致。这里额外提一句:原文里S2和S3配置文本中把gvrp误写成了grvp,命令行敲入后系统无法识别,配置不会生效。实际手工配置时不要照抄这个错别字,具体排错在第5章展开。
S4的配置:
<S4>sys [S4]int g0/0/23 [S4-GigabitEthernet0/0/23]port link-type trunk [S4-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S4-GigabitEthernet0/0/23]q [S4]gvrp [S4]int g0/0/23 [S4-GigabitEthernet0/0/23]gvrp [S4-GigabitEthernet0/0/23]dis thS4是链路末端,只需要一个Trunk口朝向S3方向,全局与端口GVRP开启即可。这个配置完成之后,整条链路已经具备GVRP传播能力,但还没有任何VLAN可传。下一步就是在S1上创建静态VLAN,看看注册消息能沿着链路走多远。
3.4 配置后的第一眼检查:dis gvrp和dis vlan怎么读
配置完成后,先别急着建VLAN,用两条查看命令确认GVRP状态已经生效。系统视图下执行dis gvrp,输出会分全局和接口两部分,全局部分显示GVRP使能状态,接口部分按端口列出每个口的GVRP开关和注册模式。看到GE0/0/23、GE0/0/24的注册模式是Normal、状态是Enabled,才说明两级开关都到位了。
再用dis vlan看一下当前VLAN表,链路两端都只有VLAN 1,动态VLAN还没有出现。这个“空白基线”是有用的,后面排查单向注册问题时,能清楚地区分VLAN是从来没传过来,还是传过来又被Fixed模式挡住了。
4. 单向注册问题复盘:为什么S1建VLAN之后,S2的24口收不到注册信息
4.1 现场现象:注册消息只往一个方向走
按照实验文本的步骤,在S1上静态创建VLAN 100和VLAN 200,然后把GE0/0/1设为access加入VLAN 100,GE0/0/2设为access加入VLAN 200。配置本身没有任何报错,但观察S2的VLAN表时发现一个诡异的现象:S2的GE0/0/23口收到了注册消息,动态创建了VLAN 100和200,而GE0/0/24口没有收到任何注册信息。也就是说,S2学会了VLAN,但没往S3方向继续传。
实验文本对这种现象的结论是“单向注册”,并且强调:即使所有接口都是Trunk、允许所有VLAN通过,VLAN间通信依然无法建立。这个现象第一次遇到很让人摸不着头脑,因为从配置上看每个端口都开了GVRP,按理说注册消息应该一跳一跳传下去。
4.2 根因:GVRP注册消息是“有源才发”的,不是全网广播
GVRP的消息流方向本质上由“谁创建了静态VLAN”决定。S1手工创建了VLAN 100,S1就是唯一的信息源,它会从开启了GVRP的GE0/0/23口持续发出注册消息。S2的GE0/0/23口作为接收端,学到VLAN后确实会继续向GE0/0/24口传播——前提是GE0/0/24口也处于Normal模式且已开启GVRP。但S2的GE0/0/24口面对的是S3,S3此时并没有静态创建任何VLAN,整个链路只有S1这一个信息源,那么注册消息就只能从S1向S4方向单向流动。
GVRP不是一种“全网洪泛”协议,它不会凭空生成注册消息。消息的来源必须是有静态VLAN的设备,每一跳的转发需要接口处于Normal模式,而反向接口收不到注册消息,是因为反向根本没有VLAN可以通告。实验文本里“S2的24口未接收到信息”的原因,与其说是配置问题,不如说是消息源的天然方向性:S1建VLAN,消息只从S1往右走;S4没建VLAN,左边就永远等不到S4发来的注册。
4.3 逐跳排查:用dis vlan和dis gvrp找出注册断点
遇到这种“VLAN传了一半消失”的情况,排查思路是沿着链路逐台看VLAN表和GVRP状态。先看S2上有没有动态VLAN:
<S2>dis vlan <S2>dis gvrp如果S2的VLAN表里已有VLAN 100和200,说明S1到S2这一跳正常。接着看S2的GE0/0/24口GVRP是否开启、注册模式是否是Normal:
<S2>dis gvrpdis gvrp输出的接口状态表里,GE0/0/24显示为Normal且Enabled,基本可以排除接口开关问题。再登录S3执行dis vlan,如果S3的VLAN表里没有VLAN 100和200,那么问题就出在S2到S3这一跳。此时优先检查S3的GE0/0/23口有没有开GVRP,以及S2的GE0/0/24口有没有被误配成Fixed或Forbidden模式。华为交换机的dis gvrp能看到每个接口的注册模式,这一步比反复猜测命令有没有生效要可靠得多。
4.4 让注册变成双向:两端都静态创建VLAN
实验文本在S1建完VLAN之后,又在S4上同样新建了VLAN 100和200,这一步的实际作用就是构造两个注册源。S1向右发注册消息,S4向左发注册消息,中间交换机两边的接口都能收到动态注册,链路两端的VLAN信息也就对等了。从排障角度看,当你在链路上只看到单方向注册时,不要急着怀疑协议出了问题,先确认另一端是否有静态VLAN作为消息源。想让GVRP“双向注册”,就得两端都创建静态VLAN,这是这个协议的工作机制决定的,配置上补不了这个缺。
5. 动态VLAN的边界与避坑指南:静态创建、端口下发与常见翻车
5.1 动态VLAN是“影子VLAN”:不能直接绑定业务端口
在S4上动态学习到VLAN 100和200之后,下一步自然是想把下连PC的接口放进这两个VLAN。直接尝试配置时会发现,动态VLAN在华为设备里不允许被直接关联到业务端口,命令port default vlan 100在这种状态下要么报错,要么不生效。原因在于动态VLAN的生命周期归GVRP管理,它随时可能因为超时或被注销而消失,设备不放心把业务端口绑在一个“随时会没”的VLAN上。
解决办法就是实验文本里括号注明的那句话:需要自己静态创建VLAN。用vlan batch 100 200把VLAN静态化,动态VLAN本质上被同号的静态VLAN“接管”,之后才能配置access端口。S4的完整配置如下:
<S4>sys [S4]vlan batch 100 200 [S4]int g0/0/1 [S4-GigabitEthernet0/0/1]port link-type access [S4-GigabitEthernet0/0/1]port default vlan 100 [S4-GigabitEthernet0/0/1]int g0/0/2 [S4-GigabitEthernet0/0/2]port link-type access [S4-GigabitEthernet0/0/2]port default vlan 200 [S4-GigabitEthernet0/0/2]dis th这一段和前文的Trunk配置不同,它操作的是下连PC的接口,链路类型是access。port default vlan 100把GE0/0/1的默认VLAN设为100,这个接口收到的无标签帧就会被划分到VLAN 100里。切记操作前先确认VLAN已经静态创建,否则端口配置会失败。动态VLAN的“静态化”只影响本机,不影响GVRP的继续传播,这一点可以放心。
5.2 坑一:grvp错别字,命令行直接不认账
现象:照着文档在系统视图下敲grvp,按回车后系统提示命令不存在,或者在dis cu里根本看不到全局GVRP配置。原因:gvrp被误写成了grvp,两个字母位置颠倒,华为命令行解析器不识别这条命令。这份实验文本里S2和S3的配置段落就存在这个笔误。解决:手工敲命令时输入gvrp,不要复制文本里的grvp,敲完后用dis gvrp验证全局状态。错别字问题看起来低级,实际在连续配置多台设备时很容易顺手打错,尤其在敲命令比较快的时候。
5.3 坑二:复制粘贴的设备名不对,配置落到了错误的交换机上
现象:本应在S4上执行的VLAN创建命令,提示符却显示<S2>,配置被敲到了S2上。原因:实验文本的S4段落命令里混进了<S2>sys,这段是从S2配置复制过来后忘记改成S4了。解决:操作前先看提示符,确认当前登录的设备名与配置目标一致。当你在多台交换机之间来回切换时,养成看提示符的习惯能避免很多低级事故。这个坑在真实网络运维里比想象中更常见,我见过有人因为复制配置没改设备名,把一个校验VLAN建到了核心交换机上。
5.4 坑三:Fixed模式切换后,动态VLAN没有立刻消失
现象:把S3的GE0/0/23口从Normal改为Fixed模式后,dis vlan里依然能看到动态学习来的VLAN 100和200。原因:切换注册模式时,GVRP协议需要一个处理周期来注销已经注册的VLAN,注销消息的发送和接受都有延迟,动态VLAN不会在命令回车的那一瞬间消失。解决:稍等一个GVRP消息周期,一般几十秒后再执行dis vlan,动态VLAN会被清除。这里要区分静态VLAN和动态VLAN:静态创建的VLAN在Fixed模式下不受影响,仍然保留在VLAN表里。
5.5 坑四:物理链路断开后,动态VLAN还赖在表里不走
现象:拔掉S1与S2之间的网线后,S2的VLAN表里依然存在VLAN 100和200。原因:GVRP依赖周期性的注册消息维持动态VLAN,链路断开后对端的注册消息不再到达,但本端还没到超时判定时间,动态VLAN暂时残留。解决:等待GVRP超时周期过后,VLAN会自动注销。在实验环境里等不及的话,可以重启相关接口或关闭再开启端口上的gvrp,强制触发重协商。生产环境不建议手动去删动态VLAN,让协议自动收敛更安全。
6. Fixed模式实测:从实验到上线的验证技巧
6.1 复现Fixed模式的完整过程
在S3的GE0/0/23口上把注册模式改为Fixed:
<S3>sys [S3]int g0/0/23 [S3-GigabitEthernet0/0/23]gvrp registration fixed [S3-GigabitEthernet0/0/23]dis th回车之后,接口下再执行dis th,输出里会多出一行gvrp registration fixed,表示模式切换成功。然后回到系统视图执行dis vlan,重点观察动态VLAN是否消失。在实验文本的结论图里,Normal模式下VLAN能动态传递,Fixed模式下动态VLAN被切断,只保留S3静态创建的VLAN。做完这一步,再把这接口改回Normal:
[S3-GigabitEthernet0/0/23]undo gvrp registration fixed [S3-GigabitEthernet0/0/23]dis thundo gvrp registration fixed把注册模式恢复为默认的Normal,这是一个常用的后悔药,实验做完后务必记得还原,否则后续链路验证会一直带着“半隔离”状态。
6.2 三种模式在真实环境里的选型思路
| 场景 | 推荐模式 | 理由 |
|---|---|---|
| 核心交换机之间互联 | Normal | 需要双向学习全网VLAN,注册注销信息完整交换 |
| 接入交换机向上连接 | Normal或Fixed | 接入侧新建VLAN需要上送则Normal,只希望核心静态VLAN下发的用Fixed |
| 与第三方或外部设备互联 | Fixed | 避免对端动态VLAN影响本端VLAN表 |
| 管理口或隔离口 | Forbidden | 除VLAN 1外一律不放行,物理隔离业务VLAN |
6.3 我保留的检查习惯:三层验证法
GVRP实验做完,完整的验证不只是两台PC能ping通。我的习惯是固定跑一遍三层检查:dis gvrp确认开关和注册模式,dis vlan确认VLAN表里静态与动态VLAN的状态,最后才是PC间ping测试。从那以后,每次做GVRP配置或排查动态VLAN问题,我都强制自己走完这三步再下结论,少一步就可能把方向性误判成配置故障。希望这份实验文本的拆解和踩坑记录帮到你,尤其是在遇到“VLAN传到一半就断了”的时候,先看信息源,再看每一跳的模式,最后再动配置。
本文还有配套的精品资源,点击获取