简介:华为GVRP实验配置参考文档,面向网络运维人员和交换机配置学习者,系统梳理 GVRP(GARP VLAN Registration Protocol)的三种注册模式——Normal、Fixed、Forbidden——并结合S1~S4四台交换机的Trunk组网环境,给出开启GVRP、放行VLAN、新建静态VLAN、划分Access口及验证的完整命令行步骤。资源为单份docx文档,容量306KB,命令、说明与拓扑验证输出集中在同一文件中,适合对照实验台逐条操作。实验中在S1的23口、S2的23/24口、S3的23/24口、S4的23口均开启Trunk与GVRP,并在S1创建VLAN100/200,用于观察动态VLAN注册和单向注册现象。文档对Normal、Fixed、Forbidden三种模式的传播行为作了对比:Normal可动态注册/注销VLAN,Fixed仅传播静态VLAN,Forbidden除VLAN1外不传播任何VLAN;同时展示了GVRP单向注册现象及排查要点,并配合常用的查看与验证命令,便于排错复盘,有助于理解动态VLAN注册/注销机制、避免配置陷阱。目前已有266人学习下载,适用于华为网络实验教学、认证备考及日常配置速查。
1. 华为GVRP实验配置文本到底在做什么:一次配置,整条Trunk上的VLAN自己长出来
把两台华为交换机用Trunk口连起来,在一台上创建VLAN 100,另一台什么都不配,VLAN 100却自动出现在清单里——这是GVRP最典型的实验现象,也是第一次上手的人最容易误读的地方。GVRP不是“一条命令开个功能”,它背后是GARP协议族里专门负责VLAN注册的二层机制,要在交换机之间传播VLAN号,并配合注册、注销、定时刷新一整套动作。
这篇笔记的落点是华为GVRP实验配置文本的完整链路:从eNSP里搭出可运行的最小拓扑,到命令行开开关、验证动态VLAN、调定时器,再到三层交换机与接入层二层交换机场景下的差异。适合刚接触华为交换、正在备考HCIA,或者日常做华为交换机运维的人,照着复现一遍,比把命令背十遍管用。
2. 搭一个能跑的GVRP实验环境:拓扑、预配置与三个必懂原理
2.1 实验拓扑与设备选型:两台三层交换机的最低可复现组合
做GVRP实验不需要复杂组网。两台交换机、一根Trunk就够。我在eNSP里常用的设备组合是两台S5700,系统视图下支持完整的gvrp命令和display gvrp系列输出;如果手头只有S3700也能跑,但部分老型号的模拟器固件对GVRP定时器的显示格式有差异。三台交换机的级联场景放到第3章一起说,先把两台的基础打牢。
提示:GVRP的注册对象是二层Trunk链路,所以两台设备之间不能经过路由器做三层转发,实验拓扑里保持纯二层互联才是正路。
拓扑信息如下:
| 设备 | 型号(eNSP) | 互联接口 | 接口角色 |
|---|---|---|---|
| SW-A | S5700 | GigabitEthernet 0/0/1 | Trunk |
| SW-B | S5700 | GigabitEthernet 0/0/1 | Trunk |
启动设备后先清一遍配置,防止模拟器遗留上一次实验的脏配置:
system-view undo gvrp interface GigabitEthernet 0/0/1 undo port trunk allow-pass vlan all undo port link-type quit这段是“后悔药”,把全局GVRP开关、接口Trunk和VLAN放行规则全部复位。清完之后从干净状态开始,后面所有观察到的现象才可信,否则你看到SW-B上多出的VLAN可能是上次残留的,而不是GVRP动态注册出来的。
2.2 Trunk、PVID与GVRP的关系:报文能过路的两个前提
GVRP的报文本质是GARP协议族里的VLAN注册协议,目的MAC是组播地址01-80-C2-00-00-21,它在二层交换机之间传递的不是业务数据帧,而是“VLAN号+注册属性”的控制消息。这个前提决定了它只能走Trunk型链路,Access口会把控制帧的VLAN标记处理掉,GVRP就失去传播能力。
要让GVRP报文在两端正常通行,必须同时满足两个条件。第一,接口的链路类型必须是Trunk;第二,接口的port trunk allow-pass vlan列表必须包含对方要传递的VLAN范围。有人说“只要开了GVRP,VLAN自动放行”,这是不对的——GVRP传播的是VLAN号,而Trunk的allow-pass列表是数据帧能否通过的通行证,两者分工不同。实验里最稳妥的写法是port trunk allow-pass vlan all,把范围拉满,先让业务跑通,再回头收窄。
PVID在这里还有一个隐形影响。默认PVID是VLAN 1,这个原生VLAN在Trunk上不打标签传输,GVRP报文如果落入PVID所在VLAN,行为会和带标签的VLAN不同。绝大多数基础实验不碰PVID,但如果你把某个接口的PVID改成动态注册的VLAN号,部分交换机会出现注册表异常。我的经验是:实验阶段PVID一律保持默认,别去动它。
2.3 GVRP的三种注册模式:Normal、Fixed、Forbidden分别守什么
华为交换机的接口GVRP支持三种注册模式,这是GVRP实验里最容易混淆的概念,也是配置文本里最值得写清楚的部分。看这张表:
| 模式 | 动态学习VLAN | 注销本端VLAN | 典型用途 |
|---|---|---|---|
| Normal | 支持 | 支持 | 默认模式,两侧都动态注册、动态注销 |
| Fixed | 支持 | 不主动注销手工VLAN | 固定VLAN不被远端Leave消息误删 |
| Forbidden | 不学习 | 不传播VLAN | 边界接口关闭动态注册,只放行PVID所在VLAN |
Normal模式是绝大多数实验选择的默认模式,也是最符合直觉的:A端创建VLAN 100,B端动态学习;B端把VLAN删除,A端也会收到Leave消息并注销。Fixed模式则是给那些“本端手工配了VLAN,不希望被远端误删”的场景准备,它忽略Leave消息,但依然能学习新VLAN。Forbidden模式最激进,接口上彻底不学也不传,相当于把GVRP在某个接口上关掉。
这三种模式通过接口下的gvrp registration normal|fixed|forbidden切换。同一个交换机上的不同接口可以各自选模式,实验里可以故意把SW-B的接口设成fixed,再从SW-A删除VLAN,观察B端VLAN是否还在——这个动作能帮你直观理解模式差异,比背定义记得牢。
3. 把GVRP跑通的完整命令串:从全局开关到验证输出
3.1 最小配置:两台交换机只要四条关键命令
两台交换机上各执行一套对称配置。以SW-A为例,完整命令串如下:
system-view sysname SW-A gvrp interface GigabitEthernet 0/0/1 port link-type trunk port trunk allow-pass vlan all gvrp quit这套命令里有两个gvrp,一个是系统视图下的全局使能,一个是接口视图下的接口使能。第二次做GVRP实验的人最容易在这里翻车——全局开了,接口没开,display gvrp status里接口状态始终是disabled。全局开关解决的是“这台设备是否有GVRP能力”,接口开关解决的是“这条链路上是否收发GVRP报文”,两者缺一不可。
SW-B上执行同样配置,区别只是sysname SW-B。配置完成后回到SW-A,创建VLAN 100:
system-view vlan 100 quit interface GigabitEthernet 0/0/1 display gvrp vlan operationdisplay gvrp vlan operation是实验里最该记住的验证命令,它输出的不是设备上所有VLAN,而是本接口通过GVRP动态学习到的VLAN。此时SW-A的GigabitEthernet 0/0/1上不会有动态VLAN条目,因为VLAN 100是本地手工创建的;重点是回到SW-B执行同一条命令,你会看到VLAN 100出现在动态注册表里,说明报文已经跨链路传播成功。
3.2 display命令怎么读:从gvrp vlan输出判断动态VLAN状态
GVRP实验的验证路径,本质上就是三条display命令的组合。display gvrp status看协议状态和当前注册模式;display gvrp vlan operation看动态注册的VLAN号;display gvrp statistics看收发报文的计数。三者的作用各不相同,在实验中按这个顺序读:
| 命令 | 核心字段 | 判断依据 |
|---|---|---|
| display gvrp status | GVRP状态、Registration Type | 接口状态为enabled,模式为normal |
| display gvrp vlan operation | Dynamic VLAN列表 | 动态条目是否包含目标VLAN |
| display gvrp statistics | Tx/Rx Join、Leave、LeaveAll | 两边收发计数是否对称 |
实操中最常见的问题是:SW-B上display vlan能看到VLAN 100,但display gvrp vlan operation里却没有。这说明VLAN 100可能是之前手工创建留下的静态条目,不是GVRP动态学来的。做实验时要养成同时看两个输出的习惯,display vlan回答“VLAN存不存在”,后者回答“VLAN是不是GVRP学来的”。我见过不少人在实验报告里把静态VLAN当成GVRP成果写,一查operation表就露馅。
3.3 三台交换机级联:中间设备不需要建VLAN
把拓扑扩展到三台交换机级联,GVRP的价值才真正呈现。拓扑是SW-A连着SW-B,SW-B再连着SW-C,三台设备之间都是Trunk口。这时在SW-A上创建VLAN 100,SW-B和SW-C都应该自动出现动态VLAN 100。中间这台SW-B不需要手工创建VLAN 100,也不需要额外配置,只要它的两个Trunk接口都开了GVRP,动态注册信息就会从A侧学来,再向C侧传播出去。
# 仅需在SW-B的互联接口下补充配置 system-view interface GigabitEthernet 0/0/2 port link-type trunk port trunk allow-pass vlan all gvrp quit这套配置的核心逻辑是:GVRP报文从SW-A到达SW-B后,SW-B会把自己学到的VLAN注册信息通过自己的GVRP接口继续转发给SW-C。这个传播行为不需要中间设备配置任何静态VLAN,三层交换机上的VLAN表会自动被动态条目填满。做这个实验时要注意SW-B上两个接口的注册模式保持一致,如果0/0/1是normal、0/0/2是forbidden,那么到SW-C一侧的信息传播就会中断。
4. GVRP定时器与接入层场景:参数怎么调才不翻车
4.1 四个定时器默认值与调参顺序
GVRP协议靠周期性报文维持注册状态,这套机制由四个定时器控制。华为设备上的默认参数是:Hold定时器0.5秒,Join定时器200毫秒,Leave定时器600毫秒,LeaveAll定时器10秒。Hold定时器一般不手动配置,它负责把多条事件合并成一条报文,减少网络里的控制报文数量。
| 定时器 | 默认值 | 作用 | 实验调整建议 |
|---|---|---|---|
| Hold | 0.5s | 事件合并,减少报文量 | 不建议动 |
| Join | 200ms | 发送Join消息的间隔 | 网络较大时适度增大 |
| Leave | 600ms | 等待确认注销的时间 | 不建议单独调小 |
| LeaveAll | 10s | 周期性广播注销全部VLAN再重新注册 | 抖动频繁时先调大到30s |
调试顺序我一般是先动LeaveAll。如果你在SW-B上发现动态VLAN出现几秒后又消失,过几秒再出现,十有八九是LeaveAll周期性触发后,报文时序对不上导致的抖动。把LeaveAll调到30秒试试,如果抖动消失,说明问题出在网络里报文延迟或丢包,而不是VLAN配置本身。调定时器的命令在接口视图下:
system-view interface GigabitEthernet 0/0/1 gvrp timer leaveall 3000 quit单位是厘秒,3000代表30秒。改定时器是有全局副作用的动作,它会发送一条新的LeaveAll消息给对端,导致全网重新注册一轮,所以真实交换机上尽量在维护窗口操作。实验环境无所谓,随便试;生产环境一定要先想清楚窗口期。
4.2 二层接入交换机上的GVRP:边缘端口与PVID的注意点
很多做华为三层交换机运维的人,会把GVRP直接套到接入层二层交换机上,这里有一个容易被忽略的边界。接入交换机连接终端的Access口并不需要开GVRP,GVRP只在交换机互联的Trunk口上工作。Access口如果收到GVRP控制帧,通常会直接丢弃,不会造成故障,但也别指望它能把VLAN注册信息传到终端——终端的网卡不参与GARP协议族。
需要注意的其实是PVID和边缘端口。接入交换机上如果某个Access口的PVID是一个动态注册来的VLAN,当远端注销这个VLAN时,本地交换机可能要处理“PVID引用了不存在的VLAN”这类情况。华为多数设备会自动保留这个VLAN的静态属性,但会造成配置混乱。我的习惯是接入层只让业务VLAN通过GVRP动态传播,端口PVID始终用VLAN 1,不让动态VLAN与PVID产生依赖。另外,如果接入交换机连的是服务器或路由器,建议在对应接口确认GVRP未开启,避免不必要的控制报文进入这些设备。
4.3 在eNSP里抓GVRP报文:过滤语法与观察要点
eNSP自带的抓包功能可以直接捕获接口上的二层报文,这对理解GVRP的工作过程帮助极大。在接口视图或port mirroring场景下启动抓包,然后等几十秒,就能看到GVRP报文周期性出现。Wireshark对GVRP的解析是独立的,过滤语法直接写gvrp即可。
观察抓包结果时,重点关注三类消息:Join消息表明交换机在请求注册VLAN,Leave消息表明某个VLAN正在被注销,LeaveAll消息表示周期性清空并重建注册状态。如果你连续抓到多条相同VLAN号的Join消息,说明对端还在持续宣告这个VLAN;如果只看到LeaveAll却没有后续的Join,说明本端不存在动态VLAN了。这个观察方法和display gvrp statistics里的Tx/Rx计数互相印证,能帮你判断报文是从哪个方向丢的。抓包的时候留意时间戳,LeaveAll默认10秒,报文间隔应该比较规律,如果时疏时密,优先怀疑链路拥塞或模拟器性能问题。
5. 华为GVRP实验的5个常见坑:现象、原因、解决
5.1 动态VLAN没出现
现象:在SW-A创建VLAN 100,SW-B上display vlan看不到任何动态新增条目。原因最常见的有两种:一是SW-B的接口下没有敲gvrp,只开了全局开关;二是Trunk接口的allow-pass vlan列表没有覆盖VLAN 100,GVRP报文虽然能过,但VLAN号却被放行策略挡住。解决思路是按顺序排查:先执行display gvrp status确认两端接口状态都是enabled,再执行display gvrp vlan operation看动态表,最后查看接口的allow-pass列表。这个坑占GVRP实验排错的一半以上。
5.2 VLAN忽隐忽现
现象:SW-B上的动态VLAN出现后几秒自动消失,再过几秒又重新出现,循环不断。原因是LeaveAll定时器和Leave定时器之间的时序不对,常见于eNSP模拟器上设备负载较高时,控制报文被延迟处理;真实设备上则多由链路拥塞或STP振荡引发。解决时先把LeaveAll从默认10秒临时调大到30秒,观察是否明显缓解;如果依然抖动,检查交换机之间是否存在环路,STP反复迁移会让GVRP报文在一个周期内既收到Join又收到Leave。实验里优先排查STP状态,确认两个Trunk口都在Forwarding。
5.3 VLAN号有了但数据不通
现象:SW-B已经能看到动态VLAN 100,但PC跨交换机访问时不通。这个坑最容易误导人,因为“VLAN存在”让人以为转发也正常。实际原因是Trunk接口的allow-pass列表没有包含VLAN 100,动态注册只完成了控制平面,数据平面的放行规则没跟上。解决方法是把port trunk allow-pass vlan all换成精确放行,或者补上port trunk allow-pass vlan 100。另一种少见原因是两台交换机的接口PVID不一致,导致未打标签的帧被划进不同VLAN。检查两端display port vlan,确保PVID一致。
5.4 Fixed模式删不掉VLAN
现象:接口配置了gvrp registration fixed后,在远端删除VLAN,本端的动态VLAN却始终存在。原因是Fixed模式的设计目标就是忽略Leave消息,保护手工或动态注册的VLAN不被远端注销。解决时先确认这不是故障,然后按需切换模式:临时把接口改成normal,等VLAN注销后再改回fixed。做实验时如果想验证Leave消息的传播能力,记得把两端都设成normal,否则会出现一侧删除、另一侧纹丝不动的假象。
5.5 eNSP里找不到gvrp命令
现象:进入系统视图后输入gvrp,设备提示未知命令。原因是eNSP内置的某些设备型号或固件版本不支持GVRP,尤其是早期模拟器版本里的部分二层交换机型号。解决方法是换成S5700这类三层交换机型号重新拖一台设备;如果项目里已经用了三层交换机还是不行,检查模拟器版本,升级到较新的eNSP版本。遇到过有人在路由器上试图开GVRP,当然翻车——GVRP是交换机特性,路由器不在这个范围。
6. 把GVRP带进真实网络前:三条验证路径与我的使用边界建议
GVRP实验的终点不是“看到动态VLAN”,而是能证明这套机制在故障时也按预期工作。离开eNSP之前,我建议你跑三条验证路径。第一条是断链测试:把SW-A和SW-B之间的Trunk口shutdown,动态VLAN应该在Leave定时器超时后从SW-B消失,恢复接口后重新出现。第二条是改动测试:把SW-B的接口改成fixed模式,再去SW-A删除VLAN,SW-B的VLAN保持不变,证明模式确实生效。第三条是抓包中的LeaveAll观察:确认报文周期性出现且时间间隔符合定时器配置。
这三条路径里,断链测试最容易暴露问题。如果VLAN迟迟不消失,多半是Leave定时器或LeaveAll周期设置太长;如果消失得太快,又可能是误收了其他设备的Leave消息。真实网络里,我一般不直接把GVRP铺满全网,而是把它用在接入层VLAN数量多、需要自动同步的场景,核心层与汇聚层之间仍然用手工VLAN加Trunk放行的老办法,因为核心设备上的VLAN变更必须受控,不能让动态注册机制“自动生成”一个未经审批的VLAN。
GVRP的另一个实用边界是配合VLAN规划自动化:核心侧创建新VLAN,所有接入交换机的Trunk口自动学习并放行,省去逐台登录配置的重复劳动。做这件事前,先在实验环境把Fixed、Forbidden两种模式的行为差异完整测一遍,确认哪些端口需要被排除在动态注册范围之外。我自己在华为设备上的血泪经验是:第一次做GVRP实验时全局开了、接口没开,盯着display vlan骂了一下午设备,后来才发现接口开关压根没敲。希望帮到你。
本文还有配套的精品资源,点击获取