GVRP基本概念
在设备上,每个应用GVRP协议的接口被称为一个GVRP应用实体。GVRP应用实体通过发送声明或回收声明来通知其他GVRP应用实体来注册或注销自己的属性信息,并根据其它实体发来的声明或回收声明来注册或注销对方的属性信息。
我们将通过手工创建的VLAN称为静态VLAN,通过GVRP协议学习到的VLAN称为动态VLAN。
消息类型
消息类型 |
功能 |
说明 |
---|---|---|
Join消息 |
当一个GVRP应用实体创建了VLAN并且希望其他设备注册自己的属性信息时,就对外发送Join消息。 |
Join消息包括JoinIn和JoinEmpty两种。二者的区别是:
|
Leave消息 |
与Join消息的功能相反,当一个GVRP应用实体删除了静态VLAN并且希望其他设备注销自己的属性信息时,就对外发送Leave消息。 |
Leave消息包括LeaveIn和LeaveEmpty两种。二者的区别是:
|
LeaveAll消息 |
用来注销网络中GVRP应用实体上所有的VLAN属性,以使其它应用实体重新注册本实体上的属性信息,从而周期性地清除网络中的垃圾属性(例如某个属性已经被删除,但由于设备突然断电,并没有发送Leave消息来通知其他实体注销此属性)。 |
接口使能GVRP的同时会启动LeaveAll定时器,当该定时器超时后应用实体将对外发送LeaveAll消息。 |
定时器
定时器名称 |
功能 |
说明 |
---|---|---|
Join定时器 |
用来控制Join消息的发送。每个接口维护独立的Join定时器。 |
为了保证Join消息能够可靠地传输到其它应用实体,发送第一个Join消息后将等待一个Join定时器的时间间隔,如果在一个Join定时器时间内收到JoinIn消息,则不发送第二个Join消息;如果没收到,则再发送一个Join消息。 |
Hold定时器 |
用来控制Join消息和Leave消息的发送。每个接口维护独立的Hold定时器。 |
应用实体上配置属性或应用实体接收到Join消息或Leave消息时不会立刻将该消息传播到其它设备,而是在等待一个Hold定时器后再发送消息,设备将此Hold定时器时间段内接收到的消息尽可能封装成最少数量的报文,这样可以减少报文的发送量。 |
Leave定时器 |
用来控制Leave消息的发送。每个接口维护独立的Leave定时器。 |
接口上收到Leave消息或者LeaveAll消息时启动Leave定时器,如果在Leave定时器超时之前没有接收到该属性的Join消息,属性会被注销。 |
LeaveAll定时器 |
用来控制LeaveAll消息的发送,重新启动所有的定时器,包括LeaveAll定时器。每个设备只在全局维护一个LeaveAll定时器。 |
每个GARP应用实体启动后,将同时启动LeaveAll定时器,当该定时器超时后,GARP应用实体将对外发送LeaveAll消息,以使其他GARP应用实体重新注册本实体上所有的属性信息。随后再启动LeaveAll定时器,开始新的一轮循环。在全网有多台设备的情况下,各个设备的LeaveAll定时器的取值可能不相同,但每台设备都将以全网最小的LeaveAll定时器为准发送LeaveAll消息。 |
四个定时器设置的时间长度关系为:LeaveAll定时器 > Leave定时器 > 2 x Join定时器 >= 4 x Hold定时器。 |
注册模式
- Normal模式:允许该接口动态注册、注销VLAN,传播动态VLAN以及静态VLAN信息。
- Fixed模式:禁止该接口动态注册、注销VLAN,只传播本实体的静态VLAN信息,不传播不学习动态VLAN信息。也就是说被设置为Fixed模式的Trunk接口,即使允许所有VLAN通过,实际通过的VLAN也只能是本实体手动创建的那部分。
- Forbidden模式:禁止该接口动态注册、注销VLAN,不传播除VLAN 1以外的任何的VLAN信息。也就是说被配置为Forbidden模式的Trunk接口,即使允许所有VLAN通过,实际通过的VLAN也只能是VLAN 1。
SwitchA的注册模式 |
SwitchB的注册模式 |
动态VLAN的学习结果 |
---|---|---|
Normal |
Normal |
SwitchA上学习到动态VLAN 20,SwitchB上学习到动态VLAN 10。 |
Fixed |
SwitchA上学习到动态VLAN 20,SwitchB上没有学习到动态VLAN 10。 |
|
Forbidden |
SwitchA和SwitchB上均没有学习到对端的VLAN。 |
|
Fixed |
Fixed |
SwitchA和SwitchB上均没有学习到对端的VLAN。 |
Forbidden |
SwitchA和SwitchB上均没有学习到对端的VLAN。 |
|
Forbidden |
Forbidden |
SwitchA和SwitchB上均没有学习到对端的VLAN。 |