网关负载平衡协议——GLBP

15.3.1 实验目的
(1)理解GLBP的工作原理
(2)掌握GLBP的配置和测试
15.3.2 实验原理
1.GLBP简介 GLBP(网关负载平衡协议)是cisco私有协议,他弥补了现有的冗余路由器协议的局限性, 设计GLBP的目的是自动选择和同时使用多个可用的网关。和HSRP、VRRP不同的是,GLBP可充分利用资源,同时无需配置多个组和管理多个默认网关配置。
GLBP组中最多可以有4台路由器作为IP默认网关。这些网关被称为AVF(Active Virtual Forwarder,活跃虚拟转发器)。GLBP自动管理虚拟MAC地址的分配、决定谁负责处理转发工作(这是区别于HSRP和VRRP的关键,在GLBP中有一个虚拟IP,但对应多个虚拟MAC)。
GLBP的负载均衡可以通过三种方式来实现:
l 加权负载均衡算法:前往AVF的流量取决于包含该AVF网关通告的权重值。
l 主机相关负载均衡:确保主机始终使用同一个虚拟MAC地址。
l 循环负载均衡算法:在解析虚拟IP地址的应答中,将包含各个虚拟转发器的MAC地址,以此让主机将数据发送到不同的路由器上,从而实现了网关负载均衡。
默认情况下,GLBP以循环方式根据源主机来均衡负载。
2.GLBP配置命令 HSSP和VRRP能实现网关冗余,然而,如果要实现负载平衡,需要创建多个组,并让客户端指向不同的网关。GLBP(Gateway Load Balance Protocol)也是Cisco的专有协议,不仅提供冗余网关功能,还在各网关之间提供负载均衡。GLBP也是由多个路由器组成一个组,虚拟一个网关出来。GLBP选举出一个AVG(Avtive Virtual Gateway),AVG不是负责转发数据的。AVG分配最多4个MAC地址给一个虚拟网关,并在计算机进行ARP请求时,用不同的MAC进行响应,这样计算机实际就把数据发送给不同的路由器了,从而实现负载平衡。在GLBP中,真正负责转发数据的是AVF(Avtive Virtual Forawarder),GLBP会控制GLBP组中哪个路由器是哪个MAC地址的活动路由器。
AVG的选举和HRSP中活动路由器的选举非常类似,优先级最高的路由器成为AVG,次之的为Abckup AVG,其余的为监听状态。一个GLBP组只能有一个AVG和一个Backup AVG,主AVG失败,备份AVG顶上。一台路由器可以同时是AVG和AVF。AVF是某些MAC的活动路由器,也就是说,如果计算机把数据发往这个MAC,它将接收。当某一MAC的活动路由器有故障时,其他AVF将成为这一MAC的新的活动路由器,从而实现冗余功能GLBP的负载平衡策略可以根据不同主机、简单地轮询,或者根据路由器的权重平衡,默认是轮询方式。

命令

Router(config-if)# glbp group_number ip ip_address
设置GLBP组号和虚拟IP地址
Router(config-if)# glbpgroup_numberpriority priority_value
配置GLBP的优先级,如果不设置该项,默认优先级为100 ,该值越大,抢占为活动路由器的优先权越高
Router(config-if)# glbp group_number preempt
该设置允许该路由器在优先级是最高时成为活动路由器。
Router(config-if)# glbp group_number timer hello_timehold_Time
设置该路由器的hello_time和hold_time
Router(config-if)# glbp group_number
Authenticationmd5key-stringpassword
配置认证密码,防止非法设备加入到GLBP组中,同一个组的密码必须一致
3.GLBP配置实例
网关负载平衡协议——GLBP
文章图片



图15-6 GLBP的配置
IP地址表
设备
接口
IP地址
子网掩码
R1
Fa 0/0
192.168.12.1
255.255.255.0
Fa 0/1
192.168.123.1
255.255.255.0
R2
Fa 0/0
192.168.12.2
255.255.255.0
Fa 0/1
192.168.123.2
255.255.255.0
R3
Fa 0/1
192.168.123.3
255.255.255.0
Fa 0/0
172.16.1.1
255.255.255.0
PC1
NIC
192.168.12.100
255.255.255.0
PC2
NIC
172.16.1.100
255.255.255.0
表15-5 IP地址表
(1)步骤1: 配置ip 地址和路由协议等。
R1(config)# interface fa 0/0
R1(config-if)# ip add 192.168.12.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)# inter fa 0/1
R1(config-if)# ip add 192.168.123.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)# router rip
R1(config-router)# network 192.168.12.0
R1(config-router)# network 192.168.123.0
R1(config-router)# passive-interface fa 0/0
R2(config)# int fa 0/0
R2(config-if)# ip add 192.168.12.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)# int fa 0/1
R2(config-if)# ip add 192.168.123.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)# router rip
R2(config-router)# network 192.168.12.0
R2(config-router)# network 192.168.123.0
R2(config-router)# passive-interface fa 0/0
R3(config)# int fa 0/1
R3 (config-if)# ip add 172.16.1.1 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3 (config)# int fa 0/0
R3 (config-if)# ip add 192.168.123.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3 (config)# router rip
R3 (config-router)# network 192.168.123.0
R3 (config-router)# network 172.16.0.0
(2)步骤2:配置glbp
R1(config)# interface fa 0/0
R1(config-if)# glbp 1 ip 192.168.12.254
//和hsrp类似,创建glbp组,虚拟网关的ip 为192.168.12.254
R1(config-if)# glbp 1 priority 200
//配置优先级,优先级高的路由器成为avg,默认为100。
R1(config-if)# glbp 1 preempt
//配置avg抢占,否则即使优先级再高,也不会成为avg.
R1(config-if)# glbp 1 authentication md5 key-string cisco
//以上是配置认证,防止非法设备接入
R2(config)# int fa 0/0
R2(config-if)# glbp 1 ip 192.168.12.254
//和hsrp类似,创建glbp组,虚拟网关的ip 为192.168.12.254
R2(config-if)# glbp 1 priority 180
//配置优先级,优先级高的路由器成为avg,默认为100。
R2(config-if)# glbp 1 preempt
//配置avg抢占,否则即使优先级再高,也不会成为avg.
R2(config-if)# glbp 1 authentication md5 key-string cisco
//以上是配置认证,防止非法设备接入
(3)步骤3 :查看glbp信息。
R1#show glbp
FastEthernet0/0 - Group 1
State is Active
1 state change, last state change 00:00:47
Virtual IP address is 192.168.12.254//虚拟的网关ip地址
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.736 secs
Redirect time 600 sec, forwarder timeout 14400 sec
Authentication MD5, key-string
Preemption enabled, min delay 0 sec
Active is local//说明R1是活动avg
Standby is 192.168.12.2, priority 180 (expires in 8.352 sec)//说明R2是备份avg


Priority 200 (configured)
Weighting 100 (default 100), thresholds: lower 1, upper 100
Load balancing: round-robin
Group members://以下显示glbp组中的成员
04c5.a43f.e4e0 (192.168.12.2) authenticated
04c5.a4b3.bba0 (192.168.12.1) local
There are 2 forwarders (1 active)
Forwarder 1
State is Active
1 state change, last state change 00:00:36
MAC address is 0007.b400.0101 (default)//虚拟网关的其中一个Mac,说明R1是0007.b400.0101的活动路由器,也就是说,如果计算机把数据发往0007.b400.0101,将由R1接收数据,再进行转发
Owner ID is 04c5.a4b3.bba0
Redirection enabled
Preemption enabled, min delay 30 sec
Active is local, weighting 100
Forwarder 2
State is Listen
MAC address is 0007.b400.0102 (learnt)//虚拟网关的另外一个Mac,
Owner ID is 04c5.a43f.e4e0
Redirection enabled, 599.744 sec remaining (maximum 600 sec)
Time to live: 14399.744 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 192.168.12.2 (primary), weighting 100 (expires in 10.656 sec)


R2#show glbp
FastEthernet0/0 - Group 1
State is Standby
1 state change, last state change 00:26:41
Virtual IP address is 192.168.12.254//虚拟的网关ip地址
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.056 secs
Redirect time 600 sec, forwarder timeout 14400 sec
Authentication MD5, key-string
Preemption enabled, min delay 0 sec
Active is 192.168.12.1, priority 200 (expires in 8.896 sec)//说明R1是活动avg
Standby is local//说明R2是备份avg
Priority 180 (configured)
Weighting 100 (default 100), thresholds: lower 1, upper 100
Load balancing: round-robin
Group members: //以下显示glbp组中的成员
04c5.a43f.e4e0 (192.168.12.2) local
04c5.a4b3.bba0 (192.168.12.1) authenticated
There are 2 forwarders (1 active)
Forwarder 1
State is Listen
MAC address is 0007.b400.0101 (learnt) //虚拟网关的另外一个Mac,
Owner ID is 04c5.a4b3.bba0
Time to live: 14397.664 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 192.168.12.1 (primary), weighting 100 (expires in 10.368 sec)
Forwarder 2
State is Active
1 state change, last state change 00:26:46
MAC address is 0007.b400.0102 (default)//虚拟网关的其中一个Mac,说明R2是0007.b400.0102的活动路由器,也就是说,如果计算机把数据发往0007.b400.0102,将由R2接收数据,再进行转发
Owner ID is 04c5.a43f.e4e0
Preemption enabled, min delay 30 sec
Active is local, weighting 100


(4)步骤4:检查glbp的负载平衡功能
在PC1上配置IP地址,网关指向192.168.12.254 ,并进行以下操作:
①在PC1上ping 172.16.1.100 ,然后使用arp –a命令查看到网关192.168.12.254的mac地址
C:\>arp –a
Interface:192.168.12.100---0x03
Internet AddressPhysical AddressType
192.168.12.25400-07-b4-00-01-01dynamic
//以上表明PC1的ARP请求获得网关(192.168.1.254)的MAC为00-07-b4-00-01-01
②然后在PC1上再使用arp -d 命令,删除arp缓冲表
③接着在PC1上ping 172.16.1.100,然后使用arp –a命令查看到网关192.168.12.254的mac地址
C:\>arp –a
Interface; 192.168.1.100---0x03
Internet AddressPhysical AddressType
192.168.12.25400-07-b4-00-01-02dynamic
//以上表明PC1的再次ARP请求获得网关(192.168.1.254)的MAC为00-07-b4-00-01-02,也就是说,在GLBP响应ARP请求时,每次会用不同的MAC响应,从而实现负载平衡。
【说明】
默认时,GLBP的负载平衡策略是轮询方式,可以在接口下使用”glbp 1 load-balancing”命令修改,有以下选项:
?host-dependent:根据不同主机的源MAC地址进行平衡;
?round-robin:轮询方式,即每响应一次ARP请求,轮换一个地址;
?weighted:根据路由器的权重分配,权重高的被分配的可能性越大。
(5)步骤5:检查GLBP的冗余功能
①首先在PC1上用”arp –a”命令确认192.168.1.254的MAC地址是什么,从而确定出当前空间是哪个路由器在实际转发数据。在这里,192.168.1.254的MAC地址为00-07-b4-00-01-01,是R1在转发数据。
②然后在PC1上连续ping PC2,并在R1上关闭fa 0/0接口,观察PC1的通信情况:
C:\>ping –t 172.16.1.100
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
Request timed out.
Request timed out.
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
Reply from 172.16.1.100; bytes=32 time<1ms TTL=254
//可以看到R1出故障后,其他路由器很快接替了它的工作,计算机的通信只受到短暂的影响。因此GLBP不仅有负载平衡的能力,也有冗余的能力。

为了保障网络的稳定性,减少因网络设备故障而导致网络瘫痪,在OSI/RM的二层,交换机厂商开发出了STP以及PVST等技术,实现交换机的冗余备份和负载均衡。那在OSI/RM第三层那就有HSRP(思科私有协议)和VRRP(IEEE标准)。不过HSRP和VRRP正常情况下,只有冗余备份的功能,而要实现负载均衡的功能,只有创建多个备份组,两个或多个虚拟网关,让局域内的PC机配置不同的网关,从而实现负载均衡的功能,这样在操作上就显得比较麻烦。
【网关负载平衡协议——GLBP】思科公司开发的GLBP技术(Gateway Load Balance Protocol),由多个路由器组成一个备份组,将每台路由器的MAC地址(最多四个)加入备份组,成为虚拟网关的MAC地址组。当局域网内的PC机请求网关ARP响应时,虚拟网关的MAC地址组中MAC地址轮流响应,从而实现流量根据二层的网关MAC地址走不同的真实路由器,从而实现负载均衡。

    推荐阅读