第16章网关冗余和负载平衡为了减少交换机故障的影响,交换机上有STP技术。然而作为网关的路由器故障了,又有什么办法?HSRP和VRRP是昀常用的网关冗余技术,HSRP和VRRP类似,由多个路由器共同组成一个组,虚拟出一个网关,其中的一台路由器处于活动状态,当它故障时由备份路由器接替它的工作,从而实现对用户透明的切换。然而我们希望在冗余的同时,能同时实现负载平衡,以充分利用设备的能力,GLBP同时提供了冗余和负载平衡的能力。本章将介绍它们的具体配置。16.1网关冗余和负载平衡简介16.1.1HSRPHSRP是Cisco的专有协议。HSRP(HotStandbyRouterProtocol)把多台路由器组成一个“热备份组”,形成一个虚拟路由器。这个组内只有一个路由器是活动的(Active),并由它来转发数据包,如果活动路由器发生了故障,备份路由器将成为活动路由器。从网络内的主机来看,网关并没有改变。HSRP路由器利用HELLO包来互相监听各自的存在。当路由器长时间没有接收到HELLO包,就认为活动路由器故障,备份路由器就会成为活动路由器。HSRP协议利用优先级决定哪个路由器成为活动路由器。如果一个路由器的优先级比其它路由器的优先级高,则该路由器成为活动路由器。路由器的缺省优先级是100。一个组中,昀多有一个活动路由器和一个备份路由器。HSRP路由器发送的多播消息有以下三种:(1)HELLO:HELLO消息通知其它路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个HELLO消息;(2)Coup:当一个备用路由器变为一个活动路由器时发送一个coup消息;(3)Resign:当活动路由器要宕机或者当有优先级更高的路由器发送HELLO消息时,主动发送一个resign消息。HSRP路由器有以下六种状态:(1)Initial:HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或接口刚刚启动时进入该状态;(2)Learn:路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是备份路由器。它一直监听从活动路由器和备份路由器发来的HELLO报文;(3)Listen:路由器正在监听HELLO消息;(4)Speak:在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或备份路由器的竞选;(5)Standby:当活动路由器失效时路由器准备接管数据传输功能;(6)Active:路由器执行数据传输功能。16.1.2VRRPVRRP的工作原理和HSRP非常类似,不过VRRP是国际上的标准,允许在不同厂商的设备之间运行。VRRP中虚拟网关的地址可以和接口上的地址相同,VRRP中接口只有3个状态:初始状态(Initialize)、主状态(Master)、备份状态(Backup)。VRRP有一种报文。16.1.3GLBPHSRP和VRRP能实现网关的冗余,然而如果要实现负载平衡,需要创建多个组,并让客户端指向不同的网关。GLBP(GatewayLoadBalanceProtocol)也是Cisco的专有协议,不仅提供冗余网关功能,还在各网关之间提供负载均衡。GLBP也是由多个路由器组成一个组,虚拟一个网关出来。GLBP选举出一个AVG(AvtiveVirtualGateway),AVG不是负责转发数据的。AVG分配昀多四个MAC地址给一个虚拟网关,并在计算机进行ARP请求时,用不同的MAC进行响应,这样计算机实际就把数据发送给不同的路由器了,从而实现负载平衡。在GLBP中,真正负责转发数据的是AVF(AvtiveVirtualForwarder),GLBP会控制GLBP组中哪个路由器是哪个MAC地址的活动路由器。AVG的选举和HRSP中活动路由器的选举非常类似,优先级昀高的路由器成为AVG,次之的为BackupAVG,其余的为监听状态。一个GLBP组只能有一个AVG和一个BackupAVG,主的AVG失败,备份AVG顶上。一台路由器可以同时是AVG和AVF。AVF是某些MAC的活动路由器,也就是说如果计算机把数据发往这个MAC,它将接收。当某一MAC的活动路由器故障,其它AVF将成为这一MAC的新的活动路由器,从而实现冗余功能。GLBP的负载平衡策略可以是根据不同主机、简单的轮询或者根据路由器的权重平衡,默认是轮询方式。16.2实验1:HSRP1.实验目的通过本实验,读者可以掌握如下技能:(1)理解HSRP的工作原理(2)掌握HSRP的配置2.实验拓扑图16-1实验1、实验2拓扑图3.实验步骤(1)步骤1:配置IP地址、路由协议等R1(config)#interfaceGigabitEthernet0/0R1(config-if)#ipaddress192.168.13.1255.255.255.0R1(config)#interfaceSerial0/0/0R1(config-if)#ipaddress192.168.12.1255.255.255.0R1(config)#routerripR1(config-router)#network192.168.12.0R1(config-router)#network192.168.13.0R1(config-router)#passive-interfaceGigabitEthernet0/0//之所以把g0/0接口设为被动接口,是防止从该接口发送RIP信息给R3。R2(config)#interfaceGigabitEthernet0/0R2(config-if)#ipaddress192.168.20.2255.255.255.0R2(config)#interfaceSerial0/0/0R2(config-if)#clockrate128000R2(config-if)#ipaddress192.168.12.2255.255.255.0R2(config)#interfaceSerial0/0/1R2(config-if)#clockrate128000R2(config-if)#ipaddress192.168.23.2255.255.255.0R2(config)#routerripR2(config-router)#network192.168.12.0R2(config-router)#network192.168.23.0R2(config-router)#network192.168.20.0R2(config-router)#passive-interfaceGigabitEthernet0/0R3(config)#interfaceGigabitEthernet0/0R3(config-if)#ipaddress192.168.13.3255.255.255.0R3(config)#interfaceSerial0/0/1R3(config-if)#ipaddress192.168.23.3255.255.255.0R3(config)#routerripR3(config-router)#network192.168.23.0R3(config-router)#network192.168.13.0R3(config-router)#passive-interfaceGigabitEthernet0/0(2)步骤2:配置HSRPR1(config)#interfaceg0/0R1(config-if)#standby1ip192.168.13.254//启用HSRP功能,并设置虚拟IP地址,1为standby的组号。相同组号的路由器属于同一个HSRP组,所有属于同一个HSRP组的路由器的虚拟地址必须一致R1(config-if)#standby1priority120//配置HSRP的优先级,如果不设置该项,缺省优先级为100,该值大抢占为活动路由器的优先权越高。R1(config-if)#standby1preempt//该设置允许该路由器在优先级是昀高时成为活动路由器。如果不设置,即使该路由器权值再高,也不会成为活动路由器。R1(config-if)#standby1timers310//其中3为HELLOtime,表示路由器每间隔多长时间发送HELLO信息。10为HOLDtime,表示在多长时间内同组的其它路由器没有收到活动路由器的信息,则认为活动路由器故障。该设置的缺省值分别为3秒和10秒。如果要更改缺省值,所有同HSRP组的路由器的该项设置必须一致。R1(config-if)#standby1authenticationmd5key-stringcisco//以上是配置认证密码,防止非法设备加入到HSRP组中,同一个组的密码必须一致。R2(config)#interfaceg0/0R2(config-if)#standby1ip192.168.13.254R2(config-if)#standby1preemptR2(config-if)#standby1timers310R2(config-if)#standby1authenticationmd5key-stringcisco//R2上我们没有配置优先级,默认为100。(3)步骤3:检查、测试HSRPR1#showstandbybriefPindicatesconfiguredtopreempt.|InterfaceGrpPriPStateActiveStandbyVirtualIPGi0/01120PActivelocal192.168.13.3192.168.13.254//以上表明R1就是活动路由器,备份路由器为192.168.13.3R3#showstandbybriefPindicatesconfiguredtopreempt.|InterfaceGrpPriPStateActiveStandbyVirtualIPGi0/01100PStandby192.168.13.1local192.168.13.254//以上表明R3是备份路由器,活动路由器为192.168.13.1在PC1上配置IP地址192.168.13.100/24,网关指向192.168.13.254;在PC3上配置IP地址192.168.20.100/24,网关指向192.168.20.254。注意去掉另一网卡的网关。在PC1上连续pingPC3上,在R1上关闭g0/0接口,观察PC1上ping的结果。如下:C:\ping-t192.168.20.100Replyfrom192.168.20.100:bytes=32time=9msTTL=254Replyfrom192.168.20.100:bytes=32time=9msTTL=254Replyfrom192.168.20.100:bytes=32time=9msTTL=254Requesttimedout.Replyfrom192.168.20.100:bytes=32time=9msTTL=254Replyfrom192.168.20.100:bytes=32time=9msTTL=254Replyfrom192.168.20.100:bytes=32time=11msTTL=254Replyfrom192.168.20.100:bytes=32time=9msTTL=254//以上可以看到,R1故障时,R3很快就替代了R1,计算机的通信只受到短暂的影响。R3#showstandbybriefPindicatesconfiguredtopreempt.|InterfaceGrpPriPStateActiveStandbyVirtualIPGi0/01100PActivelocalunknown192.168.13.254//以上表明R3成为了活动路由器了。(4)步骤4:配置端口跟踪图16-1中,按照以上步骤的配置,如果R1的s0/0/0接口出现问题,R1将没有到达PC3所在网段的路由。然而R1和R3之间的以太网仍然没有问