Chapter 13 路由器备份选择协议13.1 HSRP热备份路由选择协议13.1.1 冗余性网络中的路由问题1.缺省网关:当设置默认的网关失效后,数据就不能到别的网段;即使存在作为网关使用的冗余路由器,也不能动态的方法将这些设备切换到新的网关地址。
2.代理ARP:如果要获得切换路由器的MAC地址,源端工作站必须要么发起另一个ARP请求,要么重新启动,那么就可能在一段时间通信无法实现。
导致PC机的ARP缓存可能有几个小时不能刷新ARP缓存。
注:在win95、98环境下使用代理ARP,缺省网关必须设置为该主机设备自己IP地址3.路由选择协议:采用RIP协议,如果源工作站被配置为使用RIP,那么在RIP可以选用另一路由器之前,就会浪费很长的时间去更新。
4.IRDP (ICMP Router Discovery Protocol)①. 用icmp,每一个路由每7分钟发router advertisment, host就可以自动获得gateway②. 有支持IRDP的PC,开机发处请求13.1.2 HSRP协议概述实现HSRP的条件是系统中有多台路由器,它们组成一个“热备份组”,这个组形成一个虚拟路由器。
在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,如果活动路由器发生了故障,将选择一个备份路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。
所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。
为了减少网络的数据流量,在设置完活动路由器和备份路由器之后,只有活动路由器和备份路由器定时发送HSRP报文。
如果活动路由器失效,备份路由器将接管成为活动路由器。
如果备份路由器失效或者变成了活动路由器,将有另外的路由器被选为备份路由器。
在实际的一个特定的局域网中,可能有多个热备份组并存或重叠。
每个热备份组模仿一个虚拟路由器工作,它有一个Well-known-MAC地址和一个IP地址。
该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。
当在一个局域网上有多个热备份组存在时,把主机分布到不同的热备份组,可以使负载得到分担。
13.1.3 HSRP的工作原理HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。
如果一个路由器的优先级设置的比所有其他路由器的优先级高,则该路由器成为主动路由器。
路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。
当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。
路由器之间的包传输对网络上的所有主机来说都是透明的。
配置了HSRP协议的路由器交换以下三种多点广播消息:Hello——— hello消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;Coup———当一个备用路由器变为一个主动路由器时发送一个coup消息;Resign———当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。
在任一时刻,配置了HSRP协议的路由器都将处于以下六种状态之一:Initial—— HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。
learn———路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是等待路由器。
它一直监听从活动路由器和等待路由器发来的HELLO报文。
Listen———路由器正在监听hello消息。
Speak———在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或等待路由器的竞选。
Standby———当主动路由器失效时路由器准备接包传输功能。
Active———路由器执行包传输功能。
使用HSRP时,当末端工作站使用的缺省网关不可用时,可以继续在网络上进行通信。
1.在HSRP中,是采用有一套的路由器,分为活跃、备份、虚拟、其他路由器等体系,在外部看来,它是一台拥有IP和MAC地址的目标路由器。
2.活跃路由器的功能是负责转发发送到虚拟路由器的数据。
它通过发送HELLO消息(基于UDP广播)来通告它的活跃状态3.组中会有另外的一台路由器来作为备份路由器。
它的功能是监视HSRP组中的运行状态,并且在当前活跃路由器不可用时,迅速承担起负责数据转发的任务。
备份路由器也发送HELLO消息来通告组中其他的路由器它备份路由器的角色。
4.虚拟路由器的功能是向最终的用户来代表一台能持续工作的路由器设备。
它有自己的MAC和IP地址。
但是实际上它是不用来转发数据包,它的作用仅仅是代表一台可用的路由设备。
5.其他路由器也监听HELLO消息,但是不作应答,这样它就不会在备份组有身份的概念,同时它也不参与发送到虚拟路由器的数据包,但是还是转发其他路由器发来的数据包。
注:在每个VLAN子网配置一个单独的HSRP组。
活跃路由器的竞争机制1.默认状态的情况下,MAC地址最小的路由器将成为活跃的路由器。
2.当活跃路由器失效的情况下,备份路由器将成为活跃路由器。
但是如果在活跃和备份路由器都失效的情况下,路由器身份的竞争依照如下的原则①.在HSRP中有最高备份优先级的路由器将成为活跃/备份路由器,缺省的优先级是100,优先级从0~255。
②. 当优先级相同的情况下,具有最高IP地址的路由器将成为活跃的路由器③. 默认还是MAC地址最小的成为活跃路由器13.1. 4 配置HSRP热备份路由协议1.配置一个接口以参与HSRP备份组Router (config –if)#standby group-number ip virtual-ip-address如:Interface vlan10ip address 172.16.10.88 255.255.255.0no ip redirects (关闭ICMP从定向)Standby 47 ip 172.16.10.112.配置HSRP的备份优先级,前面已经讲过。
Router (config –if) Standby group-number priority priority-number3.配置HSRP组中的备份占先权Router (config –if) standby group-number preempt4.配置HELLO消息计时器:前面讲过活跃路由器和备份路由器通过发送HELLO消息来说明它现在的身份。
HELLO消息当中包括了路由器的优先级、HELLO时间、保持时间等(默认的保持时间是HELLO消息的3倍)。
Router (config)#standby group-number timers hellotime holdtime①. Hellotime:是以秒来计算的,来定义HELLO消息之间的间隔;默认是3秒②. Holdtime:是以秒来计算的,来定义活跃或是备份路由器在宣布失效之前的时间,从1~255,缺省为10秒。
也就是是说:路由器在3个HELLO消息的间隔内如果还是没有收到HELLO包,宣告现在这台路由器已经失效了。
要恢复到缺省的备份计时器值:no standby group timers命令。
HSRP接口跟踪:配置HSRP的功能是为了解决如下的问题:在某些情况下,端口的状态直接的影响了路由器的身份即哪台路由器要变成活跃的路由器。
尤其是在每台路由器有到某个目的地的不同路径时。
因为当启用了HSRP的路由器的端口是关闭了端口的ICMP的重定向的功能的,因此,当有链路发生了错误时,活跃路由器将不会对数据包进行重定向,导致了数据包的人为不可到达。
通过启用接口跟踪时,可以根据接口的状态自动的调整路由器的优先级,当被跟踪的端口变成不可用时,将自动的降低其路由器的优先级。
这样就降低了它继续成为活跃路由器的可能性,接口配置的模式下作以下的配置:Router(config-if)# standby group-number track type number interface-priority type: 跟踪的接口的类型,与接口号一起使用如s0number: 被跟踪的接口的号,与接口类型一起使用interface-priority: 路由器要被降低的优先级的值,缺省为10要关闭此功能的话使用:no standby group track命令。
在干道上配置HSRP此项功能能通过在子网和VLAN间提供负载均衡和冗余能力提高整个网络的韧性。
我们可以实现通过两个路由器来实现在干道上的互为活跃/备份路由器。
我们只要设置一下他们在HSRP中的优先级就可以实现。
以下有个简单的例子:对router AInterface f1/1.10Encapsulation isl 10Ip address 172.16.10.2 255.255.255.0 Standby 1 ip 172.16.10.110 Standby 1 priority 105Standby 1 preemptInterface f1/1.20Encapsulation isl 20ip address 172.16.20.2 255.255.255.0 Standby 2 ip 172.16.20.110 Standby 2 priority 50 对router BInterface f1/1.10Encapsulation isl 10ip address 172.16.10.3 255.255.255.0 Standby 1 ip 172.16.10.110 Standby 1 priority 50Interface f1/1.20Encapsulation isl 20Ip address 172.16.20.3 255.255.255.0 Standby 2 ip 172.16.20.110 Standby 2 priority 105Standby 1 preempt13.1.5 Show HSRP要显示HSRP路由器的状态,可以在特权的状态下执行如下命令即可router#show standby type-number group brieftype-number: 说明要显示目标接口的类型和序号group:显示接口上某个具体的HSRP组brief: 每个备份组总结成一行来输出如:Show standby vlan10 47/show standby brief/show standby.13.1.6 HSRP 实例某校园网规模比较大,上网的主机相对比较多,共分配有16个C类地址。