六、GVRP配置与管理
GVRP(GARP VLAN Registration Protocol,GARP VLAN注册协议)协议,只需要在其中一个交换机中创建所需的VLAN,然后通过自动注册功能在网络中其他交换机中自动创建所需的VLAN。GVRP是GARP(GenericAttribute Registration Protocol,通用属性注册协议)的一种应用,是一种通常所说的VLAN中继。GVRP实现动态分发、注册和传播VLAN信息,但GVRP注册功能仅可在连接网络设备的Trunk端口上使能,所以用户计算机所连接的端口仍不能通过GVRP功能自动加入到所需的VLAN中,仍需要采取手动配置。
每一个参与协议的端口可以视为一个应用实体。当GVRP在设备上启动的时候,每个启动GVRP的端口对应一个GVRP应用实体。
GVRP消息类型
在GVRP应用实体之间的信息交互过程中主要有三类消息起作用,分别是Join消息、Leave消息和LeaveAll消息。
(1)Join(加入)消息。Join消息分为JoinEmpty和JoinIn两种。
(2)Leave(注销)消息。Leave消息分为LeaveEmpty和LeaveIn两种。
(3)LeaveAll(全部注销)消息。每个应用实体启动后,将同时启动LeaveAll定时器,当该定时器超时后应用实体将对外发送LeaveAll消息。LeaveAll消息用来注销所有属性,以使其他应用实体重新注册本实体上所有的属性信息,以此来周期性的清除网络中的垃圾属性。
GARP定时器(或是说GVRP定时器)
GARP协议中用到了Join、Hold、Leave和LeaveAll4个定时器。
(1)Join(加入)定时器。Join定时器是用来确保Join消息(包括JoinIn消息和JoinEmpty消息)可靠发送。
(2)Hold(保持)定时器。Hold定时器是用来控制Join消息(包括JoinIn消息和JoinEmpty消息)和Leave消息(包括LeaveIn消息和LeaveEmpty消息)的发送。
(3)Leave(注销)定时器。是用来控制属性注销的。
(4)LeaveAll(全部注销)定时器。每个设备只在全局维护一个LeaveAll定时器。
注册模式
手工配置的VLAN称为静态VLAN,通过GVRP协议创建的VLAN称为动态VLAN。GVRP有3种注册模式,它们对静态VLAN和动态VLAN的处理方式各不相同。
(1)Normal模式:允许该端口动态注册、注销VLAN,传播动态VLAN和静态VLAN信息。
(2)Fixed模式:禁止该端口动态注册、注销VLAN,只传播静态VLAN信息,不传播动态VLAN信息。也就是说被设置为Fixed模式的Trunk端口,即使允许所有VLAN通过,实际通过的VLAN也只能是手动创建的那部分。
(3)Forbidden模式:禁止该端口动态注册、注销VLAN,不传播除VLAN1以外的任何VLAN信息。就是说被配置为Forbidden模式的Trunk端口,即使允许所有VLAN通过,实际通过的VLAN也只能是VLAN1。
GVRP功能只能配置在Trunk类型的接口上,并且需要保证所有需要动态注册的VLAN都能够从该端口通过。只有收到JoinEmpty消息或JoinIn消息的端口才能加入动态VLAN。
GVRP工作原理
GVRP的工作过程可以分为4个阶段描述:VLAN信息的单向注册、VLAN信息的双向注册、VLAN信息的单向注销、VLAN信息的双向注销。
注册的时候,Port4是动态注册的,虽然后来手动在SwitchC上创建了静态VLAN2,它向Port3发送依然是JoinIn消息;注销时,第②步Port4不会从VLAN2中删除,还是保持原来动态加入VLAN2,所以向SwitchB的Port3发送的是JoinIn消息,手工删除VLAN2后,发送的注销消息就是LeaveEmpty消息。
实验:如下拓扑
进行如下配置:
配置后进行状态查询:
通过上面的查看命令,SwitchA~C都是只有一个common类型的VLAN1,SwitchC忘记配置端口的gvrp功能,给他配上。
然后在SwitchA上创建VLAN2,再看一下各交换机的信息:
以上是单向注册后的结果,现在在SwitchC上将动态VLAN2转为静态VLAN2,即创建VLAN2,后:
至此,交换机A、B、C相连的端口都加入VLAN2(有动态注册、有静态)
在SwitchA上删除VLAN2(开始单向注销):
在SwitchC上手工删除VLAN2,做最后的双向注销:
对于GVRP,其注册模式有normal、fixed和Forbidden三种,利用注册模式,实现灵活控制vlan。
实验:公司A(Company A)、公司A的分公司(Branchof Company A)以及公司B(Company B)之间有较多的交换设备相连,需要通过GVRP实现VLAN的动态注册。公司A的分公司通过SwitchA和SwitchB与公司A互通;公司B通过SwitchB和SwitchC与公司A互通,但只允许公司B配置的VLAN通过。
公司A的分公司与公司A之间要求互联互通,在VLAN动态注册上没有限制,公司B与公司A之间的连接仅允许公司B上静态配置的VLAN通过,所以:
1)在公司A、A分公司和公司B网络中的各交换机Trunk端口上使能GVRP功能,并配置这些端口的注册模式为Normal,实现VLAN动态注册。
2)在SwitchC上手动创建允许公司B通过的静态VLAN。
3)在SwitchA与A分公司、SwitchB连接的Trunk端口,以及SwitchC与公司B连接的Trunk端口上配置GVRP功能,并配置这些端口的注册模式为Normal。
4)在SwitchC与SwitchB连接的Trunk端口上配置GVRP功能,并配置注册模式为Fixed,其目的就是要禁止在该端口上动态注册来自公司A网络、公司A的分公司网络,以及SwitchA和SwitchB上创建的VLAN,但仍允许通过该端口向外传播GVRP注册消息,以使公司A网络、A分公司网络,以及SwitchA和SwitchB能动态注册来自SwitchC上配置的静态VLAN,最终实现要求的仅允许公司B配置的静态VLAN(其实是在SwitchC上静态创建的)与公司A互访的要求。(是控制公司B的通行VLAN)
这里就是在SwitchC的GE0/0/1口配置注册模式为fixed,这样的话,SwitchC上手工创建的静态VLAN能够传播动态注册到公司A、A分公司,而公司A、A分公司的VLAN不能动态注册到B公司,因为无法穿过SwitchC的GE0/0/1端口。公司B内部各交换机可以使用GVRP动态注册VLAN,但是其无法穿过SwitchC到达外部。SwitchC就是一个控制的作用。
在SwitchA、SwitchB、CompA、CompABrach四个交换机上任何一个配置vlan,都会在其他三个中动态注册,在CompB上配置的vlan,在SwitchC上能够注册,但是不能传出SwitchC。
只有在SwitchC上配置静态vlan(与CompB中的相同),才能将vlan传递到其他四个交换机。