HSRP(Hot Standby Router Protocol 热备份路由器协议)是Cisco的专有协议。HSRP把多台路由器组成一个“热备份组”,形成一个虚拟路由器。这个组内只有一个路由器是Active(活动)的,并由它来转发数据包,如果活动路由器发生了故障,备份路由器将成为活动路由器。从网络内的主机来看,网关并没有改变。
HSRP(Hot Standby Router Protocol 热备份路由器协议)把多台路由器组成一个虚拟路由器(Virtual Router)。PC上设置网关后,如果网关down了就断网了,导致网络连接不稳定。因此需要备用网关,即冗余网关,确保网络连接正常。HSRP可以提供冗余网关的解决方案。
VR虽然是虚拟路由器,但同样需要有三层IP地址和二层mac地址。三层IP地址是手动配的,但不能乱配,需要配置成和真实路由器处于同一网段的IP地址。VR的二层地址是自动生成的。例如0000.0c07.ac01,前6位0000.0c是Cisco买来的。中间4位07.ac是HSRP号。最后2位01是HSRP Group组号。每个HSRP组内只能有一个路由器是Active(活动)的,一个路由器是Standby备份的,其余路由器将处于监听状态。通过Active路由器来转发数据,如果Active路由器down了,Standby备份路由器将成为Active路由器,以保证网络的正常运行。属于同一个HSRP组的路由器的虚拟三层IP地址必须一致。
例如将真实路由器A和B捆绑成虚拟路由器VR后,谁成为Active路由器,谁成为Standby备份路由器呢?HSRP用优先级来决定,优先级高的成为Active路由器。优先级默认都是100,可以修改。如果优先级相同,IP地址高的成为Active路由器。路由器间通过组播(224.0.0.2)Hello包来互相监听各自的存在。Hello包默认每3秒发一次,如果长期收不到Active路由器发出的Hello包,就认为Active路由器出故障了,Standby备份路由器就将成为Active路由器。
Initial
初始状态,Hold时间10s后进入Listen
Learn
例如路由器A上新建了VR并设置了VR的IP,B加入了该VR但没有设置VR的IP,那B会从A那里学习到VR的IP。当然如果A和B都手动设了同样的VR的IP,就不会有这个状态
Listen
路由器加入进VR后,此时它既不是Active也不是Standby路由器,因此它监听Active和Standby发出的Hello包。如果收不到,Hold时间10s后进入Speak
Speak
路由器主动发送Hello包,包含自己的优先级,自己的IP地址,VR的IP地址等。参加竞选,竞争成为Active或Standby备份路由器。
Standby
竞选成为Standby路由器后,将定时发送Hello包。如果Standby状态下收不到Active路由器的Hello包,不经过Hold时间马上将自己置为Active。
Active
竞选成为Active路由器后,将定时发送Hello包。并承担转发数据的责任。
(Hello时间默认3s,Hold时间默认10s,是可以修改的,你可以改小点,比如改成500ms,但时间越短,占的资源就越多,需要你权衡利弊。通常Hold时间最少应是Hello时间的3倍)。
HSRP使用2个定时器:Hello间隔和Hold时间。默认Hello间隔是3秒,默认的Hold间隔是10秒。Hello间隔定义了两组路由器之间交换信息的频率。Hlod间隔定义了经过多长时间后,没有收到其它路由器的信息,则活动路由器或者备用路由器就会被宣告为失败。配置计时器并不是越小越好,虽然计时器越小则切换时间越短。计时器的配置需要和STP等的切换时间相一致。另外,Hold间隔最少应该是Hello间隔的3倍。