☰
GVRP单向注册导致VLAN不通?四台交换机实验解析
2026/10/28 12:09:51 网站建设 项目流程

简介:面向华为交换机学习者的GVRP实验配置文本,聚焦VLAN动态注册与管理的实操场景,适合已掌握VLAN、Trunk基础、希望进一步理解GARP属性注册机制的网络初学者与备考人员。资源包共1个docx文件,约306KB,以文字配置记录为主,完整呈现S1至S4四台交换机的Trunk端口设置与GVRP开启过程。内容涵盖Normal、Fixed、Forbidden三种注册模式的原理说明,并给出S1新建VLAN100、VLAN200及Access端口划分的具体命令,还涉及单向注册现象的分析与S4动态VLAN需静态创建的注意事项。已有266人学习,读者可据此对照复现实验拓扑、理解动态VLAN传播路径,并积累GVRP排错思路,适合作为实验课配套参考与配置速查材料。

1. 四台交换机串成一条链,VLAN 为什么只通了一半

拓扑很简单:S1—S2—S3—S4 一条链,中间全用 Trunk 互联,S1 和 S4 各挂两个 access 口。你在 S1 上敲了vlan batch 100 200,把 1 口划进 VLAN100、2 口划进 VLAN200,然后去 S4 同样建 VLAN、划端口,结果两端 PC 死活 ping 不通。更邪门的是,在 S2 上display vlan能看到 VLAN100 和 200 是动态注册进来的,可 S3 往 S4 方向的接口上却什么都没有。

这就是 GVRP 单向注册的经典现场。GVRP(GARP VLAN Registration Protocol)是 GARP 的一种应用,作用是让交换机之间自动交换 VLAN 配置信息,动态创建和注销 VLAN。手工建的叫静态 VLAN,GVRP 学来的叫动态 VLAN。它省的是“每台设备都手工建一遍 VLAN”的重复劳动,代价是你必须理解它的传播方向、注册模式和 Trunk 放行三者之间的耦合关系。这份配置文本适合正在备考网络方向认证、或者要在模拟器里把 GVRP 三种注册模式跑一遍的从业者,照着敲能复现,但如果不清楚下面几个边界,翻车是必然的。

2. GVRP 的传播逻辑:先搞懂单向注册再动手

2.1 注册信息是顺着 Trunk 逐跳传的,不是全网泛洪

GVRP 的注册信息只在开启了 GVRP 的 Trunk 接口之间传递,而且是逐跳的。S1 上静态创建 VLAN100 后,S1 的 GE0/0/23 会把“我有 VLAN100”这个属性注册信息发给 S2 的 GE0/0/23;S2 收到后在本机动态注册 VLAN100,再由 S2 的 GE0/0/24 继续往 S3 传。注意这里的关键:S2 的 GE0/0/24 必须也开了 GVRP,否则信息到 S2 就断了。

这解释了为什么“所有接口都是 Trunk、都允许所有 VLAN 通过”仍然不通。Trunk 的port trunk allow-pass vlan all只是放行许可,相当于门开着;GVRP 的注册信息才是告诉对端“这个 VLAN 真的存在”的通知单。门开着但没人送通知单,对端就不会动态创建这个 VLAN,报文到了对端因为 VLAN 不存在直接被丢弃。单向注册的本质就是:注册信息只从有静态 VLAN 的一侧往另一侧传,反方向没有源头,所以反向不通。

2.2 三种注册模式到底卡在哪一层

注册模式控制的不是“VLAN 能不能过”,而是“这个接口参不参与动态注册和传播”。很多人把 Fixed 模式理解成“禁止 VLAN 通过”,这是错的。

模式动态注册/注销传播静态 VLAN传播动态 VLAN实际效果
Normal允许允许允许默认模式,双向学习
Fixed禁止允许禁止只把本机静态 VLAN 告诉别人,不学别人的
Forbidden禁止禁止(VLAN1 除外)禁止除 VLAN1 外什么都不传

Normal 是默认值,接口既能学也能教。Fixed 模式下接口变成“只教不学”:本机手工配的 VLAN 照样往对端传,但对端传过来的动态 VLAN 它不注册。Forbidden 更彻底,连教都不教,除了 VLAN1 什么都不传播。所以文本里那句“即使允许所有 VLAN 通过,实际通过的 VLAN 也只能是手动配置的那部分”,准确理解是:动态学来的 VLAN 在这个接口上不生效,能通的就是你手工建的那几个。

2.3 全局 GVRP 和接口 GVRP 是两道开关

华为设备的 GVRP 需要两级开启:全局gvrp打开协议进程,接口下gvrp打开该接口的参与资格。只开全局不开接口,接口不收发注册信息;只开接口不开全局,协议根本没跑起来。文本里 S1 的配置顺序是先[S1]gvrp再进接口gvrp,这个顺序没问题,但要注意 S2、S3 的配置文本里出现了grvp的拼写,这是原文的笔误,实际敲的时候必须是gvrp,设备会直接报错不认。这种细节在模拟器里错一个字母就是半小时的排查。

3. 四台设备逐台落地:Trunk、GVRP 与静态 VLAN 的配置顺序

3.1 先把互联口配成 Trunk 并放行全部 VLAN

四台设备的互联关系是 S1 的 23 口接 S2 的 23 口,S2 的 24 口接 S3 的 23 口,S3 的 24 口接 S4 的 23 口。每台设备上需要配 Trunk 的接口如下:S1 只有 GE0/0/23,S2 是 GE0/0/23 和 GE0/0/24,S3 同样是 23 和 24,S4 只有 GE0/0/23。以 S2 为例,完整配置如下:

<S2> system-view [S2] interface GigabitEthernet 0/0/23 [S2-GigabitEthernet0/0/23] port link-type trunk [S2-GigabitEthernet0/0/23] port trunk allow-pass vlan all [S2-GigabitEthernet0/0/23] quit [S2] interface GigabitEthernet 0/0/24 [S2-GigabitEthernet0/0/24] port link-type trunk [S2-GigabitEthernet0/0/24] port trunk allow-pass vlan all [S2-GigabitEthernet0/0/24] quit

port link-type trunk把接口从默认的 hybrid/access 切成 Trunk;port trunk allow-pass vlan all放行 VLAN1 到 4094 全部。这里有个容易忽略的点:Trunk 接口的 PVID 默认是 VLAN1,如果两端 PVID 不一致,未打标签的报文会被划到不同 VLAN,虽然 GVRP 场景下业务报文都带标签,但排查时display port vlan看一眼 PVID 能省不少事。S1、S3、S4 按同样逻辑配各自接口,S1 和 S4 只有一个互联口,配完就退出。

3.2 全局开 GVRP,再逐接口开 GVRP

Trunk 配完后,先开全局,再回到每个 Trunk 接口开接口级 GVRP。以 S3 为例:

<S3> system-view [S3] gvrp [S3] interface GigabitEthernet 0/0/23 [S3-GigabitEthernet0/0/23] gvrp [S3-GigabitEthernet0/0/23] quit [S3] interface GigabitEthernet 0/0/24 [S3-GigabitEthernet0/0/24] gvrp [S3-GigabitEthernet0/0/24] quit

[S3] gvrp是全局开关,没有它接口下的gvrp命令虽然能敲进去但协议不工作。接口下的gvrp默认注册模式就是 Normal,所以不额外敲gvrp registration normal也行。四台设备都按这个顺序配完,用display gvrp status确认全局状态是 Enabled,用display gvrp statistics interface GigabitEthernet 0/0/23看接口有没有在收发 GARP 报文。如果 statistics 里收发包计数一直是 0,说明对端没开或者链路层有问题,先查这个再查 VLAN。

3.3 在两端建静态 VLAN 并挂 access 口

GVRP 只负责传播,不负责凭空产生业务 VLAN 的源头。S1 和 S4 作为两端,必须静态创建 VLAN100 和 VLAN200,并把 access 口划进去。S1 的配置:

<S1> system-view [S1] vlan batch 100 200 [S1] interface GigabitEthernet 0/0/1 [S1-GigabitEthernet0/0/1] port link-type access [S1-GigabitEthernet0/0/1] port default vlan 100 [S1-GigabitEthernet0/0/1] quit [S1] interface GigabitEthernet 0/0/2 [S1-GigabitEthernet0/0/2] port link-type access [S1-GigabitEthernet0/0/2] port default vlan 200 [S1-GigabitEthernet0/0/2] quit

vlan batch 100 200一次建两个 VLAN,比逐条vlan 100再vlan 200省事。access 口用port default vlan指定归属,注意不是port trunk pvid vlan,那是 Trunk 口的命令。S4 做对称配置,1 口进 VLAN100、2 口进 VLAN200。这里原文有个坑要特别说明:S4 上如果先看到 VLAN100/200 是 GVRP 动态注册来的,此时直接port default vlan 100会失败,因为动态 VLAN 不允许挂端口,必须先vlan batch 100 200把它转成静态。原文第 3 步的注释说的就是这个,但配置示例里写成了在 S2 上建 VLAN,这是文本的笔误,实际应该在 S4 上操作。

3.4 验证:从动态 VLAN 表到端到端 ping

配完后按三层验证。第一层看 VLAN 注册:在 S2 上display vlan,VLAN100 和 200 应该显示为动态(通常标注 D),说明 GVRP 学到了。第二层看接口放行:display port vlan active确认 Trunk 口放行的 VLAN 列表包含 100 和 200。第三层才是业务验证:S1 的 VLAN100 下挂一台 PC 配 192.168.100.1/24,S4 的 VLAN100 下挂 192.168.100.2/24,互 ping 通;VLAN200 同理用 192.168.200.x 网段。如果第一层就看不到动态 VLAN,问题在 GVRP 开关或 Trunk;如果第一层有、第三层不通,问题多半在 access 口归属或 PC 的网关/掩码配错。

4. 避坑排查:GVRP 实验里最容易翻车的五个点

4.1 单向注册导致反向不通

现象:S1 到 S4 方向能通,S4 到 S1 方向不通,或者只有一侧的 VLAN 被动态学到。原因:注册信息只从静态 VLAN 的源头往外传,S4 侧如果没有静态创建 VLAN,就没有反向的注册源头,S3 的 24 口学不到 S4 的 VLAN。解决:两端都静态建 VLAN,或者接受单向注册的现实——GVRP 本来就不解决双向对称问题,它只是传播机制。排查时在中间设备上display vlan看动态 VLAN 是从哪个接口学来的,方向一目了然。

4.2 动态 VLAN 挂不上 access 口

现象:port default vlan 100报错,提示 VLAN 不存在或不允许。原因:VLAN100 是 GVRP 动态注册来的,动态 VLAN 只存在于注册表中,不能直接作为端口归属。解决:先vlan batch 100 200手工创建,把动态转静态,再挂端口。这个顺序不能反,先挂端口再建 VLAN 一样报错。

4.3 Fixed 模式配了但没生效

现象:在 S3 的 GE0/0/23 上配了gvrp registration fixed,但display vlan里还是能看到动态学来的 VLAN。原因:Fixed 模式禁止的是“动态注册”,已经注册进来的条目不会立刻清除,需要等注册老化或者手动触发。另外如果配错接口(配到了 24 口而不是 23 口),效果自然不对。解决:配完用display gvrp interface GigabitEthernet 0/0/23确认注册模式确实是 Fixed,然后reset garp statistics或等待老化周期再看。文本第 5 步的配置本身是对的,但验证要看对接口。

4.4 全局开了接口没开,或拼写错误

现象:display gvrp status显示 Enabled,但接口 statistics 收发为 0。原因:接口级gvrp没敲,或者像原文 S2、S3 配置里那样把gvrp敲成了grvp,设备直接报 Unrecognized command。解决:逐接口display this确认有gvrp这一行;拼写错误在模拟器里很常见,敲完命令看回显有没有报错,别一路回车到底。

4.5 Trunk 放行了但 PVID 不一致

现象:GVRP 注册正常,VLAN 表也对,但某些未打标签的报文不通。原因:两端 Trunk 的 PVID 不同,未打标签帧被划到不同 VLAN。GVRP 传播的是带标签的注册信息,不受 PVID 影响,所以 VLAN 表看起来正常,业务却出问题。解决:display port vlan核对两端 PVID,需要一致时用port trunk pvid vlan X显式设置。这个坑在纯 GVRP 实验里不一定触发,但一旦混入 hybrid 口或管理流量就会暴露。

5. 把 Fixed 模式当断点用:一个验证注册边界的技巧

GVRP 实验做完 Normal 模式的全通,很多人就收工了,其实 Fixed 和 Forbidden 才是理解注册边界的最好工具。我的习惯是把 S3 的 GE0/0/23 切成 Fixed,然后观察 S2 的 24 口和 S3 的 23 口两侧 VLAN 表的差异:S3 不再把 S2 传来的动态 VLAN 注册进来,但 S3 自己静态有的 VLAN 仍然会往 S2 传。这时候在 S3 上display vlan会看到动态条目消失,而 S2 上依然能看到 S3 静态 VLAN 的动态副本——一进一出,注册的方向性就非常直观了。

再进一步,把 S3 的 23 口改成 Forbidden,gvrp registration forbidden,此时除 VLAN1 外 S3 什么都不传也不学,S2 的 24 口上 S3 方向的动态 VLAN 全部老化消失。用这个做对照实验,比背三行定义管用得多。验证时配合display gvrp statistics看 GARP 报文计数变化,Forbidden 下该接口的 GARP 收发会明显下降,因为协议报文本身也被抑制了。

还有一个实操细节:改注册模式后,已注册的动态 VLAN 不会瞬间消失,GARP 有老化周期,急着看结果可以reset garp statistics清计数再等一轮,或者在接口下先undo gvrp再gvrp强制重新协商。我一般会在改模式前后各存一次display vlan的输出做 diff,比盯着屏幕猜靠谱。从那以后我每次做 GVRP 实验,都强制先在两端各建一个静态 VLAN 做双向源头,再动注册模式,不然单向注册的玄学能让人怀疑人生。希望帮到你。

本文还有配套的精品资源,点击获取

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

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

立即咨询