网关负载平衡协议——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的负载均衡可以通过三种方式来实现:

加权负载均衡算法:前往AVF的流量取决于包含该AVF网关通告的权重值。

主机相关负载均衡:确保主机始终使用同一个虚拟MAC地址。

循环负载均衡算法:在解析虚拟IP地址的应答中,将包含各个虚拟转发器的MAC地址,以此让主机将数据发送到不同的路由器上,从而实现了网关负载均衡。

默认情况下,GLBP以循环方式根据源主机来均衡负载。

2.GLBP配置命令

HSSPVRRP能实现网关冗余,然而,如果要实现负载平衡,需要创建多个组,并让客户端指向不同的网关。GLBPGateway Load Balance Protocol)也是Cisco的专有协议,不仅提供冗余网关功能,还在各网关之间提供负载均衡。GLBP也是由多个路由器组成一个组,虚拟一个网关出来。GLBP选举出一个AVG(Avtive Virtual Gateway)AVG不是负责转发数据的。AVG分配最多4MAC地址给一个虚拟网关,并在计算机进行ARP请求时,用不同的MAC进行响应,这样计算机实际就把数据发送给不同的路由器了,从而实现负载平衡。在GLBP中,真正负责转发数据的是AVFAvtive Virtual Forawarder),GLBP会控制GLBP组中哪个路由器是哪个MAC地址的活动路由器。

AVG的选举和HRSP中活动路由器的选举非常类似,优先级最高的路由器成为AVG,次之的为Abckup AVG,其余的为监听状态。一个GLBP组只能有一个AVG和一个Backup AVG,主AVG失败,备份AVG顶上。一台路由器可以同时是AVGAVFAVF是某些MAC的活动路由器,也就是说,如果计算机把数据发往这个MAC,它将接收。当某一MAC的活动路由器有故障时,其他AVF将成为这一MAC的新的活动路由器,从而实现冗余功能GLBP的负载平衡策略可以根据不同主机、简单地轮询,或者根据路由器的权重平衡,默认是轮询方式。

命令 

 

Router(config-if)# glbp group_number ip ip_address

设置GLBP组号和虚拟IP地址

Router(config-if)# glbp  group_number  priority priority_value

配置GLBP的优先级,如果不设置该项,默认优先级为100 ,该值越大,抢占为活动路由器的优先权越

Router(config-if)glbp group_number preempt

该设置允许该路由器在优先级是最高时成为活动路由器。

Router(config-if)glbp group_number timer hello_time  hold_Time

设置该路由器的hello_timehold_time

Router(config-if)# glbp group_number

Authentication  md5   key-string   password

配置认证密码,防止非法设备加入到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 Address      Physical Address    Type
   192.168.12.254      00-07-b4-00-01-01   dynamic
//以上表明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 Address      Physical Address     Type
   192.168.12.254      00-07-b4-00-01-02   dynamic
//以上表明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(思科私有协议)和VRRPIEEE标准)。不过HSRPVRRP正常情况下,只有冗余备份的功能,而要实现负载均衡的功能,只有创建多个备份组,两个或多个虚拟网关,让局域内的PC机配置不同的网关,从而实现负载均衡的功能,这样在操作上就显得比较麻烦。

思科公司开发的GLBP技术(Gateway Load Balance Protocol,由多个路由器组成一个备份组,将每台路由器的MAC地址(最多四个)加入备份组,成为虚拟网关的MAC地址组。当局域网内的PC机请求网关ARP响应时,虚拟网关的MAC地址组中MAC地址轮流响应,从而实现流量根据二层的网关MAC地址走不同的真实路由器,从而实现负载均衡。