热备份路由器协议 (HSRP) 是 CISCO 的专有协议,它旨在为本地子网提供冗余备份。在 HSRP 中,两台或多台路由器会共同模拟成一台虚拟路由器。
HSRP 允许我们将两台或多台路由器配置为备份路由器,但在任何特定时刻,只有一台路由器作为活动路由器工作。同一个 HSRP 组中的所有路由器共享一个 MAC 地址和一个 IP 地址,它们作为本地网络的默认网关。活动路由器 负责转发流量。如果它发生故障,备份路由器 会接管活动路由器的所有职责并开始转发流量。
#### 与 HSRP 相关的一些重要术语:
- 虚拟 IP (Virtual IP):从本地子网中分配出一个 IP 地址,作为网络中所有本地主机的默认网关。
- 虚拟 MAC 地址:MAC 地址由 HSRP 自动生成。前 24 位是默认的 CISCO 地址(即 0000.0c)。接下来的 16 位是 HSRP ID(即 07.ac)。最后 8 位是十六进制的组号。例如:如果组号是 10,那么最后 8 位将是 0a。
虚拟 MAC 地址示例 –
0000.0c07.ac0a
- Hello 消息:由活动路由器和备份路由器交换的周期性消息。这些消息每 3 秒交换一次,用于告知路由器的状态。
- 保持计时器:其默认值为 10 秒,大约是 Hello 消息时间的 3 倍。这个计时器告诉我们,如果备份路由器没有按时收到 Hello 消息,它会等待多长时间。
> 注意: 如果活动路由器发生故障,备份路由器将成为新的活动路由器。
- 优先级:默认情况下,优先级的值是 100。这在以下情况非常有用:当活动路由器恢复上线时,我们可以通过将备份路由器(即原活动路由器宕机后变为活动状态的备份路由器)的优先级更改为小于 100,使其重新变回备份路由器。
> 注意: 拥有较高优先级的路由器将成为活动路由器。
- 抢占:这是一种状态,指备份路由器自动成为活动路由器。
#### 工作原理:
具有相同组 ID 的成员属于同一个组。组内的一个成员将被选为活动路由器,而其他成员则保持为备份路由器。虚拟 IP 被配置为本地子网中所有主机的默认网关,活动路由器负责转发本地主机的流量。如果活动路由器发生故障,活动和备份路由器之间将停止交换 Hello 消息,因此备份路由器会一直等待,直到保持计时器的时间结束。一旦保持时间结束,备份路由器就会成为活动路由器,并承担起活动路由器的所有责任。这就是所谓的抢占。
如果原来的活动路由器恢复上线,我们可以降低当前路由器的优先级,使其再次成为备份路由器。
#### 热备份路由器协议 (HSRP) 有 2 个版本:
版本 1:消息使用组播地址 224.0.0.2,并使用 UDP 端口 1985。此版本允许的组号范围是 0 到 255。
版本 2:消息使用组播地址 224.0.0.102,并使用 UDP 端口 1985。此版本允许的组号范围是 0 到 4095。
#### 配置示例:
让我们参考上面给出的拓扑图。这里有两台路由器,分别命名为 R1 和 R2。R1 (f 0/0) 的 IP 地址是 10.1.1.1/24,R2 (f 0/0) 的 IP 地址是 10.1.1.2/24。
为路由器 R1 分配 IP 地址。
**r1#(config)** int fa0/0
**r1#(config-if)**ip add 10.1.1.1 255.255.255.0
为路由器 R2 分配 IP 地址。
**r2#(config)** int fa0/0
**r2#(config-if)**ip address 10.1.1.2 255.255.255.0
现在,让我们提供虚拟 IP 地址 (10.1.1.100),组名 HSRP_TEST,组号 1 以及优先级 110。此外,我们还启用了抢占,即如果活动路由器宕机,备份路由器将自动成为活动路由器。
**r1#(config-if)** standby 1 ip 10.1.1.100
**r1#(config-if)** standby 1 name HSRP_TEST
**r1#(config-if)** standby 1 priority 110
**r1#(config-if)** standby 1 preempt
接下来,我们将为 R2 提供虚拟 IP 地址 (10.1.1.100),组名 HSRP_TEST,优先级 100。同样,组号为 1 并且启用了抢占。
**r2#(config)** int fa0/0
**r2#(config-if)** standby 1 ip 10.1.1.100
**r2#(config-if)** standby 1 name HSRP_TEST
**r2#(config-if)** standby 1 priority 100
**r2#(config-if)** standby 1 preempt
注意: 由于我们将 r1 的优先级设为 110,因此它将成为活动路由器。