|
发表于 2012-1-14 12:48:56
|
显示全部楼层
GARP(generic attribute registration protocol)是一种通用属性注册协议,该协议提供了一种机制用于协助同一个交换网内的交换成员之间分发、传播和注册某种信息(如VLAN、组播地址等)。
GARP本身不作为一个实体存在于交换机中,遵循GARP协议的应用实体称为GARP应用,目前主要的GARP应用为GVRP和GMRP。当GARP应用实体存在于交换机的某个端口上时,该端口对应于一个GARP应用实体。
通过GARP机制,一个GARP成员上的配置信息会迅速传播到整个交换网。GARP成员可以是终端工作站或网桥。GARP成员通过声明或回收声明通知其它的GARP成员注册或注销自己的属性信息,并根据其它GARP成员的声明或回收声明注册或注销对方的属性信息。
GARP成员之间的信息交换借助于消息完成,GARP起主要作用的消息类型有三类,分别为JOIN、LEAVE、LEAVEALL。当一个 GARP应用实体希望其它交换机注册自己的某属性信息时,将对外发送JOIN消息。注销时发送LEAVE消息。每个GARP应用实体启动后,将同时启动 LEAVEALL定时器,当超时后将对外发送LEAVEALL消息。JOIN消息与LEAVE消息配合确保消息的注销或重新注册。通过消息交互,所有待注 册的属性信息可以传播到同一交换网内的所有交换机上。
GARP应用实体的协议数据报文的目的MAC地址都是特定的组播MAC地址。支持GARP特性的交换机在接收到GARP应用实体的报文后,会根据其目的MAC地址加以区分并交给不同的GARP应用(如GVRP或GMRP)去处理。
GARP(以及GMRP)在IEEE802.1p标准(现已合入IEEE802.1D标准)文本中有详细的表述。
GVRP(GARP VLAN REGISTRATION PROTOCOL)是GARP的一种应用,它基于GARP的工作机制,维护交换机中的VLAN动态注册信息,并传播该信息到其它的交换机中。所有支持 GVRP特性的交换机能够接收来自其它交换机的VLAN注册信息,并动态更新本地的VLAN注册信息,包括当前的VLAN成员、这些VLAN成员可以通过 哪个端口到达等。而且所有支持GVRP特性的交换机能够将本地的VLAN注册信息向其它交换机传播,以便使同一交换网内所有支持GVRP特性的设备的 VLAN信息达成一致。GVRP传播的VLAN注册信息既包括本地手工配置的静态注册信息,也包括来自其它交换机的动态注册信息。
GVRP在IEEE802.1Q标准文本中有详细的表述。
GVRP配置包括:
全局开启/关闭GVRP
端口开戾/关闭GVRP
配置GVRP注册类型
必须先启动全局GVRP,才能开启端口GVRP;而GVRP注册类型在启动了端口GVRP以后才能生效。此外,GVRP必须在TRUNK端口上进行设置。
// 系统视图
gvrp
undo gvrp
缺省处于关闭状态
// 端口视图
gvrp
undo gvrp
缺省处于关闭状态。开启端口GVRP前,必须开启全局GVRP,并且必须在trunk端口操作。
GVRP注册类型包括:normal,fixed,forbidden(请参考IEEE802.1Q)
normal:允许在该端口动态或手工创建、注册和注销VLAN
FIXED:当把一个TRUNK端口设置为FIXED时,禁止该端口动态注册、注销VLAN,只传播手动配置的静态VLAN信息,不传播动态 VLAN信息,也就是说被设置为FIXED模式的TRUNK端口,即使允许所有VLAN通过,实际通过的VLAN也只能是手动配置的那部分。
forbidden:在该端口将注销除VLAN1之外的所有VLAN,并且禁止在该端口创建和注册任何其它VLAN (PS:感觉无用)
GVRP registration{normal|fixed|forbidden}
undo gvrp registration
缺省为normal
display gvrp statistics
display gvrp status
debugging gvrp {packet|event}
undo debugging gvrp {packet|event}
示例:
// switch a
gvrp
interface ethernet3/1/1
port link-type trunk
port trunk permit vlan all
gvrp
// switch b
gvrp
interface ethernet4/1/1
port link-type trunk
port trunk permit vlan all
gvrp
H3C交换机的GVRP问题
2011-7-28 17:18:50 上传下载附件 (37.02 KB)
上面写的配置步骤如下:
(1)将所有与其它交换机相连的端口均设置为Trunk端口,并设置允许添加所有的VLAN到这些Trunk端口。
(2)在各个交换机上手工创建了如下所示的静态VLAN:
SWITCH A:VLAN5~VLAN10; SWITCH C:VLAN5~VLAN10;
SWITCH D:VLAN15~VLAN20; SWITCH E:VLAN15~VLAN20;
SWITCH E:VLAN25~VLAN30;
(3)在各个交换机中全局启动GVRP,并分别启动各个相连Trunk端口的GVRP,设置各个端口的GVRP注册类型为缺省值Normal。
那么启动GVRP后,所有启动GVRP的Trunk端口将会根据协议学习到配置在其它交换机上的VLAN,并将这些VLAN配置到相应的Trunk端口上。
启动交换机A~F的GVRP协议后,VLAN在各端口的注册情况如下:
SWITCH A-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20,VLAN25~VLAN30
SWITCH A-port2:VLAN1,VLAN5~VLAN10
SWITCH A-port3:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20
SWITCH B-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20
SWITCH B-port2:VLAN1,VLAN15~VLAN20
SWITCH B-port3:VLAN1,VLAN25~VLAN30
SWITCH C-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20,VLAN25~VLAN30
SWITCH D-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20,VLAN25~VLAN30
SWITCH E-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20,VLAN25~VLAN30
SWITCH F-port1:VLAN1,VLAN5~VLAN10,VLAN15~VLAN20,VLAN25~VLAN30
对此我感到很费解,既然二级交换机C、D、E、F的Trunk端口都学习到了所有的VLAN,为什么相应的A、B上的端口没有呢?
配置GVRP时,好像没有类似于cisco的vtp prune命令吧?那么GVRP是自动进行裁剪的吗?
哪位大侠有过实际经验或听过华为的培训,请指点一下!
网友1:
这个问题,与在华为的构建交换教材提到的问题类似。
最初,我也曾在这上面发个这种疑惑的贴子。
可以这样理解,能够说得过去,虽然也牵强。
就是一级交换机上的端口,不学习从他相邻端口学习过来的vlan,如B2口,只能学习到本身的静态vlan15-20,而不学习从B1,B3口的vlan,其它类似。 二级交换机则可以全部学习过来。
网友2:
我的理解是 看交换部分的 VLAN基础一章,有一张图,(3.4.1.1GARP/GVRP基础 )
图中说的很清楚。通过 注册--声明--注册 的过程来传播的。
也就是如果是VLAN5-VLAN 10传播的话,首先
C -PORT1-------A-PORT2------B-PORT1--E-PORT 1不知道,
--F-PORT 1不知道,
但是事实上C
C上的VLAN 划分本身是知道的。所以就知道了
但是由于A上的也同样有
这么个传播过程,所以VLAN5-VLAN 10被一些断口 注册到
刚才的说的那条C -PORT1-------A-PORT2------B-PORT1--E-PORT 1注册,
-F-PORT 1注册;
其余断口为属性,为不注册的;
C -PORT1-------A-PORT2------B-PORT1--E-PORT 1注册,
--F-PORT 1注册;
事实证明 只有 B-PORT2--B-PORT 3没有注册到 VLAN 5-VLAN10,与分析结果一致的
有兴趣的朋友可以自己把A 的VLAN 5-VLAN10的注册过程也向C上这样写出来,把结果注册的防在一起,就是结果
|
30#
2012-1-14 12:48:56
回复(0)
收起回复
|