HSRP 的概念
HSRP 是 Hot Standby Routing Protocol(热备份路由协议)的缩写。它的作用是能够把一台或多台路由器用来做备份,所谓热备份是指当使用的路由器不能正常工作时,候补的路由器能够实现平滑的替换,尽量不被察觉。
通常,我们的网络上主机设置一条缺省路由,指向主机所在网段内的一个路由器 R,这样,主机发出的目的地址不在本网段的报文将被通过缺省路由发往路由器 R,从而实现了主机与外部网络的通信。在这种情况下,当路由器 R 坏掉时,本网段内所有以路由器 R 为缺省路由下一跳的主机将断掉与外部的通信。HSRP 实现容错备份功能,可以有效解决上述可靠性问题。
HSRP 解决的问题
主机 Pat 设置缺省网关 Router A,这样访问主机 Marceau 需要通过Router A 来进行。一旦 Router A 出现故障,主机 Pat 将失去与主机Marceau 的联系,除非主机 Pat 重新指定其它的缺省网关,如 Router B。
HSRP 的引入
让我们看一下引入 HSRP 是如何解决问题的。通过在 Router A 和Router B上配置 HSRP,使它们共同组成一个备份组,可以把这个组抽象成一个虚拟路由器,它有自己的 IP 地址和 MAC 地址,分别称作虚拟 IP 地址和虚拟 MAC 地址。这样主机 Pat 可以把自己的缺省网关设置成虚拟IP 地址,访问主机 Marceau 就可以通过虚拟路由器来进行。当然,虚拟路由器是一个抽象的概念,实际的网关工作是由 Router A 和Router B中的一个来完成的,我们称完成实际网关工作的路由器为活动路由器,另外一个路由器为备份路由器。如果活动路由器出现故障,就像前面提到的 Router A 发生故障,备份路由器(如Router B)会接替成为活动路由器,因此,主机 Pat 在不察觉情况下,仍然可以通过 Router B来访问主机 Marceau。
HSRP 的用途
HSRP 用于广播或多播局域网上的路由器热备份,并适于静态的路由配置,实际上 HSRP 正是解决设备不能动态适应路由改变的问题。
HSRP 主要用途:
1、主机设置缺省网关
假设主机 A 是局域网中一台需要访问远程数据的服务器,要求远程访问能力可靠。由于主机 A 中静态设置缺省网关,一旦想更换网关,必须在主机中重新配置。通过使用 HSRP,主机中设置虚拟路由器为缺省网关,具体由虚拟路由器中的哪台路由器完成网关的实际工作,主机并不关心,这就为应用提供了较好的可靠性和灵活性。
2、设置静态路由
可以通过配置静态缺省路由指向虚拟路由器来实现另外一种备份。
HSRP 工作原理
当采用 HSRP, 用户看到的是一台虚拟路由器,该虚拟路由器有自己的虚拟 IP 地址和虚拟 MAC 地址,该虚拟路由器是由一组路由器组成的,这组路由器称为备份组。备份组内由一台活动路由器、一台备份路由器,以及群众路由器构成。一般情况下,一旦活动路由器坏掉,该备份路由器成为活动路由器,然后备份组内选举组内的另一台路由器为备份路由器。
组内路由器通过接受来自活动路由器的周期性 Hello 报文来判断活动路由器是否工作正常。如果组内备份路由器 R 在一定时间间隔未收到活动路由器 Hello 报文,就认为活动路由器坏掉了,优先级高的备份路由器最终成为活动路由器。备份路由器也是通过类似过程产生的。这样总能保证备份组中有一台活动路由器,一台备份路由器。
HSRP 状态
备份组内的路由器处于各自的状态,根据相互间发送 HSRP 报文来调整新的状态。
HSRP 状态:
(1)INIT
所有备份组内组员的初始状态为 INIT,当组员配置属性或端口 UP 时,进入 INIT 状态。
(2)LEARN
该组员未设定虚拟 IP 地址,并等待从本组活动路由器发出的认证的Hello 报文中学习得到自己的虚拟 IP 地址。
(3)LISTEN
该组员已得知或设置了虚拟 IP 地址,通过监听 Hello 报文监视活动/备份路由器,一旦发现活动/备份路由器长时间未发送 Hello 报文,则进入 SPEAK 状态,开始竞选。
(4)SPEAK
参加竞选活动/备份路由器的组员所处的状态,通过发送 Hello 报文使竞选者间相互比较、竞争。
(5)STANDBY
组内备份路由器所处的状态,备份组员监视活动路由器,准备随时在活动路由器坏掉时接替活动路由器。备份路由器也周期性发送 Hello 报文告诉其他组员自己没有坏掉。
(6)ACTIVE
组内活动路由器即负责虚拟路由器实际路由工作的组员所处的状态。活动路由器周期性发送 Hello 报文告诉其他组员自己没有坏掉。
HSRP 状态转换
HSRP 协议中定义了一个自动状态机,不同的触发事件会产生相应的状态变化和动作。
HSRP 报文
- Version :1 Byte
HSRP 报文的版本号。本文档的 HSRP 报文版本为 0 。
- Oper Code :1 Byte
描述了 HSRP 报文的类型,共有3 种报文类型:
(1)0 —— Hello
Hello 类型报文说明发送者处在运行状态,有能力成为活动/备份路由器。
(2)1 —— COUP
COUP 类型报文说明发送者希望成为活动路由器。
(3)2 —— RESIGN
COUP 类型报文说明发送者不再是活动路由器。
- State :1 Byte
描述发送者发送报文时所处的状态。
- Hello Time :1 Byte
该域只在 Hello 报文中有意义。它包含发送者发送 Hello 报文的时间间隔,以秒计;
如果路由器上未配置 Hello Time 值,它可以从组中活动路由器发送的Hello 报文中学习到,但须本路由器认证该 Hello 报文;
如果路由器上既未配置 Hello Time,也未学习到,则赋予缺省值 3。
- Hold Time :1 Byte
该域只在 Hello 报文中有意义。它包含发送者发送 Hello 报文的持有时间,以秒计;
Hold Time 必须大于 Hello Time ,而且最好大于三倍 Hello Time;
如果路由器上未配置 Hold Time ,它可以从组中活动路由器发送的Hello 报文中学习到,但须本路由器认证该 Hello 报文;
如果路由器上既未配置 Hello Time ,也未学习到,则赋予缺省值10 。
- Priority :1 Byte
该域用来选举活动/备份路由器。当选举过程中出现竞争(多个路由器都想成为活动/备份路由器)时,优先级最高的竞争者胜,对于优先级相等的竞争者,IP 地址最大的竞争者胜。
- Group :1 Byte
此域中记录发送者所在的备份组号。对于以太网,Group 取值范围为0-255 。
- Authentication Data :8 Byte
8 字符长的的口令,用于组内成员相互鉴别。
- Vritual IP Address :4 Byte
备份组的虚拟IP地址,备份组模拟的虚拟路由器的 IP 地址。虚拟路由器还有一 MAC 地址,它由组号直接映射而成:0X00 00 0C 07 AC ** ,其中“**”为备份组号。
组内各成员须至少有如下信息:
(1)备份组号(Group);
(2)虚拟 MAC 地址(Virtual MAC Address);
(3)优先级(Priority);
(4)Authentication Data;
(5)Hello Time;
(6)Hold Time;
至少一位组员有如下信息:
(1)虚拟 IP 地址(Virtual IP Address);
每位组员可选择配置如下信息:
(1)抢占标志(Preempt);
如果某位组员的 Preempt 置位,又收到活动路由器的 Hello 报文,发现自己的优先级比活动路由器高,则该组员可强行取代成为活动路由器。
HSRP 多备份组(MHSRP)
在一网段内,多个备份组可以共存。每个备份组模拟成一虚拟路由器,每个这样的虚拟路由器配置一虚拟 MAC 地址和一虚拟 IP 地址。该虚拟IP地址应属于本网段,而且不与网段内的任何路由器和主机的IP地址相同,也不与网段内的其他虚拟路由器的虚拟IP地址相同。
一台路由器也可以参加多个备份组,为多个组作备份。
路由器的 HSRP 配置是针对具体接口的,因此需要在接口模式下配置。在一台路由器上,备份组由(接口,组号)唯一确定。每个备份组都有属于自己的数据和状态。
如果一台路由器有两个以太网口,可以分别在两个接口上配置两个 HSRP 备份组,为不同网段使用。
HSRP 基本配置
- [no] standby [group-number] ip [virtual ip address]
说明:
使路由器在指定局域网段加入或退出一个备份组。需要指定备份组号和虚拟 IP 地址。备份组号范围从 0 到 255,如 group-number 不指定,备份组号缺省为 0,virtual ip address 如果不指定,路由器不会参与备份,直到从备份组中的活动路由器获得虚拟 IP 地址。注意虚拟 IP 地址应该是接口所在网段的地址。一旦退出 HSRP 备份组,则路由器在该备份组上设置的所有 HSRP 特性不再有效(如优先级,授权字等)。
- standby [group-number] priority [priority-value]
说明:
HSRP 中根据优先级来确定参与备份组的每台路由器的地位,备份组中优先级最大并且已获得虚拟 IP 地址的路由器将成为活动路由器,优先级其次的路由器将成为备份路由器。优先级缺省值是 100,可设置范围从 0 到 255。
- standby [group-number] preempt
说明:
一旦备份组中的某台路由器成为活动路由器,只要它没有出现故障,其它路由器即使随后被配置更高的优先级,也不会成为活动路由器,除非被设置抢占方式。路由器如果设置抢占方式,它一旦发现自己的优先级比当前的活动路由器的优先级高,就会成为活动路由器。相应地,原活动路由器会退出活动态,成为备份路由器或其它。缺省方式是不抢占。
- standby [group-number] authentication string
说明:
HSRP 授权字确认同备份组间其它路由器的有效性。授权字 string 的长度不超过 8 个字节。注意:同一备份组要设置相同的授权字。
- standby [group-number] timers [hello_time] [hold_time]
说明:
HSRP 备份组路由器之间通过定时发送 Hello 报文确认相互的状态,超过一定时间(hold time)没有收到某台路由器的 Hello 报文,则认为它已关机或出现故障。用户可以调整发送 Hello 报文的间隔时间(hello time)和超时时间(hold time)。缺省值分别是 3 秒和 10 秒。时间单位是秒。注意:同一备份组要设置相同的 hello time 和 hold time。
- standby [group-number] track interface_name [priority-reduced]
说明:
HSRP 监视接口功能,更好地扩充了备份功能,即不仅在路由器出现故障时提供备份功能,而且在某网络接口不可用时,也可以使用备份功能。命令作用是监视接口 interface_name,如果接口变为不可用,则将优先级减少 priority-reduced (priority-reduced 缺省值为 10) 。
HSRP 其它配置
- standby use-bia
当主机使用 HSRP 备份组,除了使用虚拟 IP 地址,还要使用备份组的虚拟MAC 地址,缺省方式下,每个 HSRP 备份组使用特殊保留的 MAC地址作为虚拟 MAC 地址, 以保证备份组对主机的透明性。然而,用户也可以设置 HSRP 备份组使用活动路由器的真实 MAC 地址。
- standby use-ovmac xx-xx-xx-xx-xx
对于 HSRP 备份组的虚拟 MAC 地址, 随生产厂家而不同。为了实现与其它厂家路由器的互通,Quidway 提供用户更改虚拟 MAC 地址的设置。
- show standby
显示 HSRP 信息。
- debug standby
显示调试信息。