欢迎user
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)去处理。
图1 GARP报文格式
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也只能是VLAN 1。