VLAN信息的传播
1.1 VLAN动态注册的背景
如果交换机收到的数据帧带有VLAN Tag,但交换机上没有配置此VLAN,则交换机会把数据帧丢弃,所以,交换机只会转发本交换机已存在的VLAN的数据帧。
如果网络里交换机很多,需要配置的VLAN也很多,则需要网络管理员在每台交换机上配置大量的VLAN,工作量很大。
如果能有一种动态VLAN配置技术,让交换机能在一定的网络范围内动态学习其他交换机的VLAN信息,动态配置VLAN,并把相关端口加入动态VLAN中,保证VLAN在该网络中的连通性和统一性,则会解决以上两种情况下出现的问题,并且大大简化VLAN的配置管理,为网络的管理带来很大便利。
目前,通用的动态VLAN配置技术为GVRP(GARP VLAN Registration Protocol,GARP VLAN注册协议)。要了解GVRP,需要先了解一下GARP(Generic Attribute Registration Protocol,通用属性注册协议)
1.2 GARP协议简介
GARP提供了一种机制,为处于同一个交换机网内的交换成员之间提供了分发、传播、注册某种信息的手段,如VLAN、组播组地址等。通过GARP机制,一个GARP成员上的配置信息会迅速传播到整个交换网。GARP成员可以是终端工作站或网桥。GARP成员通过声明或撤销声明通知其他的GARP成员注册或注销自己的属性信息,并根据其他GARP成员的声明或撤销声明注册或注销对方的属性信息。
当端口接收到一个属性声明时,该端口将注册该属性,如果端口接收到撤销属性的声明,该端口将注销该属性。很明显,GARP的属性注册和撤销仅仅是对于接收到GARP BPDU的端口而言的,另外一点就是,属性的声明注册过程是沿着STP树单向传播的。
GARP本身仅仅是一个通用协议规范,不作为一个实体在交换机中存在。遵循GARP的应用实体称为GARP应用。GVRP就是主要的GARP应用之一。
GARP应用实体的协议数据帧都以特定的组播MAC地址为目的MAC地址。在支持GARP特性的交换机中,交换机接收到GARP应用实体的帧时,根据MAC地址加以区分后,交由不同的应用处理,如GVRP或GMRP。GVRP的组播目的MAC地址为0180-C200-0021。
GVRP作为GARP的一个应用,协议机制和GARP完全一样,只是定义了自己独有的属性及其语义语法、帧封装等。GVRP中的属性是VLAN ID信息。
GARP应用实体之间的信息交换借助于各种信息的传递来完成,其中主要有如下5类消息起作用
(1)Empty:发送者不声明该属性,发送者未注册该属性但希望接收到该属性的声明。
(2)JoinIn:发送者希望声明该属性,而且发送者已注册。
(3)JoinEmpty:发送者希望声明该属性,发送者未注册该属性但希望接收到该属性的声明。
(4)Leave:发送者希望撤销该属性的声明,即希望接收者注销该属性。
(5)LeaveAll:发送者希望撤销所有属性的声明,即希望接收者注销所有属性。
GARP消息发送的时间间隔是通过定时器来实现的,GARP的定时器也就是GVRP的定时器。GARP定义了下列4种定时器,用于控制各GARP消息的发送周期。
(1)Hold定时器:当GARP应用实体接收到其他设备发送的注册信息时,不会立即将该注册细腻些作为一条Join消息对外发送,而是启动Hold定时器。当该定时器超时后,GARP应用实体将此时段内收到的所有注册信息放在同一个Join消息中向外发送,从而节省带宽资源。
(2)Join定时器:当GARP应用实体可以通过将每个Join消息向外发送两次来保证消息的可靠传输,在第一次发送Join消息没有得到回复的时候,GARP应用实体会第二次发送Join消息。两次Join消息发送之间的时间间隔用Join定时器来控制。
(3)Leave定时器:当一个GARP应用实体希望注销某属性信息时,将对外发送Leave消息,接收到该消息的GARP应用实体启动Leave定时器,如果在该定时器超时之前没有收到Join消息,则注销该属性信息。
(4)LeaveAll定时器:每个GARP应用实体启动后,将同时启动LeaveAll定时器,当该定时器超时后,GARP应用实体将对外发送LeaveAll消息,以使其他GARP应用实体重新注册本实体上所有的属性信息。随后再启动LeaveAll定时器,开始新的一轮循环。
各个定时器取值范围之间的关系如表1-1所示,各定时器的取值范围会随着与它相关的定时器取值的改变而改变。如果用户想要设置的定时器的值不在当前可以设置的取值范围内,可以通过改变相关定时器的取值来实现。
定时器 | 可配范围 | 默认值/ms | 推荐值 |
---|---|---|---|
Hold | 上限:小于等于1/2 Join定时器的值 下限:100ms | 100 | 1000 |
Join | 上限:小于1/2Leave定时器的取值 下限:大于等于2倍Hold定时器的值 | 200 | 6000 |
Leave | 上限:小于LeaveAll定时器的值 下限:大于2倍Join定时器的值 | 600 | 30000 |
LeaveAll | 上限:327650ms 下限:大于Leave定时器的取值 | 10000 | 120000 |
1.3 GVRP协议简介
设备开启GVRP功能后,能够接收来自其他设备的VLAN注册信息,并动态更新本地的VLAN注册信息,包括当前的VLAN成员、这些VLAN成员可通过哪个端口到达等。而且设备能够将本地的VLAN注册信息向其他设备传播,以便使同一局域网内所有设备的VLAN信息达成一致。
(1)Normal模式:允许该端口动态注册或注销VLAN,传播动态VLAN以及静态VLAN信息。
(2)Fixed模式:禁止该端口动态注册或注销VLAN,只传播静态VLAN信息,不传播动态VLAN信息。也就是说被设置为Fixed模式的Trunk端口,即使允许所有VLAN通过,实际通过的VLAN也只能是手动配置的静态VLAN。
(3)Forbidden模式:禁止该端口动态注册或注销VLAN,不传播除VLAN1以外的任何VLAN信息。也就是说被设置为Forbidden模式的Trunk端口,即使允许所有VLAN通过,实际通过的VLAN也只能是VLAN1。