HSRP的工作原理
  HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置得比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
  通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段(Hold Time 缺省为10秒)时间内主动路由器不能发送hello消息,或者说HSRP检测不到主动路由器的hello消息时,将认为主动路由器有故障,这时HSRP会选择优先级最高的备用路由器变为主动路由器,同时将按HSRP优先级在配置了HSRP的路由器中再选择一台路由器作为新的备用路由器。
  所有参与HSRP的路由器共享一个虚的IP地址,网络中的工作站将缺省网关指向该虚地址,被选出的主动路由器负责转发由工作站发到虚地址的数据包。
  Hello消息是基于UDP的信息包,配置了HSRP的路由器将会周期性的广播Hello消息包,并利用Hello消息包来选择主动路由器和备用路由器及判断路由器是否失效。
  如图所示,PC将数据包发送到设置的缺省网关(配置HSRP路由器所共享的虚拟IP地址),假设图中的7609设置了较高的优先级,7609将被选为主动路由器,并负责转发网络中所有由PC发送到其网关(HSRP地址)的数据包。当7609发生故障时,7609就不会广播Hello信息包,HSRP如果经过Hold Time还未收到来自7609的Hello信息包,将认为7609实效,这时HSRP将选择备用的5500作为主动路由器,并由5500来负责转发网络中所有由PC发送到其网关(HSRP地址)的数据包。而当7609恢复后,将继续发送Hello信息包,HSRP检测到其发送的Hello信息包具有高的优先级,则会重新将7609选为主动路由器,5500则仍将恢复成为备用路由器。
  配置了HSRP协议的路由器交换以下三种多点广播消息:
  ●Hello──hello消息通知其他路由器,发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;
  ●Coup──当一个备用路由器变为一个主动路由器时发送一个coup消息;
  ●Resign──当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。
  在任一时刻,配置了HSRP协议的路由器处于由以下六种状态:
  ●Initial ——表示路由器的HSRP还未运行,一般在配置第一台HSRP路由器时会显示此状态;
  ●Learn——表示配置HSRP的路由器还未知道虚地址,并一直监听来自主动路由器的消息包;
  ●Listening──表示配置HSRP的路由器还已知道虚地址,路由器还在监听hello消息;
  ●Speaking and listening──路由器正在发送和监听hello消息;
  ●Standby──处于被用状态,当主动路由器失效时路由器可被选为主动路由器,接管包转发功能;
  ●Active──路由器执行包转发功能。