全称Hot Standby Routing Protocol,原理比较简单,类似于服务器HA群集,两台或更多的路由器以同样的方式配置成Cluster,创建出单个的虚拟路由器,然后客户端将网关指向该虚拟路由器。最后由HSRP决定哪个路由器扮演真正的默认网关。
具体说,HRSP用于在源主机无法动态地学习到网关IP地址的情况下防止默认路由的失败。它主要用于多接入,多播和广播局域网(例如以太网)。
1. HRSP原理
需要注意的是,Cluster里的每个成员路由器仍然是标准的路由器,客户端仍然可以将成员路由器配置成其默认网关。
在Cisco路由器中,最多可以配置256个HSRP组,因为HSRP能够使用的MAC地址类似于:0000.0c07.ac**。
HRSP每隔3秒发送hello包,包括group ID,HSRP group和优先级(默认为100)。路由器彼此之间依据优先级,确定优先级最高的路由器是活动路由器。如果优先级相同,在IP地址高的成为活动路由器。
在HRSP组中,只允许同时存在一个活动路由器,其他路由器都处于备用状态,备用路由器不转发数据包。
如果备用路由器持续不断地收到活动路由器发来的hello包,则其会一直处于备用状态。
一旦备用路由器在规定的时间内(Hold Time,默认10秒)没有收到hello包,则认为活动路由器失效,优先级最高的备用路由器就接替活动路由器的角色,开始转发数据包。
 
2. HRSP preempt技术
HRSP技术能够保证优先级高的路由器失效恢复后总能处于活动状态。活动路由器失效后,优先级最高的备用路由器处于活动状态,如果没有使用preempt技术,则当活动路由器恢复后,只能处于备用状态,先前的备用服务器代替其角色处于活动状态,直到下一次选举发生。
 
3. HRSP track技术
如果所监测的端口出现故障,则也可以进行路由器的切换。
如果主路由器上有多条线路被跟踪,则当一条线路出现故障时,就会切换到备份路由器上,即使其他都线路正常工作,直到主路由器该线路正常工作,才能重新切换回来。该功能在实际应用中完全可以由线路备份功能实现。
 
4. HRSP配置
routerA#conf t
routerA(config)#int e0
routerA(config)#standby ip 172.16.1.254
routerA(config)#standby preempt
routerA(config)#standby track serial 0
routerA(config)#exit
routerA#
 
HSRP的关键特性如下:
1)在主路由器上激活虚拟IP地址和虚拟MAC地址
2)备用路由器监听由激活的路由器发来的Hello消息
3)由最高优先权决定激活路由器,默认情况下不允许抢占
4)支持追踪(Tracking),当追踪对象失效时,路由器的优先值随之降低
5)一个接口最多有255个HSRP组,支持管理级别的负载均衡
6)虚拟MAC地址的格式:0000.0C07.ACxx(xx表示HSRP组的十六进制表示)
7)虚拟IP地址必须与路由器的端口在同一子网中
8)支持明文和MD5认证(通过密钥链)
因为HSRP一次仅使用一个激活路由器,而其他路由器都是空闲的。为了提供负载均衡,又引入了MHSRP(多HSRP)。在MHSRP中,在每个HSRP的LAN接口上配置了两个或更多HSRP组,由配置的优先级决定哪个路由器对哪个HSRP组是激活的。
 
HSRP采用UDP 1985端口,多播地址为224.0.0.2,TTL为1。
 
HSRP中的几种实体:
 
1-----活跃路由器
执行包转发功能(前往虚拟ip的数据包)
 
2-----备份路由器
当活跃路由器失效时接替它工作的路由器
 
3-----虚拟路由器
它并不是一个真正的路由器,只是一个概念。对于网络中的主机来说,他们看到的是这一台虚拟路由器(其实就是这个热备组)。
 
4-----其他路由器
既不是备份路由器也不是活跃路由器,当活跃路由器或备份路由器出问题的时候他们会参与竞选。
 
在HSRP中,有三种消息格式:
 
0-----hello
表明当前路由器正在工作,并有能力成为活跃路由器或备份路由器。Hello消息会表明发送路由器的优先级和状态信息,默认3秒钟发一次。
 
1-----coup
当一个备份路由器变成活跃路由器时才发送一次。
Ps: coup 发动政变
 
2-----resign
当活跃路由器路由器要当机或者有拥有更高优先级的路由器发送hello的时候,由活跃路由器发送的。
 
运行HSRP的路由器,在任一时刻,处于以下6种状态之一。(前面的数字代表在UDP帧格式中代表状态的数字)
 
0-----initial
接口刚改变配置或者路由器刚起机的时候,处于这个状态。表明路由器不在运行HSRP。
 
1-----learn
表明路由器已经知道虚拟ip,但它并不是一个活跃路由器或者是备份路由器。
 
2-----listen
路由器在监听从活动路由器或等待路由器发来的hello消息。
 
4-----speak
定期发送hello消息,并且积极的参与活跃路由器和备份路由器的竞选
 
8-----standby
主动路由器失效时,准备结果包传输功能的状态
 
16-----active
正在执行包传输功能的状态