在一个路由器完全不能工作的情况下,它的全部功能便被系统中的另一个备份路由器完全接管,直至出现问题的路由器恢复正常,这就是热备份路由协议(HotStandbyRouterProtocal),HSRPRFC2281技术要解决的问题。
一、HSRP协议概述
实现HSRP的条件是系统中有多台路由器,它们组成一个"热备份组",这个组形成一个虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,假如活动路由器发生了故障,将选择一个备份路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。
为了减少网络的数据流量,在设置完活动路由器和备份路由器之后,只有活动路由器和备份路由器定时发送HSRP报文。假如活动路由器失效,备份路由器将接管成为活动路由器。假如备份路由器失效或者变成了活动路由器,将有另外的路由器被选为备份路由器。
在实际的一个特定的局域网中,可能有多个热备份组并存或重叠。每个热备份组模拟一个虚拟路由器工作,它有一个Well-known-MAC地址和一个IP地址。该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。当在一个局域网上有多个热备份组存在时,把主机分布到不同的热备份组,可以使负载得到分担。
二、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———路由器执行包传输功能。