IP : 热备份路由协议 (HSRP)

热备用路由器协议特性和功能

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

本文档介绍了热备用路由器协议 (HSRP) 的特性和功能。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

HSRP 背景和操作

使用 HSRP 是实现近 100% 网络正常运行时间的一种方法,HSRP 能够为 IP 网络提供网络冗余,从而确保用户流量立即、透明地从网络边缘设备或接入电路的首跳故障中恢复。

通过共享 IP 地址和 MAC(第 2 层)地址,两个或多个路由器可以充当单个“虚拟”路由器。虚拟路由器组的成员会连续交换状态消息。这样,如果一台路由器由于计划内或计划外的原因而停止路由,则另一台路由器可以承担其路由责任。主机继续将 IP 数据包转发到一致的 IP 和 MAC 地址,并且执行路由的设备的转换是透明的。

动态路由器发现机制

下面描述了可供主机使用的动态路由器发现机制。其中许多机制都不提供网络管理员所需的网络弹性。这可能是因为协议最初目的不是提供网络弹性,或者是因为无法使网络上的所有主机都运行该协议。除了下面所列各项之外,务必要注意许多主机只允许您配置默认网关。

代理地址解析协议

一些 IP 主机使用代理地址解析协议 (ARP) 选择路由器。当主机运行代理 ARP 时,它会发送 ARP 请求以获取要访问的远程主机的 IP 地址。网络上的路由器(路由器 A)将代表远程主机回复,并且提供自己的 MAC 地址。通过代理 ARP,主机就如同远程主机已连接到网络的同一个网段一样运行。如果路由器 A 发生故障,主机会继续将目标为远程主机的数据包发送到路由器 A 的 MAC 地址,即使这些数据包没有目的地和丢失也是如此。您要么发送其他ARP请求,等待ARP获取本地网段上的路由器B和其他路由器的MAC地址,要么重启主机,强制其发送ARP请求。无论是哪种情况,在相当长一段时间内,即使路由协议已经收敛,并且路由器 B 已准备好传输将以其他方式通过路由器 A 的数据包,主机都无法与远程主机通信。

动态路由协议

某些 IP 主机运行(或监听)动态路由协议(如路由信息协议 (RIP) 或开放最短路径优先 (OSPF))来发现路由器。使用 RIP 的缺点是适应拓扑变化的速度很慢。由于许多原因,在每台主机上运行动态路由协议可能并不可行,这些原因包括管理开销、处理开销、安全问题,或缺乏某些平台的协议实施。

ICMP 路由器发现协议

某些较新的 IP 主机使用 ICMP 路由器发现协议 (IRDP) (RFC 1256),在路由器无法使用时查找新的路由器。leavingcisco.com 运行 IRDP 的主机会侦听来自其配置的路由器的 hello 多播消息,并且在不再收到这些 hello 消息时使用替代路由器。IRDP 的默认计时器值意味着它不适合检测首跳故障。默认通告速率是每 7-10 分钟发送一次,默认寿命是 30 分钟。

动态主机配置协议

动态主机配置协议 (DHCP) (RFC 1531) 提供了一种机制,用于将配置信息传递到 TCP/IP 网络上的主机。leavingcisco.com 当运行 DHCP 客户端的主机引导到网络上时,它会从 DHCP 服务器请求配置信息。此配置信息通常包括 IP 地址和默认网关。如果默认网关发生故障,将没有切换到替代路由器的机制。

HSRP 操作

大量不支持动态发现的传统主机实施可以配置默认路由器。由于许多原因,在每台主机上运行动态路由器发现机制可能并不可行,这些原因包括管理开销、处理开销、安全问题,或缺乏某些平台的协议实施。HSRP 会向这些主机提供故障切换服务。

通过使用 HSRP,一组路由器将协同运行,对 LAN 中的主机呈现单个虚拟路由器的效果。这组路由器称为 HSRP 组或备用组。从该组中选择的单个路由器负责转发主机发送到虚拟路由器的数据包。此路由器称为活动路由器。另一台路由器则被选为备用路由器。在活动路由器发生故障时,备用路由器会承担活动路由器的数据包转发责任。虽然任意数目的路由器都可以运行 HSRP,但只有活动路由器会转发向虚拟路由器发送的数据包。

为了最大程度地减少网络流量,一旦协议完成选举过程,就只有活动路由器和备用路由器定期发送 HSRP 消息。如果活动路由器发生故障,则备用路由器接管活动路由器。如果备用路由器发生故障或者成为活动路由器,则会将另一个路由器选为备用路由器。

在特定 LAN 上,多个热备用组可以共存和重叠。每个备用组都会模拟单个虚拟路由器。单个路由器可以加入多个组。在这种情况下,路由器会针对每个组维护单独的状态和计时器。

每个备用组都有一个已知的 MAC 地址和 IP 地址。

HSRP 编址

在大多数情况下,当您将路由器配置为某个 HSRP 组的组成部分时,这些路由器将监听该组的 HSRP MAC 地址以及各自的固化 MAC 地址。但是,以太网控制器仅识别单个 MAC 地址的路由器除外(例如,Cisco 2500 和 Cisco 4500 路由器上的 Lance 控制器)。当这些路由器是活动路由器时,它们会使用 HSRP MAC 地址,而当它们不是活动路由器时,则使用其固化地址。

HSRP 在令牌环以外的所有介质上使用以下 MAC 地址:

0000.0c07.ac**   (where ** is the HSRP group number)

令牌环接口使用功能地址作为 HSRP MAC 地址。功能地址是唯一可用的通用多播机制。可用的令牌环功能地址数量有限,并且其中许多地址是为其他功能保留的。您可以将以下三个地址用于 HSRP:

c000.0001.0000   (group 0)
c000.0002.0000   (group 1)
c000.0004.0000   (group 2)

注意: 当HSRP运行在多环路源路由桥接(SRB)环境,而HSRP路由器位于不同环,使用功能地址则可能引起路由信息域(RIF)混乱。例如,在SRB环境中,很可能HSRP备用路由器驻留在与主路由器不同的环上。激活此备用路由器时,与旧活动路由器位于同一个环上的工作站需要新的 RIF,以便将数据包发送到新的活动路由器。然而,由于备用(新的活动)路由器与原来的活动路由器使用的功能地址相同,因此工作站不清楚它们必须发送探测器以获取新的 RIF。为此,引入了 use-bia 命令。

Cisco IOS 版本和 HSRP 功能列表

本文显示支持哪些HSRP功能思科IOSï ¿  ½软件版本。单击功能可以查看详细说明。中间的版本号表示功能最先出现在哪个版本,或者表示该功能在哪个版本上发生了变化。

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
功能 10.0 10.2 10.3 11.0 11.1 11.2 11.3 12.0 12.0T 12.1 12.1T
Preemption X X X X X X X X X X X
多组 (MHSRP) X X X X X X X X X
以太网 802.10 SDE X X X X X X X
接口跟踪 X X X X X X X
使用 BIA 8.0 X X X X X X
抢占延迟 X X 6.1 X X X
以太网 LANE X X X X X X
令牌环 LANE X X X X X
ISL X X X X X
Syslog 支持 X X X X X
MAC 刷新间隔 1.0 X X X
SNMP MIB 3.0 X X
MHSRP 和使用 BIA 3.4 X X
IP 冗余 3.4 X X
BVI 6.2 X X
802.1Q 8.1 X X
增强的 HSRP 调试 0.2 X
HSRP ICMP 重定向 3
HSRP MPLS VPN 3

Cisco IOS 引导映像和 HSRP 功能

在集成 Cisco Bug ID CSCec16720仅限注册用户)之前,HSRP 功能包含在 Cisco IOS 引导映像中。Cisco Bug ID CSCec16720 从引导映像中删除了 HSR,但以下映像除外:

  • c7200-boot-mz

  • c7200-kboot-mz

  • c10k-eboot-mz

  • c4500-boot-mz

  • c7200-boot-mz

  • c7200-kboot-mz

  • c7400-kboot-mz

  • ubr7200-boot-mz

  • c6400r-boot-mz

  • rpm-boot-mz

  • rpmxf-boot-mz

  • rsp-boot-mz

  • urm-wboot-mz

  • c5350-boot-mz

  • c5400-boot-mz

  • c7301-boot-mz

  • c5850-boot-mz

  • c4gwy-cboot-mz

  • ubr910-rboot-mz

  • ubr910-rboot-mz

  • ubr925-k8boot-mz

  • c5850tb-boot-mz

HSRP 功能

Preemption

通过 HSRP 抢占功能,优先级最高的路由器可以立即成为活动路由器。优先级的确定首先取决于您配置的优先级值,然后取决于IP地址。在任何情况下,值越大,优先级越高。

当优先级较高的路由器优先于优先级较低的路由器时,它会发送一条 coup 消息。当优先级较低的活动路由器从优先级较高的活动路由器收到 coup 消息或 hello 消息时,它会更改为对话状态,并发送 resign 消息。

抢占延迟

通过抢占延迟功能,可以将抢占延迟一段可配置的时间,从而允许路由器在成为活动路由器之前填充其路由表。

在Cisco IOS软件版本12.0(9)前,开始的延迟,当路由器重新载入。在 Cisco IOS 版本 12.0(9) 中,延迟会在首次尝试抢占时开始。

要配置 HSRP 优先级和抢占,请使用 standby [group] [priority number] [preempt [delay [minimum] seconds] [sync seconds]] 命令。

有关配置 HSRP 的详细信息,请参阅 HSRP 文档

接口跟踪

通过接口跟踪,可以在路由器上为 HSRP 进程指定另一个接口进行监控,以便更改指定组的 HSRP 优先级。

如果指定接口的线路协议失效,则会降低此路由器的 HSRP 优先级,从而允许另一个优先级较高的 HSRP 路由器成为活动路由器(如果它已启用抢占)。

要配置 HSRP 接口跟踪,请使用 standby [group] track interface [priority] 命令。

当所跟踪的多个接口断开时,优先级将以累积数量降低。如果明确设置递减值,则当该接口断开时,优先级值将减少该数量,并且递减是累积的。如果不设置明确的递减值,则当每个接口断开时,该值都会减少 10,并且递减是累积的。

以下示例使用下列配置,且默认递减值为 10。

注意: 如果未指定 HSRP 组号码,则默认组号码为组 0。

interface ethernet0
     ip address 10.1.1.1 255.255.255.0
     standby ip  10.1.1.3 
     standby priority 110
     standby track serial0 
     standby track serial1

具有此配置的 HSRP 行为如下:

  • 0 个接口断开 = 不降低(优先级是 110)

  • 1 个接口断开 = 降低 10(优先级变为 100)

  • 2 个接口断开 = 降低 10(优先级变为 90)

即使如下所示明确配置了递减值,也会发生上述 HSRP 行为。

interface ethernet0
     ip address 10.1.1.1 255.255.255.0
     standby ip  10.1.1.3 
     standby priority 110
     standby track serial0 10
     standby track serial1 10

在Cisco IOS版本12.1前,如果启动有关闭接口的一个路由器, HSRP接口跟踪认为接口。

此缺陷的 Cisco Bug ID 为 CSCdp32289仅限注册用户)。

使用固化地址

通过使用固化地址 (BIA) 功能,HSRP 组可以使用接口的固化 MAC 地址而不是 HSRP MAC 地址。使用 BIA 是在 Cisco IOS 版本 11.1(8) 中首次实施的。要将 HSRP 配置为使用 BIA,请使用 standby use-bia [scope interface] 命令。

实施 use-bia 命令是为了克服对令牌环接口上 HSRP MAC 地址使用功能地址的限制。

注意: 如果 HSRP 在多环源路由桥接(SRB)环境中运行,并且 HSRP 路由器位于不同的环,则使用功能地址可能导致路由信息字段 (RIF) 混乱。为此,引入了 use-bia 命令。

通过允许将 DECnet MAC 地址 (BIA) 用作 HSRP MAC 地址,use-bia 功能还支持在同一路由器上使用 DECnet、Xerox Network Systems (XNS) 和 HSRP。在设备的 BIA 已在 LAN 上的其他设备中配置的网络情况下,也可以使用 use-bia 命令。

然而,use-bia 命令有以下几个缺点:

  • 当路由器处于活动状态时,虚拟 IP 地址将移至其他 MAC 地址。新的活动路由器将发送无故 ARP 响应,但不是所有主机实施都能正确处理无故 ARP。

  • 配置 use-bia 时,代理 ARP 会中断。备用路由器不能实现故障路由器丢失的代理 ARP 数据库的功能。

  • 在 Cisco IOS 版本 12.0(3.4)T 之前,如果配置了 use-bia,则仅允许使用一个 HSRP 组。

在子接口上配置 use-bia 命令时,该命令实际上会显示在主接口上并应用于所有子接口。在 Cisco IOS 12.0(6.2) 及更高版本中,use-bia 命令已扩展具有可选范围接口关键字,以便应用于单个子接口。

此缺陷的 Cisco Bug ID 为 CSCdm25468仅限注册用户)。

多个 HSRP 组

Cisco IOS 版本 10.3 中增加了多个 HSRP (MHSRP) 组功能。此功能进一步支持网络内的冗余和负载共享,并允许更完全利用冗余路由器。当路由器正在转发一个 HSRP 组的流量时,该路由器对其他组可以处于备用或监听状态。

自 Cisco IOS 版本 12.0(3.4)T 以后,您可以在启用了多个 HSRP 组的情况下使用 use-bia 命令。

共享与HSRP的参考的负载配置HSRP为了利用多条路径。

可配置的 MAC 地址

通常,您可以使用 HSRP 帮助终端站找出用于 IP 路由的首跳网关。终端站配置有默认网关。然而,HSRP 可以为其他协议提供首跳冗余。某些协议(例如高级对等网络 (APPN))使用 MAC 地址来识别首跳以便进行路由。

在这种情况下,通常有必要使用 standby mac-address 命令指定虚拟 MAC 地址。虚拟 IP 地址对这些协议而言并不重要。该命令的实际语法是 standby [group] mac-address mac-address

注意: 您不能对令牌环接口使用此命令。

Syslog 支持

Cisco IOS 版本 11.3 中增加了对 HSRP 信息的 Syslog 消息的支持。通过此功能,可以在 Syslog 服务器上更有效地记录并跟踪当前活动路由器和备用路由器。

HSRP 调试

在Cisco IOS版本12.1前, hsrp debugging命令相对简单。要启用 HSRP 调试,只需使用 debug standby 命令即可,该命令支持输出所有接口上的全部备用组的 HSRP 状态和数据包信息。

Cisco IOS 版本 12.0(2.1) 中增加了调试条件,可允许根据接口和组号码过滤 standby debug 命令的输出。该命令会使用 Cisco IOS 版本 12.0 中引入的 debug condition 模式,如下所示:debug condition standby interface group指定的接口必须是可以支持 HSRP 的有效接口。组可以是任何组 (0 - 255)。

您可以为不存在的组设置调试条件,以便在新组初始化期间捕获调试信息。

您必须启用 standby debug 指令,才能生成任何调试输出。如果未配置任何 standby debug 条件,则会为所有接口上的全部组生成调试输出。如果配置至少一个 standby debug 条件,则会根据所有备用调试条件过滤备用调试输出。

增强的 HSRP 调试

在Cisco IOS版本12.1(0.2)前, HSRP调试有用有限使用,因为信息在从定期Hello消息的噪声丢失了。因此,Cisco IOS 12.1(0.2) 中增加了增强的调试功能。

下表介绍了用于增强调试的命令选项。

命令 说明
debug standby 显示所有 HSRP 错误、事件和数据包。
debug standby terse 显示所有 HSRP 错误、事件和数据包(hello 和通告数据包除外)。
debug standby errors 显示 HSRP 错误。
debug standby events [[all|简洁]|[icmp|协议|冗余|track]] [detail] 显示 HSRP 事件。
debug standby packets [[all|简洁]|[请通告|突然行动|Hello|resign]] [detail] 显示 HSRP 数据包。

您可以使用接口和 HSRP 组条件调试来过滤 debug 输出。要启用接口条件调试,请使用 debug condition interface interface 命令。要启用 HSRP 条件调试,请使用 debug condition standby interface group 命令。

只有在未设置任何 standby debug 条件时,接口调试条件才适用。HSRP调试是在Cisco IOS软件版本12.1(1.3)的进一步增强版,根据被做对HSRP状态表的改进。

此缺陷的 Cisco Bug ID 为 CSCdp57811仅限注册用户)。

这些增强功能会显示 HSRP 状态表事件。在以下输出中,a/、b/、c/ 等项代表 HSRP 有限状态机的事件,这些事件记录在 RFC 2281 中。leavingcisco.com

SB1: Ethernet0/2 Init: a/HSRP enabled
SB1: Ethernet0/2 Active: b/HSRP disabled (interface down)
SB1: Ethernet0/2 Listen: c/Active timer expired (unknown)
SB1: Ethernet0/2 Active: d/Standby timer expired (20.0.0.3)
SB1: Ethernet0/2 Speak: f/Hello rcvd from higher pri Speak router
SB1: Ethernet0/2 Active: g/Hello rcvd from higher pri Active router
SB1: Ethernet0/2 Speak: h/Hello rcvd from lower pri Active router
SB1: Ethernet0/2 Standby: i/Resign rcvd
SB1: Ethernet0/2 Active: j/Coup rcvd from higher pri router
SB1: Ethernet0/2 Standby: k/Hello rcvd from higher pri Standby router
SB1: Ethernet0/2 Standby: l/Hello rcvd from lower pri Standby router
SB1: Ethernet0/2 Active: m/Standby mac address changed
SB1: Ethernet0/2 Active: n/Standby IP address configured

验证

HSRP 身份验证功能包括 HSRP 数据包中所含的共享明文密钥。此功能可防止优先级较低的路由器从优先级较高的路由器学习到备用 IP 地址和备用计时器值。

要配置 HSRP 身份验证字符串,请使用 standby authentication string 命令。

IP 冗余

HSRP 为 IP 路由提供无状态的冗余。HSRP 本身只限于维护自己的状态。它假定每个路由器独立于其他路由器构建和维护自己的路由表。IP 冗余功能提供了一种允许 HSRP 为客户端应用程序提供服务的机制,以便应用程序实现有状态故障切换。

IP 冗余不会为对等应用程序提供交换状态信息的机制。这种机制是为应用程序本身保留的,如果应用程序要提供有状态故障切换,则这种机制很重要。

IP 冗余目前(从 2000 年 1 月开始)仅针对 Mobile IP Home Agent 实现。以下为一个配置示例:

configure terminal
 router mobile
 ip mobile home-agent standby hsrp-group1
!
interface e0/2
 no shutdown
 ip address 20.0.0.1 255.0.0.0
 standby 1 ip 20.0.0.11
 standby 1 name hsrp-group1

注意: 自 Cisco IOS 版本 12.1(3)T 开始,除 standby 关键字外,还接受 redundancy 关键字。在 Cisco IOS 的更高版本中,将逐步淘汰 standby 关键字。正确的命令将会是 ip mobile home-agent redundancy hsrp-group1

IP 冗余的未来用途可能包括:

  • NAT -需要提供冗余网关。

  • IPSEC-需要同步状态信息为了操作,当HSRP是在使用中的。

  • DHCP 服务器 - 在各种路由器中实现的 DHCP 服务器。

  • NBAR、CBAC - 需要为不对称路由镜像防火墙状态。

  • GPRS -需要方式跟踪TCP状态。

  • PIX

SNMP 管理信息库

Cisco IOS 版本 12.0(3.0)T 中增加了 SNMP 管理信息库 (MIB) 支持。HSRP 具有以下两个相关的 MIB:

  • ciscoMgmt 106:用于管理 HSRP 的 MIB 模块

  • ciscoMgmt 107:用于管理 HSRP 的扩展 MIB 模块

在 Cisco IOS 版本 12.0(6.1)T 之前,如果存在网桥组虚拟接口 (BVI),则运行扩展的 HSRP MIB 会导致路由器崩溃。

此缺陷的 Cisco Bug ID 为 CSCdm61257仅限注册用户)。

对多协议标签交换虚拟专用网的 HSRP 支持

Cisco IOS 版本 12.1(3)T 中增加了对多协议标签交换虚拟专用网 (MPLS VPN) 的 HSRP 支持。

当您在两个提供商边缘 (PE) 之间建立以太网连接并且具有以下任意一项时,MPLS VPN 接口上的 HSRP 会很有用:

  • 客户边缘 (CE),具有到 HSRP 虚拟 IP 地址的默认路由。

  • 一个或多个主机,具有配置为默认网关的 HSRP 虚拟 IP 地址。

下面的网络图显示了两个 PE,并且 HSRP 在它们的 VPN 路由/转发 (VRF) 接口之间运行。我们对 CE 进行了配置,将 HSRP 虚拟 IP 地址作为其默认路由。另外,还将 HSRP 配置为跟踪将 PE 连接到提供商网络其余部分的接口。例如,如果 PE1 的接口 E1 发生故障,则会降低 HSRP 优先级,以便 PE2 接管将数据包转发到虚拟 IP/MAC 地址的工作。

http://www.cisco.com/c/dam/en/us/support/docs/ip/hot-standby-router-protocol-hsrp/9234-hsrpguide4a.gif

这些是配置:

路由器 PE1 路由器 PE2
conf terminal
!
ip cef
!
ip vrf vrf1
 rd 100:1
 route-target export 100:1
 route-target import 100:1
!
interface ethernet0
 no shutdown
 ip vrf forwarding vrf1
 ip address 10.2.0.1 255.255.0.0
 standby 1 ip 10.2.0.20
 standby 1 priority 105
 standby 1 preempt delay minimum 10
 standby 1 timers 3 10
 standby 1 track ethernet1 10
 standby 1 track ethernet2 10
conf terminal
!
ip cef
!
ip vrf vrf1
 rd 100:1
 route-target export 100:1
 route-target import 100:1
!
interface ethernet0
 no shutdown
 ip vrf forwarding vrf1
 ip address 10.2.0.2 255.255.0.0
 standby 1 ip 10.2.0.20
 standby 1 priority 100
 standby 1 preempt delay minimum 10
 standby 1 timers 3 10
 standby 1 track ethernet1 10
 standby 1 track ethernet2 10

可以使用以下命令来验证 HSRP 虚拟 IP 地址是否位于正确的 VRF ARP 和 Cisco 快速转发表中:

ed1-pe1# show ip arp vrf vrf1
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.2.0.1                -   00d0.bbd3.bc22  ARPA   Ethernet0/2
Internet  10.2.0.20               -   0000.0c07.ac01  ARPA   Ethernet0/2   

ed1-pe1# show ip cef vrf vrf1
Prefix              Next Hop             Interface
0.0.0.0/0           10.3.0.4             Ethernet0/3
0.0.0.0/32          receive
10.1.0.0/16         10.2.0.1             Ethernet0/2
10.2.0.0/16         attached             Ethernet0/2
10.2.0.1/32         receive
10.2.0.20/32        receive                                                
224.0.0.0/24        receive
255.255.255.255/32  receive

对 ICMP 重定向的 HSRP 支持

HSRP 所依据的概念是,保护子网的 HSRP 对等路由器可以提供对组成网络的所有其他子网的访问。因此,哪个路由器成为活动 HSRP 路由器并没有关系,因为所有路由器都具有到每个子网的路由。

HSRP 使用特殊的虚拟 IP 地址和虚拟 MAC 地址,这些地址在逻辑上与 HSRP 活动路由器相连。在某接口上使用 HSRP 时,会自动对该接口禁用 ICMP 重定向。从 IOS 12.1(3)T 开始,ICMP 重定向功能支持在使用 HSRP 配置的接口上进行 ICMP 重定向。有关详细信息,请参阅对 ICMP 重定向的 HSRP 支持。这是为了防止主机重定向离开 HSRP 虚拟 IP 地址。子网中的两个(或多个)路由器可能没有到网络其余部分的相同连接。即,对于特定目标 IP 地址,其中一个或另一个路由器可能具有指向该地址的更好路径,或者甚至只有一个路由器连接到该地址。

如果第一个路由器知道另一个路由器具有指向特定目标的更好路径,则 ICMP 协议允许第一个路由器重定向终端站,以将特定目标的数据包发送到同一子网中的另一个路由器。与默认网关情况一样,如果针对特定目标的终端站所重定向到的路由器发生故障,则不会将终端站的数据包传送到该目标。在标准 HSRP 中,情况正是如此。因此,我们建议在打开 HSRP 时禁用 ICMP 重定向。

扩展 ICMP 重定向和 HSRP 之间的关系为此问题提供了解决方案,使您可以利用 HSRP 和 ICMP 重定向的优点。在每个子网上运行两个(或多个)HSRP 组,同时至少配置与参与的路由器数目相同的 HSRP 组。配置了优先级,以便每个路由器都至少是一个 HSRP 组的主设备。当一个路由器决定针对特定目标将终端站重定向到其他路由器时,它不会将终端站重定向到其他路由器的 IP 地址,而是会查找该路由器控制的 HSRP 组,并将终端站重定向到对应的虚拟 IP 地址。如果该目标路由器随后发生故障,则 HSRP 会确保另一个路由器接替其工作,并可能将终端站再次重定向到其他虚拟路由器。

HSRP 接口和介质支持

此部分说明HSRP技术支持哪些接口和媒体以及可能的警告 (当在这些媒体上运行HSRP时)。

从 Cisco IOS 软件版本 10.0 开始,在以太网、令牌环和光纤分布式数据接口 (FDDI) 上已可以使用 HSRP 功能。HSRP 还支持快速以太网和 ATM 接口。

虚拟 LAN (VLAN) 允许逻辑网络拓扑覆盖物理交换基础设施,以便 LAN 端口的任意集合都可以组合到自治用户组或感兴趣的社区中。Cisco IOS 版本 11.1 中增加了对 IEEE 802.10 Secure Data Exchange (SDE) 的 HSRP VLAN 支持,而 Cisco IOS 版本 11.3 中增加了对 Cisco 交换机间链路 (ISL) 的 HSRP VLAN 支持。

以太网

低端产品的多个以太网(Lance 和 QUICC)控制器的地址过滤器中只能有一个单播 MAC 地址。在这些平台上,只允许使用单个 HSRP 组,并且当该组变为活动状态时,接口地址会更改为 HSRP 虚拟 MAC 地址。如果您在具有多个此类型接口的路由器上使用 HSRP,则应该使用不同的 HSRP 组号码配置每个接口。

注意: Cisco 7200 路由器也使用 Lance 以太网控制器,但是它支持软件中的 MHSRP。

由于更新 HSRP 的地址过滤器需要花费时间,因此 Cisco 建议 HSRP 以太网接口处理器 (EIP) 的数目不要超过 24 个。拥有 24 个以上的 HSRP EIP 会导致不稳定和 CPU 负载过量。

此缺陷的 Cisco Bug ID 为 CSCdj29595仅限注册用户)。

如果您拥有 24 个以上的 EIP,请尝试使用 Versatile Interface Processors (VIP) 和以太网端口适配器替换这些 EIP。已针对最多 80 个 HSRP 组批准 VIP。您还可以减少 HSRP 组的数量,并增加 HSRP hello 时间和保持时间。

令牌环

在令牌环接口上运行 HSRP 的一个限制是,您不能采用与以太网、FDDI 或 ATM 仿真相同的方式,改编令牌环芯片组上的地址过滤器。令牌环使用功能地址,其中只有一小部分功能地址不会与功能地址空间的其他用途相冲突。

在源路由桥接 (SRB) 环境中运行 HSRP 时,使用功能地址会导致 RIF 混乱。有关详细信息,请参阅 HSRP 编址部分。另外,请尝试配置 use-bia 命令。

802.1Q

Cisco推荐使用Cisco IOS软件版本12.0(8.1)T或以上为在802.1Q的HSRP。

ISL

Cisco IOS 版本 11.2(6)F、11.3、12.X 中提供了 HSRP over ISL。建议使用 12.0(7) 或更高版本,以避免出现 Cisco Bug ID CSCdm68811仅限注册用户)中所述的问题。

FDDI

如果在MAC源中,FDDI端口适配器看到自己的一个MAC地址,那么它可从环剥去帧。如果网络事件导致两个路由器变成活动路由器,则这两个路由器将使用相同的虚拟 MAC 地址发送 HSRP hello 数据包。每个路由器都会通过网络错误地剥离另一个路由器的 hello 数据包,并且两个路由器都保持活动状态。

此缺陷的 Cisco Bug ID 为 CSCdj30049仅限注册用户)。

Cisco IOS 版本 11.2(11.1) 中该问题的解决方案是:处于 FDDI 环境的 HSRP 路由器使用各自的唯一固化 MAC 地址来交换消息和运行 HSRP 协议。为了确保识别的网桥和交换机缓存虚拟 MAC 地址的正确端口条目,活动路由器还会使用 HSRP MAC 地址发送定期刷新消息。

注意: 如果您配置了多个 RIP 网络和 HSRP 组,则在重新加载后,可能会错误地填充 FDDI 接口上的 Cisco 4500 路由器的硬件内容可寻址存储器 (CAM)。此时,唯一的解决方法是清除该接口以恢复 CAM。此缺陷的 Cisco Bug ID 为 CSCdm93122仅限注册用户)。

MAC 刷新

FDDI 环境中的 HSRP 路由器使用各自的唯一固化 MAC 地址来交换消息和运行 HSRP 协议。为了确保识别的网桥和交换机缓存虚拟 MAC 地址的正确端口条目,活动路由器还会使用 HSRP MAC 地址发送定期刷新消息。此缺陷的 Cisco Bug ID 为 CSCdj30049仅限注册用户)。

如果网络中没有交换机或识别的网桥,则可以禁止发送刷新数据包,如下所示:

interface fddi 1/0/0
 ip address 10.1.1.1 255.255.255.0 
 standby ip 10.1.1.250 
 standby mac-refresh 0

网桥组虚拟接口

Cisco IOS 版本 12.0(6.2)T 中增加了对网桥组虚拟接口 (BVI) 的 HSRP 支持。

子接口

子接口上的 HSRP 组的组号码在同一主接口的全部子接口上的所有其他组中必须是唯一的。这是因为子接口不会接收唯一的 SNMP 接口索引。如果在不同子接口上有 2 个号码为 N 的组,则在 MIB 中,子接口 1 上的组 N 和子接口 2 上的组 N 会显示为同一个组。


相关信息


Document ID: 9234