10-GVRP配置
本章节下载: 10-GVRP配置 (205.78 KB)
GVRP(GARP VLAN Registration Protocol,GARP VLAN注册协议)是GARP(Generic Attribute Registration Protocol,通用属性注册协议)的一种应用,下面首先介绍一下GARP的相关内容。
GARP提供了一种机制,用于协助同一个局域网内的交换成员之间分发、传播和注册某种信息(如VLAN、组播地址等)。
GARP本身不作为一个实体存在于设备中,遵循GARP协议的应用实体称为GARP应用,GVRP就是GARP的一种应用。当GARP应用实体存在于设备的某个端口上时,该端口对应于一个GARP应用实体。
(1) GARP消息
GARP成员之间的信息交换借助于消息的传递来完成,主要有三类消息起作用,分别为Join消息、Leave消息和LeaveAll消息。
l 当一个GARP应用实体希望其它设备注册自己的属性信息时,它将对外发送Join消息;当收到其它实体的Join消息或本设备静态配置了某些属性,需要其它GARP应用实体进行注册时,它也会向外发送Join消息。
l 当一个GARP应用实体希望其它设备注销自己的属性信息时,它将对外发送Leave消息;当收到其它实体的Leave消息注销某些属性或静态注销了某些属性后,它也会向外发送Leave消息。
l 每个GARP应用实体启动后,将同时启动LeaveAll定时器,当该定时器超时后GARP应用实体将对外发送LeaveAll消息,LeaveAll消息用来注销所有的属性,以使其它GARP应用实体重新注册本实体上所有的属性信息。
Join消息、Leave消息与LeaveAll消息配合确保信息的重新注册或注销。
通过消息交互,所有待注册的属性信息可以传播到同一局域网配置了GARP的所有设备上。
(2) GARP定时器
GARP消息发送的时间间隔是通过定时器来实现的,GARP定义了四种定时器,用于控制GARP消息的发送周期:
l Hold定时器:当GARP应用实体接收到其它设备发送的注册信息时,不会立即将该注册信息作为一条Join消息对外发送,而是启动Hold定时器,当该定时器超时后,GARP应用实体将此时段内收到的所有注册信息放在同一个Join消息中向外发送,从而节省带宽资源。
l Join定时器:GARP应用实体可以通过将每个Join消息向外发送两次来保证消息的可靠传输,在第一次发送的Join消息没有得到回复的时候,GARP应用实体会第二次发送Join消息。两次Join消息发送之间的时间间隔用Join定时器来控制。
l Leave定时器:当一个GARP应用实体希望注销某属性信息时,将对外发送Leave消息,接收到该消息的GARP应用实体启动Leave定时器,如果在该定时器超时之前没有收到Join消息,则注销该属性信息。
l LeaveAll定时器:每个GARP应用实体启动后,将同时启动LeaveAll定时器,当该定时器超时后,GARP应用实体将对外发送LeaveAll消息,以使其它GARP应用实体重新注册本实体上所有的属性信息。随后再启动LeaveAll定时器,开始新的一轮循环。
l GARP定时器的值将应用于所有在同一局域网内运行的GARP应用(如GVRP)。
l Hold定时器、Join定时器和Leave定时器的值可以在每个以太网端口单独进行设置;而LeaveAll定时器只需在设备的全局进行设置即可,设置完成后,该值将在设备的所有端口上生效。
l 在全网有多台设备的情况下,各个设备的LeaveAll定时器的取值可能不相同,但各设备都将以全网最小的LeaveAll定时器为准发送LeaveAll消息。因为每次发送LeaveAll消息时,当其它设备接收到之后都会清零LeaveAll定时器,因此即使全网存在很多不同的LeaveAll定时器,也只有最小的那个LeaveAll定时器起作用。
通过GARP机制,一个GARP成员上的配置信息会迅速传播到整个局域网。GARP成员可以是终端工作站或网桥。GARP成员通过声明或回收声明来通知其它的GARP成员注册或注销自己的属性信息,并根据其它GARP成员的声明或回收声明注册或注销对方的属性信息。当端口接收到一个属性声明时,该端口将注册该属性,如果端口接收到回收属性的声明,该端口将注销该属性。
GARP应用实体的协议数据报文以特定的组播MAC地址为目的MAC。设备在接收到GARP应用实体的报文后,会根据其目的MAC地址加以区分并交给不同的GARP应用(如GVRP)去处理。
GARP的报文格式如下图所示。
图1-1 GARP报文格式
各个字段的说明如表1-1所示。
字段 |
含义 |
取值 |
Protocol ID |
协议ID |
取值为1 |
Message |
消息,可以包含多个消息,每个Message由Attribute Type、Attribute List构成 |
- |
Attribute Type |
属性类型,由具体的GARP的应用定义 |
对于GVRP,属性类型为0x01,表示属性取值为VLAN ID |
Attribute List |
属性列表,由多个属性构成 |
- |
Attribute |
属性,每个属性由Attribute Length、Attribute Event、Attribute Value构成 |
- |
Attribute Length |
属性长度 |
2~255,单位为字节 |
Attribute Event |
属性描述的事件 |
0:LeaveAll Event 1:JoinEmpty Event 2:JoinIn Event 3:LeaveEmpty Event 4:LeaveIn Event 5:Empty Event |
Attribute Value |
属性取值 |
GVRP的属性取值为VLAN ID,但LeaveAll属性的Attribute Value值无效 |
End Mark |
结束标志、GARP的PDU的结尾标志 |
以0x00取值表示 |
GVRP是GARP的一种应用。它基于GARP的工作机制,维护设备中的VLAN动态注册信息,并传播该信息到其它的设备中。
设备启动GVRP特性后,能够接收来自其它设备的VLAN注册信息,并动态更新本地的VLAN注册信息,包括当前的VLAN成员、这些VLAN成员可以通过哪个端口到达等。而且设备能够将本地的VLAN注册信息向其它设备传播,以便使同一局域网内所有设备的VLAN信息达成一致。GVRP传播的VLAN注册信息既包括本地手工配置的静态注册信息,也包括来自其它设备的动态注册信息。
GVRP的端口注册模式有三种:Normal、Fixed和Forbidden,各模式描述如下。
l Normal模式:允许该端口动态注册、注销VLAN,传播动态VLAN以及静态VLAN信息。
l Fixed模式:禁止该端口动态注册、注销VLAN,只传播静态VLAN信息,不传播动态VLAN信息。也就是说被设置为Fixed模式的Trunk口,即使允许所有VLAN通过,实际通过的VLAN也只能是手动配置的那部分。
l Forbidden模式:禁止该端口动态注册、注销VLAN,不传播除VLAN1以外的任何的VLAN信息。也就是说被配置为Forbidden模式的Trunk端口,即使允许所有VLAN通过,实际通过的VLAN也只能是VLAN1。
GVRP在IEEE 802.1Q标准文本中有详细的表述。
GVRP只能在Trunk端口进行配置。
GVRP配置包括:配置GVRP功能、配置GARP定时器。
在开启各端口上的GVRP功能之前,必须先开启全局的GVRP功能。
表1-2 配置GVRP功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启全局GVRP功能 |
gvrp |
必选 缺省情况下,全局GVRP功能处于关闭状态 |
|
进入端口视图或端口组视图 |
进入二层以太网端口或二层聚合端口视图 |
interface interface-type interface-number |
二者必选其一 进入端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
开启端口GVRP功能 |
gvrp |
必选 缺省情况下,端口GVRP功能处于关闭状态 |
|
配置GVRP端口注册模式 |
gvrp registration { fixed | forbidden | normal } |
可选 缺省情况下,GVRP端口注册模式为Normal |
l GVRP功能与业务环回功能互斥,两者不可以同时应用。
l GVRP功能只能运行在MSTP的CIST实例上,并且CIST实例上被MSTP阻塞的端口不能收发GVRP报文。
l 如果用户在配置了远程端口镜像功能的同时启用了GVRP功能,GVRP可能将远程镜像VLAN注册到不希望的端口上,此时在镜像目的端口就会收到很多不必要的报文。关于端口镜像功能的介绍,请参见“接入分册”中的“端口镜像配置”。
l 在聚合成员端口上进行的配置,只在成员端口退出聚合组之后才能生效。关于聚合的介绍请参见“接入分册”中的“链路聚合配置”。
l 在二层聚合端口上启用GVRP功能后,会同时在二层聚合端口和对应的所有选中成员端口上进行动态VLAN的注册或注销。
l 在开启了GVRP功能的Trunk端口上,用户还需要配置port trunk permit vlan all命令,以保证所有动态注册的VLAN都能够从该端口通过。
在GARP所定义的四种定时器中:
l LeaveAll定时器的值只需在系统视图下全局配置即可,并对所有端口都生效;
l 而Hold定时器、Join定时器和Leave定时器的值则需对各端口单独配置。
表1-3 配置GARP定时器
命令 |
说明 |
||
进入系统视图 |
system-view |
- |
|
配置LeaveAll定时器 |
garp timer leaveall timer-value |
可选 缺省情况下,LeaveAll定时器的值为1000厘秒 |
|
进入端口视图或端口组视图 |
进入二层以太网端口或二层聚合端口视图 |
interface interface-type interface-number |
二者必选其一 进入端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
配置Hold定时器、Join定时器和Leave定时器 |
garp timer { hold | join | leave } timer-value |
可选 缺省情况下,Hold定时器的值为10厘秒,Join定时器的值为20厘秒,Leave定时器的值为60厘秒 |
需要注意的是:
l 各定时器的取值必须是5厘秒的倍数。
l 各定时器的取值范围会由于其他定时器取值的改变而改变。如果用户想要设置的定时器的值不在当前可以设置的取值范围内,可以通过改变相关定时器的取值实现。
l 如果用户想恢复各定时器的值为缺省值,可以先恢复Hold定时器,再依次恢复Join、Leave和LeaveAll定时器。
l 在聚合成员端口上进行的配置,只在成员端口退出聚合组之后才能生效。关于聚合的介绍请参见“接入分册”中的“链路聚合配置”。
各个定时器的取值范围之间的关系如表1-4所示。
定时器 |
取值下限 |
取值上限 |
Hold定时器 |
10厘秒 |
上限小于等于1/2 Join定时器的值,可以通过改变Join定时器的取值改变 |
Join定时器 |
下限大于等于2倍Hold定时器的值,可以通过改变Hold定时器的取值实现 |
上限小于1/2 Leave定时器的取值,可以通过改变Leave定时器的取值改变 |
Leave定时器 |
下限大于2倍Join定时器的值,可以通过改变Join定时器的取值改变 |
上限小于LeaveAll定时器的值,可以通过改变LeaveAll定时器的取值改变 |
LeaveAll定时器 |
下限大于所有端口Leave定时器的取值,可以通过改变Leave定时器的取值改变 |
32765厘秒 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后GARP、GVRP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除GARP的统计信息。
表1-5 GVRP显示和维护
操作 |
命令 |
显示GARP统计信息 |
display garp statistics [ interface interface-list ] |
显示GARP定时器的值 |
display garp timer [ interface interface-list ] |
显示GVRP本地VLAN信息 |
display gvrp local-vlan interface interface-type interface-number |
显示GVRP状态机信息 |
display gvrp state interface interface-type interface-number vlan vlan-id |
显示GVRP统计信息 |
display gvrp statistics [ interface interface-list ] |
显示GVRP的全局状态信息 |
display gvrp status |
显示当前的动态VLAN操作信息 |
display gvrp vlan-operation interface interface-type interface-number |
清除GARP统计信息 |
reset garp statistics [ interface interface-list ] |
为了实现设备之间VLAN信息的动态注册和更新,需要在设备上启动GVRP,端口注册模式为缺省的Normal模式。
图1-2 配置GVRP组网图
(1) 配置Device A
# 开启全局GVRP。
<DeviceA> system-view
[DeviceA] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type trunk
[DeviceA-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceA-Ethernet1/0/1] gvrp
[DeviceA-Ethernet1/0/1] quit
# 配置静态VLAN2。
[DeviceA] vlan 2
(2) 配置Device B
# 开启全局GVRP。
<DeviceB> system-view
[DeviceB] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port link-type trunk
[DeviceB-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceB-Ethernet1/0/1] gvrp
[DeviceB-Ethernet1/0/1] quit
# 配置静态VLAN3。
[DeviceB] vlan 3
(3) 显示配置结果
# 显示Device A上的动态VLAN信息。
[DeviceA] display vlan dynamic
Now, the following dynamic VLAN exist(s):
3
# 显示Device B上的动态VLAN信息。
[DeviceB] display vlan dynamic
Now, the following dynamic VLAN exist(s):
2
为了实现设备之间部分VLAN信息的动态注册和更新,需要在设备上启动GVRP,配置Device A的端口注册模式为Fixed,Device B的端口注册模式为缺省的Normal模式。
图1-3 配置GVRP组网图
(1) 配置Device A
# 开启全局GVRP。
<DeviceA> system-view
[DeviceA] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type trunk
[DeviceA-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceA-Ethernet1/0/1] gvrp
# 配置端口注册模式为Fixed。
[DeviceA-Ethernet1/0/1] gvrp registration fixed
[DeviceA-Ethernet1/0/1] quit
# 配置静态VLAN2。
[DeviceA] vlan 2
(2) 配置Device B
# 开启全局GVRP。
<DeviceB> system-view
[DeviceB] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port link-type trunk
[DeviceB-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceB-Ethernet1/0/1] gvrp
[DeviceB-Ethernet1/0/1] quit
# 配置静态VLAN3。
[DeviceB] vlan 3
(3) 显示配置结果
# 显示Device A上的动态VLAN信息。
[DeviceA] display vlan dynamic
No dynamic vlans exist!
# 显示Device B上的动态VLAN信息。
[DeviceB] display vlan dynamic
Now, the following dynamic VLAN exist(s):
2
为了阻止设备之间VLAN信息的动态注册和更新,需要在设备上启动GVRP,Device A的端口注册模式为Forbidden,Device B的端口注册模式为缺省的Normal模式。
图1-4 配置GVRP组网图
(1) 配置Device A
# 开启全局GVRP。
<DeviceA> system-view
[DeviceA] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type trunk
[DeviceA-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceA-Ethernet1/0/1] gvrp
# 配置端口注册模式为Forbidden。
[DeviceA-Ethernet1/0/1] gvrp registration forbidden
[DeviceA-Ethernet1/0/1] quit
# 配置静态VLAN2。
[DeviceA] vlan 2
(2) 配置Device B
# 开启全局GVRP。
<DeviceB> system-view
[DeviceB] gvrp
# 将二层以太网端口Ethernet1/0/1配置为Trunk端口,并允许所有VLAN通过。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port link-type trunk
[DeviceB-Ethernet1/0/1] port trunk permit vlan all
# 在Trunk端口上开启GVRP。
[DeviceB-Ethernet1/0/1] gvrp
[DeviceB-Ethernet1/0/1] quit
# 配置静态VLAN3。
[DeviceB] vlan 3
(3) 显示配置结果
# 显示Device A上的动态VLAN信息。
[DeviceA] display vlan dynamic
No dynamic vlans exist!
# 显示Device B上的动态VLAN信息。
[DeviceB] display vlan dynamic
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!