CCNP之HSRP的工作原理
在整个电力局企业网内,虚网之间的交换(三层交换)是通过7609路由交换机(多层交换特征卡MSFC2)和5500交换机(路由交换模块RSM)来实现的。两台交换机通过Cisco的热备路由器协议(HSRP)可以实现路由设备之间的冗余,即三层交换的冗余。HSRP协议是针对于IP协议,参与HSRP协议的路由设备为IP终端提供一个虚拟IP地址,且IPX等其它网络协议与HSRP兼容。
图:热备路由协议(HSRP)示意图
HSRP的工作原理
HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置得比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段(Hold Time 缺省为10秒)时间内主动路由器不能发送hello消息,或者说HSRP检测不到主动路由器的hello消息时,将认为主动路由器有故障,这时HSRP会选择优先级{zg}的备用路由器变为主动路由器,同时将按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还未运行,一般在配置{dy}台HSRP路由器时会显示此状态;
●Learn——表示配置HSRP的路由器还未知道虚地址,并一直监听来自主动路由器的消息包;
●Listening──表示配置HSRP的路由器还已知道虚地址,路由器还在监听hello消息;
●Speaking and listening──路由器正在发送和监听hello消息;
●Standby──处于被用状态,当主动路由器失效时路由器可被选为主动路由器,接管包转发功能;
●Active──路由器执行包转发功能。