使用GLBP协议,在不改变网络结构的前提下,无需更多的配置,即可实现关键应用的负载均衡以及路由的冗余备份,最大限度保护了用户的投资,能够用最少的管理费用大大提升网络性能。
GLBP: 让局域网更均衡
网络应用不断深入和发展,用户对网络可靠性的需求越来越高。一旦连接两地设备之间的路由出现故障,在没有启用冗余设备的情况下,网络必将中断,此时承载在网络中的报文则会丢失。如果此时传送的是公司业务的重要数据,不可避免会给公司带来一定的经济损失。如何避免这一情况发生?
如果只是物理连接一台冗余路由器,那么当一台主路由发生故障后,对于目标地址是其他网络的报文,主机仍然只是将报文发给预先配置的默认网关,而不能真正实现故障情况下路由器的自动切换。
路由的选择还会直接影响网络吞吐量,如果主路由资源耗尽,将无法继续作为中继节点转发信息,进而导致网络无法正常运行。而此时备份路由可能还有很多剩余资源,这就造成了网络能耗的不平等。
这就需要一种既能做到主备路由平稳切换,又能考虑负载均衡的技术,网关负载均衡协议GLBP应运而生。
什么是GLBP?
GLBP全称Gateway Load Banancing Protocol,是思科的专有协议。GLBP可以绑定最多4个MAC地址到一个虚拟IP,允许客户端使用相同的虚拟IP作为网关地址。客户端发出ARP请求后,回应到不同的目标MAC地址,从而经由不同的路由器转发数据包,因此在一定程度上起到了负载均衡的作用。这与HRSP、VRRP是有区别的。HRSP、VRRP都必须选定一个活动路由器,由活动路由器代表虚拟路由器地址转发数据包,备用路由器则处于闲置状态。而GLBP在提供虚拟路由器的同时,GLBP组中的所有路由器都能够转发部分数据流,参与负载均衡,可见GLBP可充分利用网络资源,同时无需过多配置与管理。
活动虚拟网关选举
活动虚拟网关的选举采用类似于HRSP的选举机制选举活动网关,优先级最高的路由器成为活动路由器,如果优先级相同,则IP地址最高的路由器成为活动路由器。活动路由器被称做AVG(Acitve Virtual Gateway),其他非AVG则提供冗余,如果AVG失效,新的选举就会发生。非AVG也被称做活动虚拟转发器AVF(Active Virtual Forwarder)。AVG与AVF共同组成GLBP的组成员,每个GLBP组最多可以有4个成员。
虚拟MAC地址分配
GLBP自动管理虚拟MAC地址的分配。如果某路由器被推举为AVG后, AVG开始按序分配虚拟MAC地址给AVF。AVF分为两类: PVF(Primary Virtual Forwarder)和SVF(Secondary Virtual Forwarder)。直接由AVG分配虚拟MAC地址的路由器被称做PVF; 后续不知道AVG真实IP地址的组成员,只能使用hellos包来识别其身份,然后被分配虚拟MAC地址,此类被称做SVF。PVF的虚拟MAC是由一段固定的MAC前缀+组号组成的。GLBP最多有4台路由器作为IP默认网关,每个网关的虚拟MAC地址依次为PVF的地址号加1。譬如PVF的虚拟MAC地址为0007.b400.0a01,则第一个SVF就是0007.b400.0a02,依此类推。分配了虚拟MAC地址后,所有的GLBP组成员都参与转发数据包,但是各成员只负责转发分给自己的虚拟MAC地址相关的数据包。
GLBP配置验证
在GLBP组成员的指定端口上分别配置相关GLBP命令,并为不同成员配置不同的优先级。优先级高的路由器则成为活动路由器,其状态值为active,其余路由器成为备份路由器,状态值为standby。活动路由器自动分配虚拟MAC地址给所有组成员,这样,每个组成员会得到所有成员的虚拟MAC地址,但每个路由器下虚拟MAC地址的状态各不相同。状态值为active表示此MAC地址为该路由器的活动MAC地址,负责转发相关数据包; 状态值为listen表示此MAC地址处于监听状态,一旦监听到其他路由器出现故障不能转发,则自动将listen状态变为active,同时接管该MAC地址的数据转发功能,实现冗余。正常情况下,每个组成员只负责转发MAC地址状态值为Active的相关数据包。
用GLBP实现负载均衡
GLBP将多台交换机或者路由器分配到同一个GLBP组中。GLBP自动管理并由选举出来的AVG来分配不同的虚拟的MAC地址给组成员,每个GLBP组中最多能够拥有4个虚拟MAC地址。当客户端发送查询虚拟网关地址的ARP请求时,AVG应答所有有关虚拟网关地址的ARP请求,依据负载均衡算法决定返回哪一个MAC地址给客户端,因此客户端得到的MAC地址是不尽相同的。GLBP正是通过使用ARP应答中不同的虚拟MAC地址,来实现网络的负载均衡。
这种做法有两个优点: 第一,客户端无需分别指向冗余路由的物理MAC地址,所有客户端的默认网关均指向惟一的虚拟路由器IP地址,即可通过不同的冗余路由,真正实现负载均衡; 第二,即使某一台路由器出现故障,GLBP组中其他路由器可以马上接管故障路由器的虚拟MAC地址,从而不会影响客户端数据的传输。
GLBP企业网实战
负载均衡功能的应用
在某企业网中,核心层原本只有一台Cisco 6509,网络之间的大量数据都通过该核心设备进行交换,它同时承担不同VLAN之间路由的功能。核心层设备一旦出现故障,整个网络即面临瘫痪。为进一步提高核心层网络的可靠性,避免核心层设备故障造成整个网络瘫痪,我们为此核心增设一台Cisco 6509,与原有核心设备组成双核心网络结构,核心交换设备之间运行GLBP协议,接入层节点如机关办公网、二级单位汇聚、财务等分别以冗余链路连接至核心设备,通过GLBP实现路由冗余,确保网络核心层的高度可靠性。
依据设计拓扑,我们为不同VLAN划分不同的GLBP组,详细规划见表:
以VLAN2为例,机关办公网分别连接到两台Cisco 6509的VLAN2端口上,端口地址分别为10.192.2.252以及10.192.2.253,VLAN2中各主机网关都设置为GLBP 20组的VIP地址10.192.2.254。VLAN2内的主机通过这个VIP成功访问总部及Internet,此时GLBP生效,主机通过ARP请求得到不同的回应地址,核心交换机按照各自的活动MAC地址进行数据处理,我们从两台不同的主机上观察GLBP运行情况。通过运行主机上的arp ——a命令,两台主机指向同一个网关IP,但是MAC地址是不同的,说明这两台主机分别经过不同的路由到达目的地址。据此可见,通过GLBP,企业网络实现了负载均衡。
路由冗余功能的实现
同样以此VLAN2为例,我们将其中一台核心Cisco 6509的VLAN2端口down掉,来模拟核心路由出现故障的情况。再来观察两台主机,发现两台主机均仍能访问外部网络,用户感觉不到有任何变化,再用arp——a命令观察,仍然存在两个不同的MAC地址,这是什么原因呢?在正常运行的那一台Cisco 6509上show gblp brief,我们看到,原来是这台交换机监测到另一台交换机出现故障,将自己原本处于监听状态的MAC地址也变为活动状态,也就是说这台交换机此时拥有两个MAC地址,对于发到这两个MAC地址的请求均进行数据转发,这一切换对用户来说是透明的,因此用户感觉不到网络的中断,故而平稳快速地实现了GLBP的路由冗余功能。
GLBP企业网规划表
GLBP在企业网络中的应用
GLBP路由冗余示意图
使用GLBP协议,在不改变网络结构的前提下,无需更多的配置,即可以实现关键应用的负载均衡以及路由的冗余备份,最大限度保护了用户的投资,用最少的管理费用大大提升了网络性能。在大型企业网络中,用GLBP技术实现关键设备的匀衡负载,具有重大的应用价值。
【编辑推荐】