简介本资源是一份华为交换机 GVRPGARP VLAN 注册协议实验配置文本面向网络工程初学者、HCIA/HCIP 备考者及需要掌握动态 VLAN 管理机制的运维人员。内容围绕 Normal、Fixed、Forbidden 三种注册模式展开清晰区分静态 VLAN 与动态 VLAN 的传播规则并以 S1S4 四台交换机互连为例完整给出将 Trunk 接口开启 GVRP、批量创建 VLAN100/200、配置 Access 接口加入指定 VLAN 等操作的命令行步骤同时涉及单向注册现象与 Fixed 模式对比验证适合对照真机或模拟器逐步练习。资源为单个 docx 文档共 1 个文件压缩包大小约 306KB文本格式便于复制命令、批注学习与二次整理。目前已有 266 人浏览学习。下载后可直接获得实验拓扑下的完整配置命令序列、关键模式原理解读及常见问题说明能有效帮助理解 GVRP 动态注册机制减少自行搭建实验时的排查时间。1. 华为GVRP实验配置全手敲一遍才敢说懂的单向注册坑做华为交换机的网络实验绕不开GVRP这个协议——它能让交换机之间自动交换VLAN注册信息省去逐台手工建VLAN的重复劳动。不少开发者拿到华为GVRP实验配置文本照着抄一遍命令点开测试拓扑却发现S2只学到了半个VLAN终端怎么Ping都不通这就是典型的单向注册问题。这套实验环境看着简单实际做起来涉及Trunk放通、全局与接口双重使能、动态VLAN生命周期三个层面任何一个环节错位结果都是静默丢包。这篇笔记适合正在用eNSP搭GVRP实验、或者给真实交换机做动态VLAN开局的人全文按四台设备的配置顺序走完最后给出验证手法和排错清单照着敲就能跑通。2. 实验拓扑与注册模式选型先想清楚三模式再动手2.1 设备角色与接口占用S1到S4的连线逻辑GVRP实验通常用四台交换机串成一条链路S1 — S2 — S3 — S4从左到右依次相连。从输入配置文本能看出接口规划是这样的S1的23口连S2的23口S2的24口连S3的23口S3的24口连S4的23口每一段都是Trunk并且链路上的每一个参与接口都要开启GVRP。我一般会建议先在纸上把接口对抄下来再进设备敲命令不然敲着敲着就忘了哪台开了哪台没开。设备Trunk角色参与接口后续承载VLANS1链路起点GE0/0/23VLAN 100、VLAN 200静态S2中间节点GE0/0/23、GE0/0/24动态学习两个VLANS3中间节点GE0/0/23、GE0/0/24动态学习两个VLANS4链路末端GE0/0/23需静态补建VLAN 100、200设计思路很简单静态VLAN只建在S1上其他三台通过GVRP动态学到。这样做的好处是如果网络里要加一批VLAN只需要在源头交换机上一次创建下游设备会自动注册。但代价也一样明显——链路上任何一段没有正确开启GVRP或注册模式不对VLAN信息就会在某个节点断掉。四台设备里S2、S3是典型的中间节点它们既要收左边的注册信息又要往右边转发所以两个接口都必须同时开启GVRP少一个就是半通。2.2 三种注册模式Normal、Fixed、Forbidden到底卡在哪GVRP的注册模式是这份实验配置文本里最容易理解错的部分。三种模式分别应对不同的管理策略我把它们的核心区别整理成一张表模式动态注册/注销传播动态VLAN传播静态VLAN实际放通的VLANNormal允许允许允许动态静态全部Fixed禁止不传播只传播静态仅手工配置的部分Forbidden禁止不传播不传播VLAN 1除外仅VLAN 1Normal模式是实验默认使用的四台设备开局阶段全部用Normal跑通动态学习。Fixed模式和Forbidden模式都是后来做验证用的Fixed模式下即使你把Trunk接口配成allow-pass vlan all实际能通过的也还是手工配置的那些VLAN动态学到的信息会被挡在接口外Forbidden更极端除了VLAN 1任何VLAN都别想从这个口过。实际操作里很多新手把gvrp registration fixed配完之后发现动态VLAN清空了就以为是设备坏了其实这就是Fixed模式该有的行为——它不是故障是策略生效了。2.3 配置前确认版本与“开关顺序”的准备工作GVRP配置在华为交换机上有个固定的开关逻辑先要在系统视图下敲全局gvrp让设备具备GVRP能力再去具体接口下敲gvrp让该接口参与VLAN注册信息的交换。两个命令缺一不可全局不开接口下的gvrp命令根本敲不进去全局开了但接口没开这个接口只会保持普通Trunk转发不参与任何动态注册。我一般会先检查设备是否支持GVRP。eNSP里大部分S5700、S3700型号都能直接敲但如果是真实设备建议先敲display gvrp看看设备是否返回能力信息老款交换机的系统版本里如果GVRP模块没加载命令会直接报“Unrecognized command”。另外要注意大小写问题命令本身是小写的gvrp协议名写大写没关系但命令行里全用小写敲成GVRP在某些视图下会识别失败。这个坑虽然小浪费的时间一点不少。3. Trunk与GVRP基础配置四台设备逐台贴命令3.1 S1的23口Trunk加GVRP的标准动作S1是整条链路的源头静态VLAN最终建在它身上所以它只需要把23口做成Trunk并开启GVRP。拿到配置文本第一台设备的完整动作是这样的S1system-view # 进入系统视图批量配置前必做的一步 [S1]interface GigabitEthernet0/0/23 # 进入23口视图注意接口编号中间没有空格 [S1-GigabitEthernet0/0/23]port link-type trunk # 把二层口切成Trunk模式 [S1-GigabitEthernet0/0/23]port trunk allow-pass vlan all # 放通所有VLANGVRP报文才能过 [S1-GigabitEthernet0/0/23]quit # 退回系统视图准备开全局GVRP [S1]gvrp # 全局使能GVRP缺了这步后面接口开不了 [S1]interface GigabitEthernet0/0/23 # 再次进入接口 [S1-GigabitEthernet0/0/23]gvrp # 接口级使能参与动态VLAN注册 [S1-GigabitEthernet0/0/23]display this # 查看当前接口下的完整配置这里有个容易忽略的动作port trunk allow-pass vlan all配置在gvrp之前还是之后都可以但必须存在于接口配置里。GVRP报文本质是二层组播报文Trunk接口如果只放了默认VLAN 1GVRP注册信息就只能在VLAN 1里传动态学到的VLAN 100、VLAN 200到达下一个接口时会被Trunk的允许列表挡住。所以“Trunk vlan all gvrp”三步是绑定关系少了任何一条后面的注册都不会完整。3.2 S2与S3的23/24双口链路两端的注册方向S2和S3是链路中间节点各自有两个口参与GVRP。S2的23口连接S124口连接S3所以两个口都要做Trunk、都要放通vlan all、都要开启GVRP。S2的配置如下S2system-view [S2]interface GigabitEthernet0/0/23 # 面向S1一侧 [S2-GigabitEthernet0/0/23]port link-type trunk [S2-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S2-GigabitEthernet0/0/23]interface GigabitEthernet0/0/24 # 直接在接口视图下切换不用quit [S2-GigabitEthernet0/0/24]port link-type trunk [S2-GigabitEthernet0/0/24]port trunk allow-pass vlan all [S2-GigabitEthernet0/0/24]quit [S2]gvrp # 全局开关中间节点同样要开 [S2]interface GigabitEthernet0/0/23 [S2-GigabitEthernet0/0/23]gvrp [S2-GigabitEthernet0/0/23]interface GigabitEthernet0/0/24 [S2-GigabitEthernet0/0/24]gvrp [S2-GigabitEthernet0/0/24]quit [S2]display current-configuration # 检查全局和接口配置是否齐全S2的配置在思路上和S1有两点不同。第一它有两个参与接口两个口都要开GVRP第二S2未来不需要手工建静态VLAN它要完全依赖GVRP动态学习。中间节点最容易犯的错是只开了面向源头方向的23口、漏了24口结果注册信息能收进来却传不出去这在后面的验证阶段会出现一个很典型的单向半通状态。S3的配置和S2完全对称也是23口、24口双Trunk双GVRP。这里不再重复贴命令直接照S2抄即可。需要注意的一点是顺序建议先把两台设备的接口链路类型和放通配完再统一开GVRP。原因是GVRP使能后接口上会立即开始收发注册报文如果此时Trunk的放通列表还没配好中间会有一段窗口期产生注册抖动。虽然实验环境里影响不大但真实的网络割接里这个顺序能少惹很多麻烦。3.3 S4的23口链路末端的收尾配置S4是链路末端只有一个23口参与GVRP。配置逻辑和S1一样先切Trunk、放通vlan all再全局开GVRP、接口开GVRPS4system-view [S4]interface GigabitEthernet0/0/23 [S4-GigabitEthernet0/0/23]port link-type trunk [S4-GigabitEthernet0/0/23]port trunk allow-pass vlan all [S4-GigabitEthernet0/0/23]quit [S4]gvrp [S4]interface GigabitEthernet0/0/23 [S4-GigabitEthernet0/0/23]gvrp [S4-GigabitEthernet0/0/23]display this四台设备到这里就完成了GVRP层面的基础“安装”。链路结构是S1一端发起注册、S2和S3中继、S4末端接收。此时如果S1上还没有创建任何静态VLAN整条链路其实是“空转”的——GVRP协议在跑但没有VLAN可供注册。所以下一步就是回到S1把VLAN 100和VLAN 200建出来这才是触发动态注册的源头。4. 静态VLAN与单向注册实战动态VLAN学来容易漏一半4.1 在S1上创建VLAN 100/200并划分Access口S1作为源头交换机要手工创建两个VLAN并各接一个Access口进去。VLAN 100对应1口VLAN 200对应2口这样两台终端分别接到S1的1口和2口就处在两个不同的二层广播域里。配置命令S1system-view [S1]vlan batch 100 200 # 批量创建两个静态VLAN省去逐个敲vlan 100再vlan 200 [S1]interface GigabitEthernet0/0/1 [S1-GigabitEthernet0/0/1]port link-type access # 接终端用Access不携带Tag [S1-GigabitEthernet0/0/1]port default vlan 100 # 把VLAN 100设为该口的默认VLAN [S1-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2 [S1-GigabitEthernet0/0/2]port link-type access [S1-GigabitEthernet0/0/2]port default vlan 200 [S1]display current-configuration这里有个细节值得注意vlan batch 100 200一次创建两个VLAN比分开执行两条vlan 100和vlan 200要快也更不容易漏配。Access口的port default vlan 100决定的是这个接口收到无Tag帧时打上哪个VLAN的标签同时也决定了这个口实际归属哪个VLAN。在GVRP实验里S1的1口、2口是终端入口VLAN 100和VLAN 200从这里接入然后借助Trunk链路上的GVRP机制动态扩散到S2、S3、S4。4.2 单向注册现象为什么中间链路学得到一半学不到另一半在S1上建好VLAN并配好Access口之后GVRP的注册报文开始从S1的23口发出。理论上S2的23口应该收到VLAN 100和VLAN 200的注册信息S2的24口也应该把这些VLAN再转发给S3。但在只配了S1静态VLAN、其他设备完全依赖动态学习的情况下真实抓包会发现S2的23口确实学到了两个VLAN而24口的GVRP表项却什么都没有。这个现象在实验里非常典型注册信息从S1向左边的链路传播没有问题但从右向左的路径没有建立起来。原因在于GVRP的注册传播方向依赖链路上每个接口都处于Normal模式并双向转发。如果S2的24口没有执行接口级gvrp或者配置了Fixed模式24口虽然物理链路是通的、Trunk配置也放通了所有VLAN但GVRP协议报文不会在这个接口上被处理注册信息到了这里就断了。另一方面如果你只在S2的24口配了Trunk而全局没有开GVRP设备直接就丢弃了GVRP的协议报文。后者的现象更隐蔽——在设备上看VLAN列表S2快要学到的VLAN好像“差一口气”但在对端设备抓包根本看不到PDU发出。4.3 动态VLAN不能直接加端口S4上的“转正”操作GVRP动态学到的VLAN和手工创建的静态VLAN设备对它们的处理逻辑不一样。动态VLAN在接口上表现为“临时注册”状态最直观的限制是你不能直接把一个Access口的port default vlan指到一个纯动态VLAN上也不能把动态VLAN加进任何Trunk的允许列表里做配置引用。实验文本里有一个容易抄错的经典环节——S4通过GVRP已经动态注册到了VLAN 100和VLAN 200但当你试图把S4的1口划进VLAN 100时命令要么报错要么配置上去了却不生效。我一般会用一句话概括动态VLAN是协议学来的临时状态想让它承载业务必须先在设备上转为静态VLAN。所以在S4上要做一次“转正”操作把动态学到的VLAN再静态创建一遍S4system-view [S4]vlan batch 100 200 # 静态创建同名VLAN覆盖动态注册的临时状态 [S4]interface GigabitEthernet0/0/1 [S4-GigabitEthernet0/0/1]port link-type access [S4-GigabitEthernet0/0/1]port default vlan 100 [S4-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2 [S4-GigabitEthernet0/0/2]port link-type access [S4-GigabitEthernet0/0/2]port default vlan 200 [S4]display vlan执行完这段之后再看display vlanVLAN 100和VLAN 200的状态会从带标志的动态注册状态变成普通静态VLAN。这里有一个值得记住的细节静态创建同名VLAN不会把动态注册信息“踢掉”两者会自然合并且以静态配置为准。所以做这步操作时不需要先删除动态VLAN——你根本没有权限直接删动态表项只能通过关闭GVRP接口让它老化。5. GVRP配置避坑与常见问题排查五条能救场的踩坑记录5.1 现象VLAN只学了一半23口有、24口空链路配置全部完成S1上建好VLAN后S2上display vlan显示两个VLAN都学到了但S3上没有任何动态VLAN。抓包发现S2的23口有GVRP报文收发24口静悄悄的。排查下来发现S2的24口漏配了接口级gvrp端口上根本没有使能协议注册信息自然不可能传达到S3。解决办法是进24口补一条gvrp命令。这类问题在S3、S4上也会以同样形式出现基本规则是每个参与链路的接口都要单独开一次GVRP全局开关不代表所有接口自动生效。5.2 现象动态VLAN带“D”标志端口划不进去执行display vlan时看到VLAN 100前面带了一个“D”字母这表示该VLAN是GVRP动态注册得来的。这种VLAN不能直接用于业务配置——想给接口划VLAN、想把某个口加到Trunk的allow列表里系统会返回错误提示只有静态VLAN才能做这些操作。解决方法是像4.3节那样在需要业务落地的设备上把同名VLAN静态重建一遍。这里容易犯的错是到处找“删除动态VLAN”的命令实际上不需要删静态创建的同名VLAN会自动覆盖它。5.3 现象命令敲了grvp系统视图下报错不识别华为命令行针对GVRP的全局开启命令是gvrp三个全小写字母。有些实验文本的截图或按键记录里会看到grvp这种拼法——字母g和r的位置调换了尤其是在快速敲命令时手速超过脑速就很容易打成这样系统会直接提示未知命令。遇到这个问题不要急着怀疑设备版本先检查命令拼写。另一种情况是命令对但设备不支持老型号交换机或某些精简版本里根本没有GVRP模块此时需要换支持GVRP的交换机型号或者升级系统软件包。5.4 现象配了Fixed模式后原本学到的动态VLAN全部消失这是把注册模式从Normal改成Fixed后最常见的反馈。很多同学看到动态VLAN消失第一反应是“配置坏了”实际上这正是Fixed模式的预期行为——它禁止接口动态注册和注销VLAN已经学到的动态VLAN会随老化时间逐步清除之后也不再接收新的注册信息。此时如果port trunk allow-pass vlan all仍然存在实际放行的VLAN却只剩手工配置的静态部分这是模式生效的直观表现。要恢复动态学习切回Normal模式等注册信息重新传播即可。5.5 现象终端之间Ping不通但交换机上VLAN列表看起来齐了四台设备都建齐了VLAN测试却还是不通优先排查链路端口角色。常见情况是中间某台设备的接口仍然处于默认的Hybrid模式或者Access口混进了Trunk链路。华为交换机二层口默认是Hybrid如果你在S2的23口忘了敲port link-type trunk只开了GVRP那它虽然能收发协议报文但业务VLAN的转发会出现标签处理异常终端二层通信直接断掉。另一个高频问题是GVRP的注册信息虽然传到了末端但末端接入终端的那台交换机没有做5.2节的静态转正Access口划不进去VLAN列表看着存在实际没有业务口在里面。6. 装完怎么验证跑通从dis命令到Ping一套走完验证GVRP实验是不是真的跑通了我有一套固定的检查顺序建议按这个顺序依次确认。第一件事在S2上执行display gvrp status确认全局和接口的GVRP状态都是enabled。如果看到接口状态是disabled说明接口级配置漏了动态学习一定失败。第二件事执行display vlan确认VLAN 100和VLAN 200出现在S2、S3的VLAN列表里并观察VLAN前是否有“D”标志。第三件事确认S4上已经静态创建了VLAN 100和VLAN 200并且1口、2口的port default vlan分别指向这两个VLANS1display gvrp status # S1上确认全局和23口均为Enabled S2display vlan # S2上查看VLAN 100、200是否动态学到 S3display vlan # S3同上 S4display vlan # S4上应为静态VLAN状态且端口归属正确 S4display gvrp statistics # 查看S4上收到的GVRP报文统计是否持续增长最后一关是终端通信测试。S1的1口接一台终端AS4的1口接一台终端B两边都划在VLAN 100里从终端A去Ping终端B的地址能通说明从S1到S4的整条GVRP链路真正跑通了。为了排除单点偶然通过的情况我会再测一遍VLAN 200的链路S1的2口到S4的2口两条VLAN都通才算这套配置收工。从那以后我每次做GVRP实验都会强制自己走一遍这个验证顺序先gvrp status、再vlan列表、最后跨设备Ping。不Ping通不罢休——协议状态全绿色只能说明配置没抄错Ping通了才说明VLAN注册信息真的穿越了整条链路来到了它该去的地方。这套配置文本里的坑几乎都藏在“看着配完了实际没通”的细节里希望帮到你。本文还有配套的精品资源点击获取