HSRP 是 Hot Standby Routing Protocol 的缩写。它是一种 Cisco 私有协议,用于提供高可用性和冗余。它让一组路由器接口协同工作,并把它们作为一台单一的虚拟路由器(默认网关)呈现给网络中的客户端。
HSRP 使用一个虚拟 MAC 地址和一个由所配置的路由器组共享的 IP 地址。它采用 Active 与 Standby 的概念来实现冗余。活动路由器是转发网络数据包的首选路由器。备用路由器则是在活动路由器发生故障时接管路由职责的路由器。
在本文中,我们将学习如何在 Cisco 路由器上配置 HSRP。
在配置 HSRP 之前,需要注意以下几点:
以下接口配置命令用于设定各项参数,以便选举出活动路由器和冗余路由器。
standby priority
standby preempt
standby track
此外,这些命令也用于设定新的活动路由器在何时接管路由职责的行为。
活动路由器与备用路由器可以通过优先级数值来选出。如果启用了抢占,优先级最高的路由器将成为活动路由器。如果在同一组已配置的路由器中,有两台或更多路由器的优先级数值相同,则当前的活动路由器不会发生改变。优先级数值的取值范围为 1 到 255。数值越大表示优先级越高,成为活动路由器的可能性也越大。如果某个接口配置了 standby track 命令,而路由器上的另一个接口发生故障,路由器的优先级可以动态改变。
逐步配置 HSRP
为了在 Cisco 路由器上配置 HSRP,我们将使用下面的拓扑。你可以使用 Cisco Packet Tracer 模拟器或 GNS3 来配置 HSRP。

1. 在 WAN 路由器(通常是接入互联网的一台)上执行以下命令,为 Gig0/0、Gig0/1 和 Gig0/2 接口配置相应的 IP 地址。
WAN(config)#interface Gig0/0
WAN(config-if)#ip 200.200.200.1 255.255.255.0
WAN(config-if)#no shutdown
WAN(config)#interface Gig0/1
WAN(config-if)#ip address 172.16.1.1 255.255.255.0
WAN(config-if)#no shutdown
WAN(config)#interface Gig0/2
WAN(config-if)#ip address 172.16.2.1 255.255.255.0
WAN(config-if)#no shutdown

2. 配置好相应的 IP 地址之后,执行以下命令来配置 RIP 版本 2 路由协议。
WAN(config) #router
WAN(config-router)#version 2
WAN(config-router)#network 172.16.1.0
WAN(config-router)#network 172.16.2.0
WAN(config-router)#network 200.200.200.0
WAN(config-router)#no auto-summary

在 WAN 路由器上配置好 IP 地址和路由之后,转到 AW-R1 路由器。这台路由器随后将作为活动路由器。
1. 执行以下命令,先为 Gig0/1 接口、再为 Gig0/2 接口配置 IP 地址。
AW-R1(config)#interface Gig0/1
AW-R1(config-if)#ip address 172.16.1.2 255.255.255.0
AW-R1(config-if)#no shutdown
AW-R1(config)#interface Gig0/2
AW-R1(config-if)#ip address 10.0.0.1 255.255.255.0
AW-R1(config-if)#no shutdown
2. 执行以下命令来设定组号(1-4096),并把 10.0.0.150 设为虚拟 IP 地址。
AW-R1(config-if)#standby 1 ip 10.0.0.10
3. 接着用以下命令设定优先级数值、启用抢占并指定被跟踪的接口。
AW-R1(config-if)#standby 1 priority 101
AW-R1(config-if)#standby 1 preempt
AW-R1(config-if)#standby 1 track Gig0/1
4. 用以下命令配置 RIP 版本 2 路由。
AW-R1(config-if)#router rip
AW-R1(config-router)#version 2
AW-R1(config-router)#network 172.16.1.0
AW-R1(config-router)#network 10.0.0.0
AW-R1(config-router)#no auto-summary

现在转到处于 standby 状态的 AW-R2 路由器,执行以下命令。在这台路由器上,我们把优先级数值设为 99(低于活动路由器)。
AW-R2(config)#interface Gig0/1
AW-R2(config-if)#ip address 172.16.2.2 255.255.255.0
AW-R2(config-if)#no shutdown
AW-R2(config-if)#interface Gig0/2
AW-R2(config-if)#ip address 10.0.0.2 255.255.255.0
AW-R2(config-if)#no shutdown
AW-R2(config-if)#standby 1 ip 10.0.0.10
AW-R2(config-if)#standby 1 priority 99
AW-R2(config-if)#standby 1 preempt
AW-R2(config-if)#standby 1 track Gig0/1
AW-R2(config-if)#router rip
AW-R2(config-router)#version 2
AW-R2(config-router)#network 172.16.2.0
AW-R2(config-router)#network 10.0.0.0
AW-R2(config-router)#no auto-summary

在活动路由器和备用路由器上都配置好 HSRP 路由协议之后,现在该验证你的配置了。为此,在主路由器上执行以下命令并查看输出。
AW-R1#show standby

可以看到,AW-R1 路由器目前作为活动路由器工作,因为它的优先级(101)高于 AW-R2 路由器(99)。
为了说明活动路由器发生故障时会出现什么情况,我们将关闭 AW-R1 路由器上的 Gig0/0 接口。为此,执行以下命令:
AW-R1(config) #Gig0/2
AW-R1(config-if)#shutdown
现在转到 AW-R2 路由器,执行以下命令:
show standby

可以看到,一旦 AW-R1 路由器的接口发生故障,AW-R2 路由器就成为活动路由器并接管路由职责。
目标网络仍然可以到达,因为客户端使用虚拟 IP 地址 10.0.0.10 作为默认网关。当 R01 路由器发生故障时,AW-R2 路由器接管路由职责。
这正是 HSRP 协议所做的事情。
在本文中,我向你说明了如何在 Cisco 设备上配置 HSRP,以及它如何有助于提供冗余。
如有需要,欢迎留言。
