如果路由器或路由器接口(作为默认网关)发生故障,配置该默认网关的主机将与外部网络隔离。交换网络需要一种提供替代默认网关的机制,将两个或多个路由器连接到同一 VLAN。
路由器冗余
防止默认网关出现单点故障的一种方法是实施虚拟路由器。如图所示,要实现此类路由器冗余,应配置多个路由器协同工作,使其像用于 LAN 上主机的单个路由器。通过共享 IP 地址和 MAC 地址,两个或多个路由器可以充当单个虚拟路由器。
冗余协议具有决定哪个路由器应主动转发流量的机制
当活动路由器发生故障时,冗余协议会使备用路由器转换为新的活动路由器。以下是活动路由器出现故障时所执行的步骤:
1.备用路由器停止从转发路由器查看 Hello 消息。
2.备用路由器接替转发路由器的角色。
3.因为新的转发路由器同时接替虚拟路由器的 IPv4 地址和 MAC 地址,所以主机设备的服务不会出现中断。
----------------------------------------------------
热备用路由器协议 (HSRP) - 它是思科专有 FHRP,旨在支持第一跳 IPv4 设备的透明故障切换。HSRP 通过为网络上配置了 IPv4 默认网关地址的 IPv4 主机提供第一跳路由冗余,从而确保较高的网络可用性。HSRP 用于在一组路由器中选择活动设备和备用设备。在一组设备接口中,活动设备用于路由数据包;备用设备用于在活动设备发生故障或在达到预设条件时接替角色。HSRP 备用路由器的功能是监控 HSRP 组的运行状况,并在主用路由器发生故障时快速承担转发数据包的责任。
IPv6 的 HSRP - 思科专有 FHRP,提供 HSRP 的相同功能,但是它在 IPv6 环境中运行。HSRP IPv6 组的虚拟 MAC 地址派生自 HSRP 组编号,其虚拟 IPv6 本地链路地址派生自 HSRP 虚拟 MAC 地址。当 HSRP 组处于活动状态时,会为 HSRP 虚拟 IPv6 本地链路地址发送定期路由器通告 (RA)。当该组变为非活动状态时,最后一个 RA 发送之后会停止发送 RA。
虚拟路由器冗余协议第 2 版 (VRRPv2) - 非专有的选择协议,它将一个或多个虚拟路由器的责任动态分配给 IPv4 LAN 上的 VRRP 路由器。这将使多接入链路上的多台路由器使用相同的虚拟 IPv4 地址。VRRP 路由器与链接到 LAN 的一个或多个其他路由器一起运行 VRRP 协议。在 VRRP 配置中,一台路由器选作主虚拟路由器,而其他路由器在主虚拟路由器发生故障时选作备用路由器。
VRRPv3 - 能够支持 IPv4 和 IPv6 地址。VRRPv3 在多供应商环境中运行,比 VRRPv2 更易扩展。
网关负载均衡协议 (GLBP) - 思科专有 FHRP,能够保护发生故障的路由器或电路中的数据流量,例如 HSRP 和 VRRP,同时也能实现一组冗余路由器之间的负载均衡(也称为负载共享)。
IPv6 的 GLBP - 思科专有 FHRP,提供 GLBP 的相同功能,但是它在 IPv6 环境中运行。IPv6 的 GLBP 能够为 LAN 上配置了单个默认网关的 IPv6 主机自动备用路由器。LAN 上的多个第一跳路由器共同组成一个虚拟第一跳 IPv6 路由器,同时共享 IPv6 数据包转发负载。
ICMP 路由器发现协议 (IRDP) - 在 RFC 1256 中定义,它是传统的 FHRP 解决方案。IPv4 主机可以利用 IRDP 找到提供到其他(非本地)IP 网络的 IPv4 连接。
HSRP 版本
思科 IOS 15 的默认 HSRP 版本为版本 1。HSRP 版本 2 提供以下增强功能:
HSRPv2 扩展了支持组的数量。HSRP 版本 1 支持从 0 到 255 的组号。HSRP 版本 2 支持从 0 到 4095 的组号。
HSRPv1 使用组播地址 224.0.0.2。HSRP 版本 2 使用 IPv4 组播地址 224.0.0.102 或 IPv6 组播地址 FF02::66 发送 hello 数据包。
HSRPv1 使用从 0000.0C07.AC00 到 0000.0C07.ACFF 的虚拟 MAC 地址范围,其中最后两个十六进制数字表示 HSRP 组号。HSRPv2 使用从 0000.0C9F.F000 到 0000.0C9F.FFFF 的 MAC 地址范围用于 IPv4,使用 0005.73A0.0000 到 0005.73A0.0FFF 的 MAC 地址范围用于 IPv6。对于 IPv4 和 IPv6,MAC 地址的最后三个十六进制数字都表示 HSRP 组号。
HSRPv2 添加了 MD5 身份验证支持,这不属于本课程的范围。
注:组号用于更高级的 HSRP 配置,不在本课程的范围内。对我们来说,我们将使用组号 1。
----------------------------------------------
HSRP 优先级和抢占
HSRP 优先级可用于确定活动路由器。具有最高 HSRP 优先级的路由器将成为活动路由器。默认情况下,HSRP 的优先级为 100。如果优先级相等,则选择具有数值最高 IPv4 地址的路由器作为活动路由器。
要将路由器配置为活动路由器,请使用 standby priority 接口命令。HSRP 优先级的范围是从 0 到 255。
HSRP 抢占
默认情况下,在一台路由器成为活动路由器后,即使有另一个具有更高 HSRP 优先级的路由器联机,该路由器也仍保持为活动路由器。
要强制执行新的 HSRP 选择过程,必须使用 standby preempt 接口命令启用抢占。抢占是 HSRP 路由器用于触发重新选择过程的功能。通过启用抢占,联机的具有更高 HSRP 优先级的路由器将承担活动路由器的角色。
R1 的 HSRP 优先级已配置为 150,而 R2 具有默认 HSRP 优先级 100。R1 启用抢占。具有更高优先级的 R1 将成为活动路由器,而 R2 成为备用路由器。由于某种电源故障只影响了 R1,使得活动路由器不再可用,因此备用路由器 R2 接管活动路由器的角色。恢复供电后,R1 重新联机。由于 R1 具有更高优先级,并且启用了抢占,它将强制执行新的选择过程。R1 将重新承担活动路由器的角色,而 R2 会退回到备用路由器的角色。
HSRP 状态和计时器
默认情况下,活动和备用 HSRP 路由器每 3 秒向 HSRP 组组播地址发送一次 hello 数据包。如果 10 秒后没有收到来自活动路由器的 hello 消息,则备用路由器将变为活动状态。您可以降低这些计时器设置以加快故障切换或抢占。但是,为了避免增加 CPU 使用率和不必要的备用状态更改,请不要将 hello 计时器设置为 1 秒以下或将保持计时器设置为 4 秒以下。
HSRP 配置命令
完成以下配置 HSRP 的步骤:
第 1 步:配置 HSRP 版本 2。
第 2 步:配置该组的虚拟 IP 地址。
第 3 步:将所需活动路由器的优先级配置为大于 100。
第 4 步:将活动路由器配置为在活动路由器在备用路由器之后联机的情况下抢占备用路由器。
表中列出了用于完成配置步骤的命令语法。
HSRP 验证
1. show standby
HSRP 调试命令
当路由器发生故障或因管理原因关闭时,HSRP 调试命令允许您查看 HSRP 的操作。如图 1 所示,输入 debug standby ? 命令即可查看可用的 HSRP 调试命令。拓扑如图 2 所示。
如 R2 的图 3 所示,使用 debug standby packets 每 3 秒钟查看一次 hello 数据包的收发情况。HSRP 路由器会监控这些 hello 数据包,如果 10 秒后未从 HSRP 邻居那里收到任何 hello 消息,则会发起状态更改。
根据活动路由器是发生故障还是由管理员手动关闭,HSRP 的行为会有所不同。如图 4 所示,使用 debug standby terse 查看当 R1 断电且 R2 担任 172.16.10.0/24 网络的活动 HSRP 路由器时的 HSRP 事件。