对于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的配置:
hostname RouterA
!
interface ethernet 0
ip address 1.0.0.1 255.0.0.0
standby 1 ip 1.0.0.3
standby 1 preempt
standby 1 priority 110
standby 1 authentication example
standby 1 timers 5 15
!
interface ethernet 1
ip address 3.0.0.1 255.0.0.0
!
router eigrp 1
network 1.0.0.0
network 3.0.0.0
以下是路由器B的配置:
hostname RouterB
!
interface ethernet 0
ip address 1.0.0.2 255.0.0.0
standby 1 ip 1.0.0.3
standby 1