对于IP网络来说,Cisco的热备份路由协议(HSRP, Hot Standby Routing Protocol)允许网络在一个路由器失效不能工作时,网络中的另一个路由器自动接管失效路由器,从而实现IP路由容错。HSRP协议还允许两个或多个配置HSRP协议的路由器使用一个虚拟路由器的MAC地址和IP地址。
虚拟路由器物理上并不存在,它表示一个能为它们提供备份容错的公共路由器对象。图1显示了配置HSRP协议的广域网中的北京网段。其中,每个物理路由器都配置了虚拟路由器的MAC地址和IP地址。
在图1中,虚拟路由器的MAC地址是0000.0c07.ac01。当配置HSRP协议时,路由器自动地在Cisco IOS软件的地址池中选择一个虚拟MAC地址,该虚拟MAC地址在Cisco 公司的MAC地址块范围内。以太网和FDDI局域网使用预先指定的MAC地址作为虚拟MAC地址,令牌环局域网使用一个功能地址作为虚拟MAC地址。
在图1中,网络192.1.1.0中的主机的缺省路由器没有设置为路由器A,而设置为虚拟路由器的IP地址。当用户A的工作站给位于广州网段的用户B的工作站发送数据包时,它将数据包发送到虚拟路由器的MAC地址。
在图1中,路由器A设置为主动路由器。它被配置为虚拟路由器的IP地址和MAC地址,所有发往虚拟路由器的数据包都经由接口发送到广州网段。作为备份路由器,路由器B也被配置为虚拟路由器的IP地址和MAC地址。如果由于某种原因路由器A停止转发数据包,路由协议发生收敛,路由器B接管路由器A变为主动路由器。也就是说,路由器B对虚拟MAC地址和虚拟IP地址进行反应。用户A的工作站继续使用虚拟路由器的IP地址将数据包发往用户B的工作站,路由器B接受这些数据包,并通过上海网段将其发送到广州网段。直到路由器A重新工作,HSRP允许路由器B为北京网段的用户提供不间断的与广州网段的用户进行通信服务。当路由器B是主动路由器时,路由器B执行正常功能:转发北京网段和上海网段之间的数据包。
HSRP的工作原理
HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置得比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。路由器之间的包传输对网络上的所有主机来说都是透明的。
配置了HSRP协议的路由器交换以下三种多点广播消息:
◆Hello──hello消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;
◆Coup──当一个备用路由器变为一个主动路由器时发送一个coup消息;
◆Resign──当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。
在任一时刻,配置了HSRP协议的路由器处于以下四种状态之一:
◆Active──路由器执行包传输功能;
◆Standby──当主动路由器失效时路由器准备接管包传输功能;
◆Speaking and listening──路由器正在发送和监听hello消息;
◆Listening──路由器正在监听hello消息。
配置HSRP
图2给出了一个IP网络的拓扑结构图,其中两个路由器配置了HSRP协议。
网络上的所有主机都将虚拟路由器的IP地址(本文中为1.0.0.3)配置为缺省的网关。配置缺省网关的命令与主机的操作系统、TCP/IP实现和配置有关。
以下是路由器A的配置:
其中的standby ip接口设置命令启动HSRP协议并设置1.0.0.3作为虚拟路由器的IP地址。两个路由器的配置中均包含了这个命令,这样两个路由器共享同一个虚拟IP地址。1建立备用组1(如果不指定一个组号,则缺省组号为0)。在建立的备用组中必须有一个路由器指定虚拟路由器的IP地址,备用组中的其他路由器指定虚拟路由器的IP地址则是可选的。
其中的standby preempt接口设置命令允许当该路由器的优先级比组中的其他的路由器的优先级高时,该路由器成为主路由器。在本文的配置中,两个路由器都包含该命令,这样其中的任何一个路由器都可以成为另一个路由器的备份路由器。其中的1表示此命令适用于备用组1。如果其中的一个路由器配置中不包含此命令,则该路由器不能成主动路由器。
其中的standby priority接口设置命令设置路由器的HSRP优先级为110,这比缺省的100优先级高。在本文的配置中只有路由器A包含这个命令,这使路由器A成为缺省的主动路由器。1表示该命令适用于备用组1。
其中的standby authentication接口设置命令建立一个8字符的明文认证字符串,此认证字符串包含在每个HSRP多点广播消息中。
该命令是可选的,如果使用,则组中的每个配置HSRP协议的路由器必须使用相同的认证字符串,以保证每个路由器能确认接收到的HSRP消息的来源。1表示此命令应用于备用组1。
其中,standby timers接口设置命令设置hello消息之间的间隔,称为hello时间,此时间间隔为5秒; 路由器在等待8秒钟保持时间之后宣布主动路由器宕机(缺省的hello时间和保持时间分别为3秒和10秒)。如果修改此参数,则各路由器必须使用相同的hello时间和保持时间。1表示此命令应用于备用组1。
……