ccna60d/d34-First-Hop-Redundancy-Protocols.md
2020-11-24 16:46:30 +08:00

71 KiB
Raw Blame History

第34天 第一跳冗余协议

First Hop Redundancy Protocols


Gitbookccna60d.xfoss.com

你可以在 https://github.com/gnu4cn/ccna60d 上 fork 本项目,并提交你的修正。

本书结合了学习技巧,包括阅读、复习、背书、测试以及 hands-on 实验。

本书译者用其业余时间完成本书的翻译工作,并将其公布到网上,以方便你对网络技术的学习掌握,为使译者更有动力改进翻译及完成剩下章节,你可以 捐赠译者


第34天任务

  • 阅读今天的课文
  • 回顾昨天的课文
  • 完成今天的实验
  • 阅读ICND2记诵指南
  • subnetting.org上花15分钟

在设计和部署交换网络时,高可用性High Availability, HA是一项不可或缺的考虑。作为思科IOS软件中所提供的一项技术高可用性确保了网络层面的弹性与恢复能力从而提升了IP网络的可用性。所有网段都必须具备弹性和恢复能力以便网络能足够快地从故障中恢复过来且此恢复过程要对用户及网络应用无感知及透明。这里的这些第一跳冗余协议First Hop Redundancy Protocols, FHRPs就提供了在不同的包交换局域网环境下的冗余。

今天将学习以下内容:

  • 热备份路由器协议Hot Standby Router Protocol
  • 虚拟路由器冗余协议Virtual Router Redundancy Protocol
  • 网关负载均衡协议Gateway Load Balancing Protocol

这节课对应了一下ICND2考试大纲要求

  • 认识高可用性FHRP
    • HSRP
    • VRRP
    • GLBP

热备份路由器协议

** Hot Standby Router Protocol **

热备份路由器协议是一项思科公司专有的第一跳冗余协议。HSRP令到两台配置在同样HSRP组中的物理网关使用同样的虚拟网关地址。而位处这两台网关所在的子网中的网络主机就以该虚拟网关IP地址作为其默认网关地址。

当HSRP运作时由主网关the primary gateway转发该HSRP组的那些以虚拟网关IP地址为目的地址的数据包。而加入主网关失效则从网关the secondary gateway就接过主网关角色并转发那些发送到虚拟网关IP地址的数据包。下面的图34.1演示了某网络中HSRP的运作

热备份路由器协议的运作

图 34.1 -- 热备份路由器协议的运作

参阅图 34.1HSRP 是在三层(分发/分布层the Layer 3, Distribution Layer交换机之间的VLAN 10 提供了网关的冗余性。分配给三层交换机 Switch 1 上的交换机虚拟借口the Switch Virtual Interface, SVI的IP地址是10.10.10.2/24, 同时分配给三层交换机Switch 2的交换机虚拟接口的IP地址是10.10.10.3/24。两台交换机都被配置为同一HSRP组的组成部分并共用了该虚拟网关10.10.10.1

Switch 1 已被配置了优先级值105,而 Switch 2 使用的是默认优先级值100。因为三层交换机 Switch 1 有着更高的优先级值,其就被选作主交换机,同时三层交换机 Switch 2 被选作从交换机。在 VLAN 10 上的所有主机,都配置了默认网关地址10.10.10.1。因此,假如 Switch 1 失效,Switch 2 就将接过网关的职责。此过程对这些网络主机完全透明无感知。

真实世界应用 Real-World Implementation

在生产网络中配置各种FHRPs确保子网的活动网关同时也是该特定VLAN的生成树根桥被认为是一种好的做法。比如参阅图 34.1 中的图例,Switch 1在作为VLAN 10的 HSRP 主网关的同时,也应被配置为该 VLAN 的根桥。

如此做法带来的是一个确切的网络a deterministic network从而避免在二层或三层上的次优转发。比如假设 VLAN 10 的根桥是 Switch 2,而 VLAN 10 的主网关又是 Switch 1那么从网络主机发送到默认网关IP地址的数据包就将如下图34.2那样被转发了:

STP拓扑与HSRP拓扑的同步

图 34.2 -- STP拓扑与HSRP拓扑的同步Synchronising the STP Topology with HSRP

在上面的网络中,从 Host 110.10.10.1的数据包将被如下这样转发:

  1. 接入层交换机收到一个来自 Host 1、以虚拟网关IP地址之MAC地址为目标的数据帧。此数据帧实在 VLAN 10 中收到的同时该接入交换机经由其根端口已学习到了虚拟网关的MAC地址。

  2. 因为 VLAN 10 的根桥是 Switch 2,那么到 Switch 1也就是HSRP的主路由器的上行线路也被置于阻塞状态。此时该接入交换机就将该数据帧经由到 Switch 2 的上行链路予以转发。

  3. Switch 2 又经由连接到 Switch 1 的指定端口,转发该数据帧。对于来自 Host 2 的数据帧,会使用上述的相同次优路径。

思科IOS软件当前支持两个版本的HSRP版本1及版本2。后续章节将对它们的相似点和不同点进行说明。

HSRP版本1

默认情况下当在思科IOS软件中开启热备份路由器协议是是开启的版本1。HSRP版本1将可配置的HSRP分组限制在最多255个。HSRP版本1的那些路由器之间的通信是通过往多播组地址Multicast group address224.0.0.2使用UDP端口1985发送报文进行的。下面的图34.3显示了HSRP版本1的报文

HSRP版本1多播组地址

图 34.3 -- HSRP版本1多播组地址

对HSRP数据包格式的深入探讨是超出CCNA考试要求的范围的下图34.4仍然给出了HSRP版本1数据包的信息

HSRP版本1数据包的字段

图 34.4 -- HSRP版本1数据包的字段

在图34.4中要注意版本字段显示的是数值0。这是在版本1开启时该字段的默认值不过仍然要知道这里使用的是HSRP版本1。

HSRP版本2

HSRP版本2使用了新的多播地址224.0.0.102而不是版本1的多播地址224.0.0.2, 来发送 Hello 数据包。不过其所用到的UDP端口号仍然一样1985。同时此新地址在IP数据包及以太网数据帧中都得以编码如下图34.5所示:

HSRP版本2多播组地址

图 34.5 -- HSRP版本2多播组地址

对HSRP版本2数据包格式的深入探讨也是超出CCNA考试要求范围的但要记住HSRP版本2并未使用与版本1相同的数据包格式。

版本2数据包使用了一直类型/长度/值的格式a Type/Length/Value format, TLV format。被HSRP版本1的路由器接收到的版本2数据包会将类型字段映射到HSRP版本1的版本字段而被忽略掉。下图34.6给出了HSRP版本2数据包中所包含的信息

HSRP版本2的数据包字段

图 34.6 -- HSRP版本2的数据包字段

HSRP版本1与版本2的比较

HSRP 版本2包括了一些对版本1的增强。本小节将对这些增强及与版本1的不同进行说明。

尽管HSRP版本1通告了计时器数值但这些数值都是整秒的因为版本1无法通告或学习到毫秒的计时器数值。而版本2就既可以通告也可以学习毫秒的计时器数值了。下面的图34.7与图34.8分别着重表示了HSRP版本1与版本2在计时器字段上的不同

HSRP版本1的计时器字段

图 34.7 -- HSRP版本1的计时器字段

HSRP版本2的计时器字段

图 34.8 -- HSRP版本2的计时器字段

HSRP版本1的分组编号是限制在 0255 的,而版本 2 的分组编号则已拓展到 04095 了。本课程模块后面的HSRP配置示例中将就此差异进行演示。

版本2通过包含一个由物理路由器接口的MAC地址生成、用于对HSRP活动 Hello 报文来源的唯一性识别的6字节识别符字段a 6-byte Identifier field提供了改进的管理与故障排除功能。在版本1中这些 Hello 报文所包含的源MAC地址都是虚拟MAC地址那就是说无法找出是哪台HSRP路由器发送的HSRP Hello 报文。下图34.9给出了HSRP版本2而非版本1数据包中出现的识别符字段

HSRP版本2的识别符字段

图 34.9 -- HSRP版本2中的识别符字段

在HSRP版本1中虚拟IP地址所使用的二层地址将是一个由0000.0C07.ACxx构成的虚拟MAC地址这里的xx就是HSRP分组编号的十六进制值同时是基于相应接口的。而在HSRP版本2中虚拟网关IP地址则是使用了新的MAC地址范围0000.0C9F.F0000000.0C9F.FFFF。下图34.10给出了这些不同该图现实了HSRP Group 1的版本1的虚拟MAC地址同时在图34.11中显示了版本2的虚拟MAC地址也是HSRP Group 1的:

HSRP版本1的虚拟MAC地址格式

图 34.10 -- HSRP版本1的虚拟MAC地址格式

HSRP版本2的虚拟MAC地址格式

图 34.11 -- HSRP版本版本2的虚拟MAC地址格式

HSRP的主网关选举

可通过将默认HSRP优先级值 100, 修改为 1255 之间的任何值对HSRP主网关的选举施加影响。有着最高优先级的路由器将被选举为该HSRP分组的主网关。

而在两个网关都使用默认优先级值时或两个网关上的优先级值被手工配置为相等是那么有着最高IP地址的路由器将被选举为主网关。在HSRP数据帧中HSRP优先级值与该路由器的当前状态比如是主路由器还是备份路由器都有进行传送。下图34.12演示了一台配置了非默认优先级值105, 此优先级令到该路由器被选举为此HSRP组的活动网关的网关的优先级和状态字段

HSRP的优先级与状态字段

图 34.12 -- HSRP的优先级与状态字段

HSRP报文

HSRP路由器之间就下列三种类型的报文进行交换

  • Hello报文
  • Coup报文
  • Resign报文

Hello 报文是经由多播进行交换的这些报文告诉另一网关本地路由器的HSRP状态和优先级数值。Hello 报文还包含了组IDthe Group ID、各种HSRP计时器数值、HSRP版本以及认证信息。前面给出的所有报文都是HSRP的Hello报文。

HSRP Coup报文实在当前备份路由器打算接过该HSRP组的活动网关角色时发出的。这与现实生活中的一次篡位a coup détat类似。

而HSRP的 Resign 报文,则是在活动路由器即将关闭,以及在一台有着更高优先级的网关发出一个 Hello 报文或 Coup 报文时发出的。也就是说,在活动网关交出其作为主网关角色时,发出此报文。

HSRP的抢占

HSRP Preemption

在已有一台网关被选举为活动网关的情况下作为HSRP组一部分的另一网关被重新配置了一个更高的HSRP优先级数值时当前活动网关会保留主转发角色。这是HSRP的默认行为。

而为了在某HSRP组中已有一个主网关的情形下令到具有更高优先级的网关接过活动网关功能就必须要将该路由器配置上抢占功能。这样做就允许该网关发起一次抢占并接过该HSRP组的活动网关角色。HSRP抢占在接着的配置示例中有演示。

注意:抢占并不意味着生成树拓扑也会发生改变(译者注:这将导致次优路径)。

HSRP的各种状态

与开放最短路径有限Open Shortest Path First, OSPF的方式类似当在某个接口上开启了HSRP时该网关接口会经历以下一系列状态的改变

  1. 关闭( Disabled

  2. 初始化( Init

  3. 侦听( Listen

  4. Speak

  5. 备份( Standby

  6. 活动( Active

注意这些接口状态过度并无设置时间数值There are no set time values for these interface transitions

在关闭及初始化状态中该网关处于尚未准备妥当或是无法参与到HSRP组情形可能的原因在于相关接口没有开启。

而侦听状态是适用于备份网关的。仅有备份网关才会监听来自活动网关的 Hello 报文。假如备份网关在 10 秒内未能收到 Hello 报文,其就假定活动网关已经宕机,并接过活动网关角色。如有在统一网段上存在其它网关,这些网关也会侦听 Hello 报文且如果它们有着下一最高优先级值或IP地址那么它们就会被选举为该分组的活动网关。

Speak 阶段,备份网关与活动网关进行报文交换。在此阶段完成后,主网关就过渡到活动状态,同时备份网关过渡到备份状态。备份状态表明该网关已准备好在主网关阵亡时接过活动网关角色,同时活动状态表明该网关已准备好进行数据包的转发。

以下输出给出了在一台刚开启HSRP的网关上debug standby命令中显示的状态变化:

R2#debug standby
HSRP debugging is on
R2#
R2#conf t
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line.
End with CNTL/Z.
R2(config)#logging con
R2(config)#int f0/0
R2(config-if)#stand 1 ip 192.168.1.254
R2(config-if)#
*Mar 1 01:21:55.471: HSRP: Fa0/0 API 192.168.1.254 is not an HSRP address
*Mar 1 01:21:55.471: HSRP: Fa0/0 Grp 1 Disabled -> Init
*Mar 1 01:21:55.471: HSRP: Fa0/0 Grp 1 Redundancy “hsrp-Fa0/0-1” state Disabled -> Init
*Mar 1 01:22:05.475: HSRP: Fa0/0 Interface up
...
[Truncated Output]
...
*Mar 1 01:22:06.477: HSRP: Fa0/0 Interface min delay expired
*Mar 1 01:22:06.477: HSRP: Fa0/0 Grp 1 Init: a/HSRP enabled
*Mar 1 01:22:06.477: HSRP: Fa0/0 Grp 1 Init -> Listen
*Mar 1 01:22:06.477: HSRP: Fa0/0 Redirect adv out, Passive, active 0 passive 1
...
[Truncated Output]
...
*Mar 1 01:22:16.477: HSRP: Fa0/0 Grp 1 Listen: d/Standby timer expired (unknown)
*Mar 1 01:22:16.477: HSRP: Fa0/0 Grp 1 Listen -> Speak
...
[Truncated Output]
...
*Mar 1 01:22:26.478: HSRP: Fa0/0 Grp 1 Standby router is local
*Mar 1 01:22:26.478: HSRP: Fa0/0 Grp 1 Speak -> Standby
*Mar 1 01:22:26.478: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -> Standby
*Mar 1 01:22:26.478: HSRP: Fa0/0 Grp 1 Redundancy “hsrp-Fa0/0-1” state Speak -> Standby

HSRP地址分配

HSRP Addressing

在本课程模块的早期已了解到HSRP版本1中用于虚拟IP地址的二层地址将是一个由000.0C07.ACxx构成的虚拟MAC地址其中的xx就是该HSRP组的编号且是基于相应接口的。而在HSRP版本2中使用了一个新的MAC地址范围0000.0C9F.F0000000.0C9F.FFFF, 作为虚拟网关IP地址的虚拟MAC地址。

而在某些情况下我们并不期望使用这些默认的地址范围。比如在连接到一个配置了端口安全的交换机端口的某个路由器接口上配置了好几个HSRP组时。在此情况下该路由器就应对不同HSRP组使用不同的MAC地址那么结果就是这些MAC地址都需要满足accommodate交换机端口的安全配置。该项配置在每次将HSRP组加入到路由器接口时都必须进行修改否则就会触发端口安全冲突otherwise, a port security violation would occur

为解决此问题思科IOS软件允许管理员将HSRP配置为使用其所配置上的物理接口的实际MAC地址。那么结果就是一个单独的MAC地址为所有HSRP组所使用也就是活动网关所使用的MAC地址且在每次往连接到这些交换机上的路由器添加HSRP组的时候无需对端口安全配置进行修改。此操作是通过使用接口配置命令standby use-bia命令完成的。下面的输出演示了命令show standby该命令给出了一个配置了两个不同HSRP组的网关接口的信息

Gateway-1#show standby
FastEthernet0/0 - Group 1
    State is Active
        8 state changes, last state change 00:13:07
    Virtual IP address is 192.168.1.254
    Active virtual MAC address is 0000.0c07.ac01
        Local virtual MAC address is 0000.0c07.ac01 (v1 default)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 2.002 secs
    Preemption disabled
    Active router is local
    Standby router is 192.168.1.2, priority 100 (expires in 9.019 sec)
    Priority 105 (configured 105)
    IP redundancy name is “hsrp-Fa0/0-1” (default)
FastEthernet0/0 - Group 2
    State is Active
        2 state changes, last state change 00:09:45
    Virtual IP address is 172.16.1.254
    Active virtual MAC address is 0000.0c07.ac02
        Local virtual MAC address is 0000.0c07.ac02 (v1 default)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 2.423 secs
    Preemption disabled
    Active router is local

在上面的输出中由于是默认的HSRP版本那么HSRP Group 1的虚拟MAC地址就是0000.0c07.ac01同时HSRP组2的就是0000.0c07.ac02。这就意味着连接此网关的交换机端口要学习三个不同地址:物理接口Fastethernet0/0的实际或出厂地址、HSRP Group 1的虚拟MAC地址以及HSRP组2的虚拟MAC地址。

下面的输出演示了如何将HSRP配置为使用该网关接口的实际MAC地址作为不同HSRP分组的虚拟MAC地址

Gateway-1#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Gateway-1(config)#int f0/0
Gateway-1(config-if)#standby use-bia
Gateway-1(config-if)#exit

基于上面的输出中的配置,命令show standby会反应出HSRP组的新MAC地址如下面的输出所示:

Gateway-1#show standby
FastEthernet0/0 - Group 1
    State is Active
        8 state changes, last state change 00:13:07
    Virtual IP address is 192.168.1.254
    Active virtual MAC address is 0013.1986.0a20
        Local virtual MAC address is 0013.1986.0a20 (bia)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 2.756 secs
    Preemption disabled
    Active router is local
    Standby router is 192.168.1.2, priority 100 (expires in 9.019 sec)
    Priority 105 (configured 105)
    IP redundancy name is “hsrp-Fa0/0-1” (default)
FastEthernet0/0 - Group 2
    State is Active
        2 state changes, last state change 00:09:45
    Virtual IP address is 172.16.1.254
    Active virtual MAC address is 0013.1986.0a20
        Local virtual MAC address is 0013.1986.0a20 (bia)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 0.188 secs
    Preemption disabled
    Active router is local
    Standby router is unknown
    Priority 105 (configured 105)
    IP redundancy name is "hsrp-Fa0/0-2" (default)

那么这里两个HSRP组所用的MAC地址都是0013.1986.0a20就是分配给物理网关接口的MAC地址了。这在下面的输出中有证实

Gateway-1#show interface FastEthernet0/0
FastEthernet0/0 is up, line protocol is up
    Hardware is AmdFE, address is 0013.1986.0a20 (bia 0013.1986.0a20)
    Internet address is 192.168.1.1/24
    MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
        reliability 255/255, txload 1/255, rxload 1/255
    Encapsulation ARPA, loopback not set
...
[Truncated Output]

注意除了将HSRP配置为使用出厂地址the burnt-in address, BIA, 管理员亦可经由接口配置命令standby [number] mac-address [mac]静态指定虚拟网关要使用的MAC地址。但一般不会这样做因为这可能会导致交换网络中的重复MAC地址这就会引起严重的网络故障甚至造成网络中断。

HSRP的明文认证

HSRP Plain Text Authentication

HSRP报文默认以明文密钥字串(the plain text key string)cisco发送以此作为一种对HSRP成员HSRP peers进行认证的简单方式。如报文中的密钥字串与HSRP成员路由器上所配置的密钥匹配报文就被接受。否则HSRP就忽略那些未认证的报文。

明文密钥提供了最低的安全性因为使用诸如Wireshark或Ethereal这样的简单抓包软件它们就可被抓包捕获。下图34.13显示了HSRP报文中所使用的默认命令认证密钥

查看默认HSRP明文密钥

图 34.13 -- 查看HSRP默认明文密钥

因为明文认证提供很低的安全性那么下面介绍的消息摘要5message digest 5, MD5, 就是推荐的HSRP认证方式了。

HSRP MD5 认证

这并非CCNA题目放在这里是为了完整性及那些要实际从事网络方面工作的人的考虑。

消息摘要5认证通过生成一个多播HSRP协议数据包的HSRP部分的摘要提供了HSRP比起明文认证更强的安全性。在采行了MD5认证后就允许各个HSRP组成员使用一个密钥来生成一个加密了的MD5散列值并作为发出数据包的一部分。而接收到的HSRP数据包也会产生一个加密的散列值如果接收到的数据包的加密散列值与MD5生成值不匹配接收路由器就会忽略此数据包。

既可以通过在配置使用一个密钥字串直接提供MD5散列值的密钥也可以通过密钥链a key chain来提供到。本课程模块稍后会对这两种方式进行讲解。在应用了明文或是MD5认证时在出现以下情形之一后网关都会拒绝那些HSRP数据包

  • 路由器与收到的数据包认证方案不一致时
  • 路由器与收到的数据包的MD5摘要不同时
  • 路由器与收到的数据包的明文认证字串不一致时

HSRP接口跟踪

HSRP Interface Tracking

HSRP允许管理员对当前活动网关上的接口状态进行追踪所以在有接口失效时网关就会将其优先级降低一个特定数值默认为 10, 这样就可以让其它网关接过HSRP组的活动网关角色。此概念在下图34.14中进行了演示:

HSRP接口追踪

图 34.14 -- HSRP 接口追踪

参考图34.14, 对于 VLAN 150, 已在 Switch 1Switch 2 上开启了HSRP。而基于当前的优先级配置Switch 1 有着优先级数值 105, 已被选举为该VLAN的主交换机。Switch 1Switch 2 都通过其各自的Gigabitethernet5/1接口,分别连接到两台路由器。这里假定这两台与其它外部网络相连,比如互联网。

在没有HSRP接口跟踪功能时如果 Switch 1R1 之间的Gigabitethernet5/1接口失效,那么 Switch 1 仍将保持其主网关状态。此时就必须将所有接收到的、比如前往互联网的数据包,使用 Switch 1 本身与 Switch 2 之间的连接,转发到 Switch 2 上。这些数据包将会通过 R2 转发到它们本来的目的地。这就造成了网络中的次优流量路径。

HSRP接口跟踪功能令到管理员可将HSRP配置为追踪某个接口的状态并据此将活动网关的优先级降低一个默认 10 的值亦可指定该降低值。同样参考图34.14, 如果在 Switch 1 上采用默认值配置了HSRP接口跟踪那么就令到该交换机对接口Gigabitethernet5/1的状态进行跟踪,在那个接口失效后,Switch 1 就会将其该HSRP组的优先级降低 10, 得到一个 95 的优先级。

又假设 Switch 2 上配置了抢占( preempt ),在此情形下是强制性要配置的,那么它就会注意到自己有着更高的优先级(10095, 就会执行一次篡位结果该HSRP组的活动网关角色。

真实场景应用 在生产网络中思科Catalyst交换机还支持增强对象跟踪Enhanced Object Tracking, EOT功能可用于所有FHRP也就是HSRP、VRRP及GLBP上。增强对象跟踪功能令到管理员可以将交换机配置为对以下参数进行跟踪

  • 某个接口的IP路由状态The IP routing state of an interface
  • IP路由的可达性IP route reachablity
  • IP路由度量值阈值The threshold of IP route metrics
  • IP SLA 的运作IP SLA operations(Service-Level Agreements, 服务等级协议)

对于这些FHRPs比如HSRP可被配置为对这些增强对象进行跟踪以令到在部署FHRP失效情形时具有更大的灵活性。比如在采用EOT时可将活动HSRP路由器配置为在网络或主机路由不可达时也就是出现在路由表中降低其优先级某个数值。EOT功能是超出了CCNA考试要求的在配置示例中不会涉及。

HSRP的负载均衡

HSRP允许管理员在一些物理接口上配置多个HSRP组以实现负载均衡。默认情况下在两台网关之间配置HSRP时在任何时期都只有一台网关对那个组的流量进行转发。这样就导致了备份网关链路上带宽的浪费。这在下图34.15中进行了演示:

不具备HSRP负载均衡的一个网络

图 34.15 -- 不具备HSRP负载均衡的一个网络

在图34.15中,在 Switch 1Switch 2 上配置了两个HSRP组。Switch 1 已被配置为两个组的活动(主)网关--这是基于其有着较高的优先级值。Switch 1Switch 2 都相应的连接到了路由器 R1R2 上。这两台路由器都通过各自的 T3/E3 线路,连接到互联网。因为 Switch 1 是两个HSRP组的活动网关它就会转发两个组的流量直到其失效后Switch 2 才会结果活动(主)网关的角色。

尽管这样做满足了网络的冗余需求,但也造成 R2 上昂贵的 T3/E3 线路的空闲,除非在 Switch 2 成为活动网关并开始经由它来转发流量。自然,这就出现了一定数量带宽的浪费。

而通过配置多个HSRP组每个组使用不同的活动网关管理员就可以有效的防止不必要的资源浪费并在 Switch 1Switch 2 之间实现负载均衡。这在下图34.16中进行了演示:

一个采用HSRP实现负载均衡的网络

图 34.16 -- 一个采用HSRP实现负载均衡的网络

这里通过将 Switch 1 配置为HSRP Group 1的活动网关,将 Switch 2 配置为HSRP组 2 的活动网关,管理员就令到来自两个不同组的流量,在 Switch 1Switch 2 之间实现了负载均衡,并最终通过这两条专用 T3/E3 广域网连接。同时每台交换机又互为对方HSRP组的备份。比如在 Switch 2 失效时,Switch 1 就将接过HSRP组 2 活动网关的角色,相反亦然。

真实世界的部署

在生产网络中需要记住多个HSRP组的建立会造成网关上CPU使用率的上升以及有HSRP报文交换所造成的网络带宽占用的增加。诸如Catalyst 4500及6500系列的思科Catalyst交换机提供了对HSRP客户组HSRP client groups的支持。

在前面的小节中了解到HSRP允许在单个的网关接口上配置多个HSRP组。而在网关接口上允许许多不同HSRP组的主要问题就是这样做会导致网关上CPU使用率的上升并也因为HSRP每隔3秒的Hello数据包而潜在可能增加网络流量。

为解决这个潜在的问题HSRP就还允许客户或从组的配置the configuration of client or slave groups。这些组是一些简单的HSRP组它们跟随某个主HSRP组a master HSRP group而不参与HSRP选举。这些客户或从组跟随主组的允许与状态因此它们本身无需周期性地交换Hello数据包。这样在运用多个HSRP组时降低CPU与网络的使用。

但是为了刷新那些交换机的虚拟MAC地址这些客户组仍然要发送周期性的报文。不过与主组的协议选举报文相比这些刷新报文是以低得多的频率发送的。尽管HSRP客户组的配置是超出CCNA考试要求的下面的输出还是演示两个客户组的配置这两个客户组被配置为跟随主组HSRP Group 1, 该主组又被命名为SWITCH-HSRP组:

Gateway-1(config)#interface vlan100
Gateway-1(config-if)#ip address 192.168.1.1 255.255.255.0
Gateway-1(config-if)#ip address 172.16.31.1 255.255.255.0 secondary
Gateway-1(config-if)#ip address 10.100.10.1 255.255.255.0 secondary
Gateway-1(config-if)#standby 1 ip 192.168.1.254
Gateway-1(config-if)#standby 1 name SWITCH-HSRP
Gateway-1(config-if)#standby 2 ip 172.16.31.254
Gateway-1(config-if)#standby 2 follow SWITCH-HSRP
Gateway-1(config-if)#standby 3 ip 10.100.10.254
Gateway-1(config-if)#standby 3 follow SWITCH-HSRP
Gateway-1(config-if)#exit

在上面的输出配置中,Group 1 被配置为了主HSRP组 同时Group 2Group 3被配置为了客户组或叫做从组。

网关上HSRP的配置

在网关上配置HSRP需要完成以下步骤

  1. 使用接口配置命令ip address [address] [mask] [secondary]配置网关接口的IP地址及掩码。

  2. 通过接口配置命令standby [number] ip [virtual address] [secondary], 在网关接口上建立一个HSRP组以及给该HSRP组指派虚拟IP地址。关键词keyword[secondary]将该IP地址指定为指定组的次网关IP地址。

  3. 这里作为可选项,使用接口配置命令standby [number] name [name], 为HSRP组指派一个名称。

  4. 作为可选项,如打算对活动网关的选举施加影响,就要经由接口配置命令standby [number] priority [value],对组优先级进行配置。

本章中的后续HSRP配置输出将建立在下图34.17中的网络:

HSRP示例配置的拓扑

图 34.17 -- HSRP示例配置的拓扑

注意:这里假定在VTP-Server-1VTP-Server-2之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN172 ping通。为简短起见,这些配置已在配置示例中省略。

VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#ip address 172.16.31.1 255.255.255.0
VTP-Server-1(config-if)#standby 1 ip 172.16.31.254
VTP-Server-1(config-if)#standby 1 priority 105
VTP-Server-1(config-if)#exit
VTP-Server-2(config)#interface vlan172
VTP-Server-2(config-if)#ip address 172.16.31.2 255.255.255.0
VTP-Server-2(config-if)#standby 1 ip 172.16.31.254
VTP-Server-2(config-if)#exit

注意:这里应用到VTP-Server-2的HSRP配置并没有手动指派优先级数值。默认情况下HSRP将使用一个 100 的优先级值,以允许带有优先级值 105VTP-Server-1在选举中胜选从而被选举为该HSRP组的主网关。

在配置应用后,就可使用show standby [interface brief]命令对HSRP的配置进行验证。下面的输出对show standby brief命令进行了展示:

VTP-Server-1#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp      Pri P State   Active  Standby         Virtual IP
Vl172       1        105   Active  local   172.16.31.2     172.16.31.254
VTP-Server-2#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp      Pri P State   Active  Standby         Virtual IP
Vl172       1        100   Standby local   172.16.31.1     172.16.31.254

基于此种配置,只有在VTP-Server-1失效时,VTP-Server-2才会成为活动网关。此外因为没有配置抢占preemption那么即使在VTP-Server-1重新上线时就算在该HSRP组中其比起VTP-Server-2有着更高的优先级,它仍然无法强制性地接过活动网关角色。

HSRP抢占的配置

Configuring HSRP Preemption

抢占特性令到某台网关在本身比当前活动网关有着更高优先级时,强制性地接过活动网关的角色。使用命令standby [number] preempt命令来配置HSRP抢占特性。下面的输出演示了在VTP-Server-1上的此项配置:

VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#standby 1 preempt

这里同样使用命令show standby [interface [name] |brief], 来验证在某个网关上已有配置抢占特性。是通过下面的show standby brief命令输出中的“P”字样演示的

VTP-Server-1#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp Pri  P State   Active  Standby         Virtual IP
Vl172       1   105  P Active  local   172.16.31.2     172.16.31.254

有了这个修改,在因VTP-Server-1失效而导致VTP-Server-2接过VLAN172的活动网关角色时一旦VTP-Server-1再度上线其就将强制性再度接手那个角色。在配置抢占特性时思科IOS软件允许指定在交换机抢占及强制重新获得活动网关角色之前的时间间隔。

默认下抢占是立即发生的。但可使用接口配置命令standby [number] preempt delay [minimum|reload|sync]对此时间间隔进行修改。关键字[minimum]用于指定在抢占前等待的最短时间。下面的输出展示了如何配置在抢占前等待30秒钟

VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#standby 1 preempt delay minimum 30

此配置可使用命令show standby [interface]进行验证。下面的输出对此进行了演示:

VTP-Server-1#show standby vlan172
Vlan172 - Group 1
    State is Active
        5 state changes, last state change 00:00:32
Virtual IP address is 172.16.31.254
Active virtual MAC address is 0000.0c07.ac01
    Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.636 secs
Preemption enabled, delay min 30 secs
Active router is local
Standby router is 172.16.31.2, priority 100 (expires in 8.629 sec)
Priority 105 (configured 105)
IP redundancy name is “hsrp-Vl172-1” (default)

而关键字[reload]用于指定网关在其重启后需要等待的时间the [reload] keyword is used to specify the amount of time the gateway should wait after it initiates following a reload。关键字[sync]是与IP冗余客户端配合使用的。此配置超出了CCNA考试要求但在生产环境中是十分有用的因为在出现某个正在被跟踪的抖动接口或类似情况下此配置可以阻止不必要的角色切换this configuration is beyond the scope of the CCNA exam requirements but is very useful in production environments because it prevents an unnecessary change of roles in the case of a flapping interface that is being tracked, or similar activity

配置HSRP接口跟踪

HSRP接口跟踪特性令到管理员可以将HSRP配置为追踪接口状态从而将当前优先级降低一个默认数值10或指定数值以允许另一网关接过指定HSRP组的主网关角色。

在下面的输出中,VTP-Server-1被配置为对连接到假想WAN路由器的接口Gigabitethernet5/1的状态,进行跟踪。在那个接口状态转变为down该网关就将其优先级值降低10默认的:

VTP-Server-1#show standby vlan172
Vlan172 - Group 1
    State is Active
        5 state changes, last state change 00:33:22
    Virtual IP address is 172.16.31.254
    Active virtual MAC address is 0000.0c07.ac01
        Local virtual MAC address is 0000.0c07.ac01 (v1 default)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 1.085 secs
    Preemption enabled
    Active router is local
    Standby router is 172.16.31.2, priority 100 (expires in 7.616 sec)
    Priority 105 (configured 105)
    IP redundancy name is “hsrp-Vl172-1” (default)
    Priority tracking 1 interfaces or objects, 1 up:
    Interface or object          Decrement  State
    GigabitEthernet5/1           10         Up

而要将该网关降低值配置为比如50, 就可以执行命令standby [name] track [interface] [decrement value], 如下面的输出所示:

VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#standby 1 track GigabitEthernet5/1 50

此项配置可使用命令show standby [interface]进行验证。下面对此进行了演示:

VTP-Server-1#show standby vlan172
Vlan172 - Group 1
    State is Active
        5 state changes, last state change 00:33:22
    Virtual IP address is 172.16.31.254
    Active virtual MAC address is 0000.0c07.ac01
    Local virtual MAC address is 0000.0c07.ac01 (v1 default)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 1.085 secs
    Preemption enabled
    Active router is local
    Standby router is 172.16.31.2, priority 100 (expires in 7.616 sec)
    Priority 105 (configured 105)
    IP redundancy name is “hsrp-Vl172-1” (default)
    Priority tracking 1 interfaces or objects, 1 up:
    Interface or object          Decrement  State
    GigabitEthernet5/1           50         Up

配置HSRP的版本

如同在本课程模块先前指出的那样默认当HSRP开启时是启用的版本1。但可通过接口配置命令standby version [1|2]来手动开启HSRP版本2。下面的输出演示了HSRP版本2的配置

VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#standby version 2

使用命令show standby [interface],可对此配置进行验证。下面的输出对此进行了演示:

VTP-Server-1#show standby vlan172
Vlan172 - Group 1 (version 2)
    State is Active
        5 state changes, last state change 00:43:42
    Virtual IP address is 172.16.31.254
    Active virtual MAC address is 0000.0c9f.f001
        Local virtual MAC address is 0000.0c9f.f001 (v2 default)
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 2.419 secs
    Preemption enabled
    Active router is local
    Standby router is 172.16.31.2, priority 100 (expires in 4.402 sec)
    Priority 105 (configured 105)
    IP redundancy name is “hsrp-Vl172-1” (default)

而HSRP的开启就自动将HSRP所使用的MAC地址范围0000.0C07.ACxx,改变为0000.0C9F。F0000000.0C9F.FFFF。因此务必要记住这将导致生产网络中的一些数据包丢失因为网络中的设备必须要掌握到网关的新MAC地址。这类导致包丢失的变动都推荐在维护窗口或几乎的断网窗口来进行。

虚拟路由器冗余协议

Virtual Router Redundancy Protocol

虚拟路由器冗余协议Virtual Router Redundancy Protocol, VRRP是一个动态地将一个或多个网关的职责指派给LAN上的VRRP路由器的网关选举协议a gateway election protocol, 其令到在诸如以太网这样的某个多路访问网段a Multi-Access segment上的数台路由器能够使用同一个虚拟IP地址作为它们的默认网关。

VRRP以与HSRP类似的方式运作但与HSRP不同VRRP是一个定义在RFC 2338中的开放标准RFC 2338 在RFC 3768中被废弃。VRRP将通告发送到多播目的地址224.0.0.18VRRP, 使用的是IP协议编号112。在数据链路层通告是从主虚拟路由器the master virtual router的MAC地址00-00-5e-00-01xx发出的,这里的"xx"表示了两位十六进制的组编号。这在下图34.18中进行了演示:

VRRP的多播地址

图 34.18 -- VRRP的多播地址VRRP Multicast Addresses

注意:这里的协议编号是十六进制形式的。而十六进制值0x70就等于是进制的112。与此类似数据链路层目的地址01-00-5e-00-00-12中的十六进制值12就是十进制值18也就是224.0.0.18了。如你仍对这些数值是如何转换的没有掌握那么本CCNA手册的十六进制到十进制转换在网上是很详细的。

真是世界的部署

与HSRP不同VRRP并没有允许网关使用出厂地址Burnt-in Address, BIA或静态配置的地址作为VRRP组的MAC地址的选项。因此在带有多于VRRP组的生产网络中对在某个特定接口上应用多个MAC地址的理解掌握尤其是当部署了诸如端口安全这样的特性时 是重要的。记得要着重于整体上;否则就会发现,尽管有正确配置,一些特性或协议也不会如预期那样跑起来。

一个VRRP网关是在一台或多台连接到LAN的路由器上配置用于运行VRRP协议的A VRRP gateway is configured to run the VRRP protocol in conjunction with one or more other routers attached to a LAN。在VRRP配置中一台网关被选举为主虚拟路由器the master router, 而其它网关则扮演在主虚拟路由器失效时的备份虚拟路由器。下图34.19对此概念进行了演示:

VRRP的基本运作

图 34.19 -- VRRP的基本运作

VRRP的多虚拟路由器支持特性

可在某个接口上配置多大255个的虚拟路由器。而某个路由器接口实际能支持的虚拟路由器数目由以下因素决定

  • 路由器的处理能力Router processing capability

  • 路由器的内存容量Router memory capability

  • 路由器接口对多MAC地址的支持情况Router interface support of multiple MAC addresses

VRRP的主路由器选举

VRRP Master Router Election

VRRP默认使用优先级值来决定哪台路由器将被选举为主虚拟路由器。默认的VRRP优先级值为100; 但此数值可被手工修改为一个1到254之间的数值。而如多台网关有着相同的优先级数值那么有着最高IP地址的网关将被选举为主虚拟路由器同时有着较低IP地址的那台就成为备份虚拟路由器。

加入有多于两台的路由器被配置为VRRP组的组成部分那么备份虚拟路由器中有着第二高优先级的就会在当前主虚拟路由器失效或不可用时被选举为主虚拟路由器。又假如那些备份虚拟路由器又有着相同的优先级那么这些备份路由器中有着最高IP地址的那台将被选举为主路由器。下图34.20对此概念进行了演示:

VRRP主虚拟路由器及备份虚拟路由器的选举

图 34.20 -- VRRP主虚拟路由器及备份虚拟路由器的选举

图34.20演示了一个采用了VRRP作为网关冗余的网络。主机1与主机2都配置了默认192.168.1.254作为默认网关,此网关就是配置在交换机VRRP-1VRRP-2VRRP-3给VRRP group 192的虚拟IP地址。

交换机VRRP-1已被配置了优先级值110, VRRP-2的是105, VRRP-3的是默认VRRP优先级100。基于此种配置VRRP-1就被选举为主虚拟路由器,同时VRRP-2VRRP-3就成为备份虚拟路由器。

VRRP-1失效时,因为VRRP-2有着比起VRRP-3更高的优先级,所以它就成为主虚拟路由器。但如果VRRP-2VRRP-3有着相同优先级的话,VRRP-3将被选举为主虚拟路由器因为它有着更高的IP地址。

VRRP的抢占

与HSRP不同VRRP的抢占特性是默认开启的因此无需管理员为开启此功能而进行显式的配置。但此功能可经由使用接口配置命令no vrrp [number] preempt进行关闭。

VRRP的负载均衡

VRRP允许以与HSRP类似的方式实现负载均衡。比如在一个于某台网关上配置了多个虚拟路由器VRRP组的网络中一个接口可作为某个虚拟路由器VRRP组的主接口虚拟路由器同时又可作为另一或更多虚拟路由器VRRP组的备份虚拟路由器。下图34.21对此进行了演示:

VRRP的负载均衡

图 34.21 -- VRRP的负载均衡

VRRP的版本

默认情况下当在某台运行思科IOS软件的网关上配置了VRRP时开启的是VRRP版本2见下图。版本2正是默认的以及当前的VRRP版本。这里并不能如同在HSRP中那样改变版本因为并没有VRRP版本1的标准。

注意: 在本手册编写过程中为IPv4与IPv6定义VRRP的版本3正处于草案阶段且并未标准化。

VRRP版本2的数据包

图 34.22 -- VRRP版本2的数据包

VRRP的各种通告

VRRP Advertisements

主虚拟路由器将通告发送给同一VRRP组中的其它VRRP路由器。通告就主虚拟路由器的优先级与状态进行通信。VRRP的通告是以IP数据包进行封装的并被发送到在图34.18中所演示的那个指派给该VRRP组的IPv4多播地址。通告默认以每秒的频率发送不过此时间间隔是可被用户配置的因而可以改变。同时备份虚拟路由器收听主虚拟路由器通告的间隔也可进行配置。

在网关上配置VRRP

在网关上配置VRRP需要以下步骤

  1. 使用接口配置命令ip address [address] [mask] [secondary]给网关接口配置正确的IP地址与子网掩码。

  2. 通过接口配置命令vrrp [number] ip [virtual address] [secondary]在该网关接口上建立一个VRRP组并为其指派一个虚拟IP地址。关键字[secondary]将该虚拟IP地址配置为指定VRRP组的次网关地址。

  3. 作为可选项,使用接口配置命令vrrp [number] description [name], 为该VRRP组指派一个描述性名称。

  4. 作为可选项,在打算对主虚拟路由器及备份虚拟路由器的选举进行控制时,就要经由接口配置命令vrrp [number] priority [value], 对该组的优先级进行配置。

本小节的VRRP配置输出将基于下图34.23的网络:

VRRP配置示例的拓扑

图 34.23 -- VRRP配置示例的拓扑

注意:这里假定在VTP-Server-1VTP-Server-2之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN192 ping通。为简短起见,这些配置已在配置示例中省略。

VTP-Server-1(config)#interface vlan192
VTP-Server-1(config-if)#ip address 192.168.1.1 255.255.255.0
VTP-Server-1(config-if)#vrrp 1 ip 192.168.1.254
VTP-Server-1(config-if)#vrrp 1 priority 105
VTP-Server-1(config-if)#vrrp 1 description SWITCH-VRRP-Example
VTP-Server-1(config-if)#exit
VTP-Server-2(config)#interface vlan192
VTP-Server-2(config-if)#ip address 192.168.1.2 255.255.255.0
VTP-Server-2(config-if)#vrrp 1 ip 192.168.1.254
VTP-Server-2(config-if)#vrrp 1 description SWITCH-VRRP-Example
VTP-Server-2(config-if)#exit

注意:这里没有为VTP-Server-2上所应用的VRRP配置手动指派优先级数值。那么默认情况下VRRP将使用100的优先级数值这就令到带有优先级数值105的VTP-Server-1在选举中获胜而被选举为该VRRP组的主虚拟路由器。此外这里还为该VRRP组配置了一个描述信息。

下面还使用命令show vrrp [all|brief|interface], 对此配置进行了验证。关键字[all]展示了有关该VRRP配置的所有信息包括了组的状态、描述信息在配置了的情况下、本地网关优先级以及主虚拟路由器和其它信息。关键字[brief]则会列印出该VRRP配置的摘要信息。而[interface]关键字会列印出特定接口的VRRP信息。下面的输出展示了show vrrp all命令的输出:

VTP-Server-1#show vrrp all
Vlan192 - Group 1
SWITCH-VRRP-Example
    State is Master
    Virtual IP address is 192.168.1.254
    Virtual MAC address is 0000.5e00.0101
    Advertisement interval is 1.000 sec
    Preemption enabled
    Priority is 105
    Master Router is 192.168.1.1 (local), priority is 105
    Master Advertisement interval is 1.000 sec
    Master Down interval is 3.589 sec
VTP-Server-2#show vrrp all
Vlan192 - Group 1
SWITCH-VRRP-Example
    State is Backup
    Virtual IP address is 192.168.1.254
    Virtual MAC address is 0000.5e00.0101
    Advertisement interval is 1.000 sec
    Preemption enabled
    Priority is 100
    Master Router is 192.168.1.1, priority is 105
    Master Advertisement interval is 1.000 sec
    Master Down interval is 3.609 sec (expires in 3.328 sec)

下面的输出展示了由命令show vrrp brief所列印出的信息:

VTP-Server-1#show vrrp brief
Interface          Grp Pri Time Own Pre State   Master addr     Group addr
Vl192              1   105 3589      Y  Master  192.168.1.1     192.168.1.254
VTP-Server-2#show vrrp brief
Interface          Grp Pri Time Own Pre State   Master addr     Group addr
Vl192              1   100 3609      Y  Backup  192.168.1.1     192.168.1.254

配置VRRP的接口跟踪特性

为将VRRP配置为对某个接口进行跟踪就必须要在全局配置模式下为接口追踪而使用全局配置命令track [object number] interface [line-protocol|ip routing], 或为IP前缀追踪而使用全局配置命令track [object number] ip route [address | prefix] [reachablity | metric threshold]建立一个被跟踪的对象。依据软件与平台的不同交换机上可对高达500个的被追踪对象进行跟踪。随后再使用接口配置命令vrrp [number] track [object], 实现VRRP对被追踪对象的跟踪。

注意CCNA考试不要求完成这些高级对象追踪的配置。

下面的输出展示了如何配置VRRP的跟踪引用了对象1, 该被跟踪对象对Loopback0接口的线路协议进行跟踪:

VTP-Server-1(config)#track 1 interface Loopback0 line-protocol
VTP-Server-1(config-track)#exit
VTP-Server-1(config)#interface vlan192
VTP-Server-1(config-if)#vrrp 1 track 1
VTP-Server-1(config-if)#exit

而下面的输出则展示了如何将VRRP配置为对引用对象2的追踪此被追踪对象追踪了到前缀1.1.1.1/32的可达性。一个被追踪的IP路由对象在存在一个该路由的路由表条目时被认为是在线且可达的同时该路由不是无法访问的无法访问就是说有着255的路由度量值, 当发生无法访问时该路由就会从路由信息数据库中被移除a tracked IP route object is considered to be up and reachable when a routing table entry exists for the route and the route is not accessible(i.e., has a route metric of 255)in which case the route is removed from the Routing Information Base(RIB) anyway

VTP-Server-1(config)#track 2 ip route 1.1.1.1/32 reachability
VTP-Server-1(config-track)#exit
VTP-Server-1(config)#interface vlan192
VTP-Server-1(config-if)#vrrp 1 track 2

VRRP跟踪的配置是通过使用命令show vrrp interface [name]命令进行验证的。下面的输出对此进行了演示:

VTP-Server-1#show vrrp interface vlan192
Vlan192 - Group 1
SWITCH-VRRP-Example
    State is Master
    Virtual IP address is 192.168.1.254
    Virtual MAC address is 0000.5e00.0101
    Advertisement interval is 0.100 sec
    Preemption enabled
    Priority is 105
        Track object 1 state Up decrement 10
        Track object 2 state Up decrement 10
    Authentication MD5, key-string
    Master Router is 192.168.1.1 (local), priority is 105
    Master Advertisement interval is 0.100 sec
    Master Down interval is 0.889 sec

而要查看被追踪对象的各项参数,就使用命令show track [number] [brief] [interface] [ip] [resolution] [timers]。下面是show track命令输出的演示:

VTP-Server-1#show track
Track 1
    Interface Loopback0 line-protocol
    Line protocol is Up
        1 change, last change 00:11:36
    Tracked by:
        VRRP Vlan192 1
Track 2
    IP route 1.1.1.1 255.255.255.255 reachability
    Reachability is Up (connected)
        1 change, last change 00:08:48
    First-hop interface is Loopback0
    Tracked by:
        VRRP Vlan192 1

注意这些被追踪对象亦可与HSRP和GLBP配合使用。GLBP在下面的小节进行说明。

VRRP的调试

命令debug vrrp提供给管理员用于查看有关VRRP运作情况实时信息的诸多选项。这些选项如下面的输出所示

VTP-Server-1#debug vrrp ?
    all Debug all VRRP information
    auth VRRP authentication reporting
    errors VRRP error reporting
    events Protocol and Interface events
    packets VRRP packet details
    state VRRP state reporting
    track Monitor tracking
    <cr>

网关负载均衡协议

Gateway Load Balancing Protocol

与HSRP一样网关负载均衡协议也是一种思科专有的协议。GLBP以与HSRP和VRRP类似的方式提供了高的网络可用性。但与HSRP与VRRP在任何时候都由单一网关来转发特定组的流量不同GLBP允许在同一GLBP组中的多台网关同时进行流量的转发。

GLBP网关之间的通信是通过以每隔3秒的频率往多播地址224.0.0.102使用UDP端口3322发送Hello报文进行的。下图34.24对此进行了演示:

GLBP的三层及四层协议与地址

图 34.24 -- GLBP的三层及四层协议与地址GLBP Layer 3 and Layer 4 Protocols and Addresses

GLBP的运作

在启用了GLBP后该GLBP组的那些成员就选举出一台网关作为改组的活动虚拟网关the active virtual gateway, AVG。该活动网关有着最高的优先级值。在成员优先级值相等时组中带有最高IP地址的活动虚拟网关将被选举为网关。组中剩下的其它网关就会在活动虚拟网关不可用时提供活动虚拟网关的备份。

活动虚拟网关将应答所有对虚拟路由器地址的地址解析协议Address Resolution Protocol, ARP请求。此外活动虚拟网关还会为GLBP组的每个成员网关都分配一个虚拟MAC地址。因此每个成员网关都要负责转发发送到由活动虚拟网关所指派的虚拟MAC地址上的数据包了。这些网关一起, 作为它们所分配到的虚拟MAC地址所对应的活动虚拟转发器active virtual forwarders, AVFs被看待。这就令到GLBP能够提供负载的共同承担。下图34.25对此概念进行了演示:

GLBP的活动虚拟网关与活动虚拟转发器

图 34.25 -- GLBP的活动虚拟网关与活动虚拟转发器GLBP Active Virtual Gateway and Active Virtual Forwarders

图34.25展示了一个使用GLBP作为FHRP的网络。这里的三台网关都被配置在GLBP Group 1中。网关GLBP-1配置了110的优先级值网关GLBP-2配置的优先级值是105, 网关GLBP-3使用了默认的优先级值100。那么GLBP-1就被选举为活动虚拟网关,同时GLBP-2GLBP-3又被分配到相应的虚拟MAC地址bbbb.bbbb.bbbb.bbbbcccc.cccc.cccc 且各自成为这些虚拟MAC地址对应的活动虚拟转发器。GLBP-1也是其本身虚拟MAC地址aaaa.aaaa.aaaa的活动虚拟转发器。

主机1、2、3都配置了默认网关地址192.168.1.254, 此IP地址正是指派给该GLBP组的虚拟IP地址。主机1发出了查询其网关IP地址的ARP广播。此查询被活动虚拟网关GLBP-1)接收到,GLBP-1就以其自身的虚拟MAC地址aaaa.aaaa.aaaa加以响应。主机1于是就将到192.168.1.254的流量转发到这个MAC地址了。

主机2发出一个查询其网关IP地址的ARP广播。此查询被活动虚拟网关GLBP-1接收进而以虚拟MAC地址bbbb.bbbb.bbbb进行响应。那么主机2就将那些到192.168.1.254的流量都转发到这个MAC地址了并由GLBP-2来进一步转发这些流量。

主机3的情况与此类似将会把到192.168.1.254的流量转发到虚拟MAC地址cccc.cccc.cccc, 由GLBP-3来转发这些流量。

通过使用上组中的所有网关GLBP实现了无需像在HSRP或VRRP中那样需要配置多个组就能做到负载均衡。

GLBP的虚拟MAC地址分配

一个GLBP允许每组有4个的虚拟MAC地址。由活动虚拟网关来负责将虚拟MAC地址分配给组中的各个成员。其它组成员是在它们发现了活动虚拟网关后精油Hello报文请求到虚拟MAC地址的。

这些网关是依序分配到下一个虚拟MAC地址的。已通过活动虚拟网关分配到了虚拟MAC地址的网关被称作主虚拟转发器a primary virtual forwarder, 而已学习到某个虚拟MAC地址的网关被称作是从虚拟转发器a secondary virtual forwarder

GLBP的冗余

在GLBP组中是单一一台网关被选举为活动虚拟网关有另一网关被选举为备份虚拟网关the standby virtual gateway的。组中剩下的其它网关都被置于侦听状态a Listen state。在活动虚拟网关失效时备份虚拟网关将接过该虚拟IP地址的角色。于此同时又会再进行一次选举此时将从那些处于侦听状态的网关中选出一个新的备份虚拟网关。

在该活动虚拟网关失效时处于侦听状态的某台从虚拟转发器会接过该虚拟MAC地址的职责。但是因为新的活动虚拟转发器已是使用了另一虚拟MAC地址的转发器GLBP就需要确保原有的转发器MAC地址停止使用同时那些主机已从此MAC地址迁移。这是通过使用下面的两个计时器实现的in the event the AVF fails, one of the secondary virtual forwarders in the Listen state assumes responsibility for the virtual MAC address. However, because the new AVF is already a forwarder using another virtual MAC address, GLBP needs to ensure that the old forwarder MAC address ceases being used and hosts are migrated away from this address. This is archived using the following two timers

  • 重定向计时器the redirect timer

  • 超时计时器the timeout timer

重定向时间是指在活动虚拟网关持续将主机重新到原有该虚拟转发器MAC地址的间隔。在此计时器超时后活动虚拟网关就在ARP应答中停止使用原有的虚拟转发器MAC地址了就算该虚拟转发器仍将持续发送到原有虚拟转发器MAC地址的数据包the redirect time is the interval during which the AVG continues to redirect hosts to the old virtual forwarder MAC address. When this timer expires, the AVG stops using the old virtual forwarder MAC address in ARP replies, although the virtual forwarder will continue to forward packets that were sent to the old virtual forwarder MAC address

而在超时计时器超时后该虚拟转发器就被从该GLBP组的所有网关中移除。那些仍在使用ARP缓存中原有MAC地址的客户端就必须刷新此项项目以获取到新的虚拟MAC地址。GLBP使用Hello报文来就这两个计时器的当前状态进行通信when the timeout timer expires, the virtual forwarder is removed from all gateways in the GLBP group. Any clients still using the old MAC address in their ARP caches must refresh the entry to obtain the new virtual MAC address. GLBP uses Hello messages to communicate the current state of these two timers

GLBP的负载抢占

GLBP抢占默认是关闭的也就是说仅在当前活动虚拟网关失效时备份虚拟网关才能成为活动虚拟网关这与分配给那些虚拟网关的优先级无关。这种运作方式与HSRP中用到的类似。

思科IOS软件允许管理员开启GLBP的抢占特性这就令到在备份虚拟网关被指派了一个比当前活动虚拟网关更高的优先级值时成为活动虚拟网关。默认GLBP的虚拟转发器抢占性方案是开启的有一个30秒的延迟By default, the GLBP virtual forwarder preemptive scheme is enabled with a delay of 30 seconds。但这个延迟可由管理员手动调整。

GLBP的权重

GLBP Weighting

GLBP采用了一种权重方案a weighting scheme来确定GLBP组中各台网关的转发容量。指派给GLBP组中某台网关的权重可用于确定其是否要转发数据包因此就可以依比例来确定该网关所要转发的LAN中主机的数据包了the weighting assigned to a gateway in the GLBP group can be used to determine whether it will forward packets and, if so, the proportion of hosts in the LAN for which it will forward packets

每台网关都默认指派了100的权重。管理员可通过配置结合了GLBP的对象跟踪比如接口及IP前缀跟踪来进一步将网关配置为动态权重调整。在某个接口失效时权重就被动态地降低一个指定数值如此令到那些有着更高权重值的网关用于转发比那些有着更低权重值的网关更多的流量。

此外在某个GLBP组成员的权重降低到某个值时还可设置一个阈值用于关闭数据包的转发且在权重值上升到另一与之时又可自动开启转发。在当前活动虚拟转发器的权重掉到低权重阈值30秒时备份虚拟转发器将成为活动虚拟转发器。

GLBP负载共同分担

GLBP Load Sharing

GLBP支持以下三种方式的负载分担

  • 有赖于主机的Host-dependent

  • 轮转调度的Round-robin

  • 加权的Weighted

在有赖于主机的负载共担下生成虚拟路由器地址ARP请求的各台客户端总是会在响应中收到同样的虚拟MAC地址。此方式为客户端提供了一致的网关MAC地址。

而轮询的负载共担机制将流量平均地分发到组中作为活动虚拟转发器的所有网关the round-robin load-sharing mechanism distributes the traffic evenly across all gateways participating as AVFs in the group。这是默认的负载分担机制。

加权的负载分担机制使用权重值来确定发送到某个特定AVF的流量比例。较高的权重值会带来更频繁的包含那台网关虚拟MAC地址的ARP响应。

GLBP的客户端缓存

GLBP的客户端缓存包含了使用到某个GLBP组作为默认网关的那些网络主机的信息。此缓存项目包含了关于发送了IPv4 ARP或IPv6 邻居发现Neighbor Discovery, ND请求主机以及AVG指派了哪个转发器给它的信息还有每台网络主机已被分配的GLBP转发器的编号和当前分配给GLBP组中各台转发器的网络主机总数。

可以开启某个GLBP组的活动虚拟网关来存储一个使用到此GLBP组的所有LAN客户端的客户端缓存数据库a client cache database。客户端缓存数据库最多可以存储2000个条目但建议条目数不要超过1000。同时GLBP缓存的配置是超出CCNA考试要求的此特性可使用命令glbp client-cache进行配置,使用命令show glbp detail进行验证。

在网关上配置GLBP

在网关上配置GLBP需要以下步骤

  1. 使用接口配置命令ip address [address] [mask] [secondary]为网关接口配置正确的IP地址与子网掩码。

  2. 通过接口配置命令glbp [number] ip [virtual address] [secondary], 在网关接口上建立一个GLBP组并给该组指派上虚拟IP地址。关键字[secondary]将该虚拟IP地址配置为指定组的第二网关地址。

  3. 作为可选项,可通过接口配置命令glbp [number] name [name]为该GLBP组指派一个名称。

  4. 作为可选项,如打算对活动虚拟网关的选举进行控制,就要通过接口配置命令glbp [number] priority [value],配置该组的优先级。

本小节中的GLBP示例将基于下图34.26的网络:

GLBP配置示例的拓扑

图 34.26 -- GLBP配置示例的拓扑

注意:这里假定在VTP-Server-1VTP-Server-2之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN192 ping通。为简短起见,这些配置已在配置示例中省略。

VTP-Server-1(config)#interface vlan192
VTP-Server-1(config-if)#glbp 1 ip 192.168.1.254
VTP-Server-1(config-if)#glbp 1 priority 110
VTP-Server-1(config-if)#exit
VTP-Server-2(config)#interface vlan192
VTP-Server-2(config-if)#glbp 1 ip 192.168.1.254
VTP-Server-2(config-if)#exit
VTP-Server-3(config)#interface vlan192
VTP-Server-3(config-if)#glbp 1 ip 192.168.1.254
VTP-Server-3(config-if)#exit
VTP-Server-4(config)#interface vlan192
VTP-Server-4(config-if)#glbp 1 ip 192.168.1.254
VTP-Server-4(config-if)#exit

一旦该GLBP组已被配置就可使用命令show glbp brief来查看该GLBP配置的摘要信息了如同下面的输出所示

VTP-Server-1#show glbp brief
Interface   Grp  Fwd Pri State      Address         Active router   Standby router
Vl192       1    -   110 Active     192.168.1.254   local           192.168.1.4
Vl192       1    1   -   Active     0007.b400.0101  local           -
Vl192       1    2   -   Listen     0007.b400.0102  192.168.1.2     -
Vl192       1    3   -   Listen     0007.b400.0103  192.168.1.3     -
Vl192       1    4   -   Listen     0007.b400.0104  192.168.1.4     -

VTP-Server-2#show glbp brief
Interface   Grp  Fwd Pri State      Address         Active router   Standby router
Vl192       1    -   100 Listen     192.168.1.254   192.168.1.1     192.168.1.4
Vl192       1    1   -   Listen     0007.b400.0101  192.168.1.1     -
Vl192       1    2   -   Active     0007.b400.0102  local           -
Vl192       1    3   -   Listen     0007.b400.0103  192.168.1.3     -
Vl192       1    4   -   Listen     0007.b400.0104  192.168.1.4     -

VTP-Server-3#show glbp brief
Interface   Grp  Fwd Pri State      Address         Active router   Standby router
Vl192       1    -   100 Listen     192.168.1.254   192.168.1.1     192.168.1.4
Vl192       1    1   -   Listen     0007.b400.0101  192.168.1.1     -
Vl192       1    2   -   Listen     0007.b400.0102  192.168.1.2     -
Vl192       1    3   -   Active     0007.b400.0103  local           -
Vl192       1    4   -   Listen     0007.b400.0104  192.168.1.4     -

VTP-Server-4#show glbp brief
Interface   Grp  Fwd Pri State      Address         Active router   Standby router
Vl192       1    -   100 Standby    192.168.1.254   192.168.1.1     local
Vl192       1    1   -   Listen     0007.b400.0101  192.168.1.1     -
Vl192       1    2   -   Listen     0007.b400.0102  192.168.1.2     -
Vl192       1    3   -   Listen     0007.b400.0103  192.168.1.3     -
Vl192       1    4   -   Active     0007.b400.0104  local           -

从上面的输出可以看出,基于VTP-Server-1192.168.1.1有着优先级值110, 该值高于所有其它网关的优先级值,而已被选举作为活动虚拟网关。网关VTP-Server-4192.168.1.4, 由于有着剩下三台网关中最高的IP地址而就算这三台网关有着同样的优先级值被选举作备份虚拟网关。因此网关VTP-Server-2VTP-Server-3都被置于侦听状态了。

命令show glbp将有关该GLBP组状态的详细信息打印了出来下面对此命令的输出进行了演示

VTP-Server-1#show glbp
Vlan192 - Group 1
    State is Active
        2 state changes, last state change 02:52:22
    Virtual IP address is 192.168.1.254
    Hello time 3 sec, hold time 10 sec
        Next hello sent in 1.465 secs
    Redirect time 600 sec, forwarder time-out 14400 sec
    Preemption disabled
    Active is local
    Standby is 192.168.1.4, priority 100 (expires in 9.619 sec)
    Priority 110 (configured)
    Weighting 100 (default 100), thresholds: lower 1, upper 100
    Load balancing: round-robin
    Group members:
        0004.c16f.8741 (192.168.1.3)
        000c.cea7.f3a0 (192.168.1.2)
        0013.1986.0a20 (192.168.1.1) local
        0030.803f.ea81 (192.168.1.4)
    There are 4 forwarders (1 active)
    Forwarder 1
        State is Active
            1 state change, last state change 02:52:12
        MAC address is 0007.b400.0101 (default)
        Owner ID is 0013.1986.0a20
        Redirection enabled
        Preemption enabled, min delay 30 sec
        Active is local, weighting 100
    Forwarder 2
        State is Listen
        MAC address is 0007.b400.0102 (learnt)
        Owner ID is 000c.cea7.f3a0
        Redirection enabled, 599.299 sec remaining (maximum 600 sec)
        Time to live: 14399.299 sec (maximum 14400 sec)
        Preemption enabled, min delay 30 sec
        Active is 192.168.1.2 (primary), weighting 100 (expires in 9.295 sec)
    Forwarder 3
        State is Listen
        MAC address is 0007.b400.0103 (learnt)
        Owner ID is 0004.c16f.8741
        Redirection enabled, 599.519 sec remaining (maximum 600 sec)
        Time to live: 14399.519 sec (maximum 14400 sec)
        Preemption enabled, min delay 30 sec
        Active is 192.168.1.3 (primary), weighting 100 (expires in 9.515 sec)
    Forwarder 4
        State is Listen
        MAC address is 0007.b400.0104 (learnt)
        Owner ID is 0030.803f.ea81
        Redirection enabled, 598.514 sec remaining (maximum 600 sec)
        Time to live: 14398.514 sec (maximum 14400 sec)
        Preemption enabled, min delay 30 sec
        Active is 192.168.1.4 (primary), weighting 100 (expires in 8.510 sec)

当在活动虚拟网关上执行时,命令show glbp除了展示其它内容外还会给出备份虚拟网关的地址和组中所有活动虚拟转发器的数目以及由活动虚拟网关所指派给这些活动虚拟转发器的状态。同时还显示了各台活动虚拟转发器的虚拟MAC地址。

第34天问题

  1. Name two FHRP protocols that are Cisco proprietary.
  2. Name the open standard FHRP protocol.
  3. By default, when HSRP is enabled in Cisco IOS software, version 1 is enabled. True or false?
  4. Which Multicast address does HSRP version 2 use to send Hello packets?
  5. HSRP version 1 group numbers are restricted to the range of 0 to 255, whereas the version 2 group numbers have been extended from 0 to 4095. True or false?
  6. Which parameter can be adjusted in order to influence the HSRP primary gateway election?
  7. How does HSRP interface tracking influence the primary gateway election process?
  8. Which command can you use to configure an HSRP address on an interface?
  9. Just like HSRP, VRRP has the option of allowing the gateway to use the BIA or a statically configured address as the MAC address for VRRP groups. True or false?
  10. Which command can you use to configure a GLBP group IP address on a router interface?

第34天问题答案

  1. HSRP and GLBP.
  2. VRRP.
  3. True.
  4. 224.0.0.102.
  5. True.
  6. HSRP priority.
  7. It modifies HSRP priority based on interface status.
  8. The standby [number] ip [virtual address] command.
  9. False.
  10. The glbp [number] ip [virtual address] command.

第34天实验

HSRP实验

在包含了两台直连路由器的场景中(也就是Fa0/0连接到Fa0/0),对本课程模块中有解释的那些命令进行测试。这两天应都经由比如端口Fa0/1连接到一台交换机。便在交换机上连接一台工作站workstation

  • 在两台路由器上配置某种一致的IP分址方案configure a consistent IP addressing scheme on the two routers比如192.168.0.1/24192.168.0.2/24

  • 使用地址192.168.0.10在面向LAN的接口上配置HSRP 10configure HSRP 10 on LAN-facing interfaces

  • 将该HSRP组命名为CCNA

  • 使用命令standby 10 priority 110, 来对主HSRP网关的选举进行控制

  • 使用命令show standby [brief]对HSRP配置进行验证

  • 在两台路由器都配置上HSRP抢占

  • 关闭Router 1,观察Router 2如何成为主路由器

  • 重启Router 1,并观察其如何因为开启了抢占,而再度成为主路由器

  • 将工作站的IP地址配置为192.168.0.100/24, 网关地址为192.168.0.10; 并从该工作站对网关进行ping操作

  • 配置接口跟踪:使用命令standby 10 track [int number]对路由器上的一个未使用接口进行跟踪; 将该接口循环置于不同根状态,进而对基于该接口状态,而发生的相应路由器优先级变化进行观察。

  • 使用命令standby version 2配置上HSRP版本2

  • 通过命令standby 10 timers x y在两台路由器上对不同HSRP计时器进行修改

  • 在两台路由器之间配置MD5的HSRP验证

  • 在一台路由器的主网关状态变化时,使用命令debug standby对HSRP进行调试从而观察另一台是如何被选举为主网关的

VRRP实验

重复上一实验但这次在适用的命令改变下用VRRP代替HSRPrepeat the previous lab but this time using VRRP instead of HSRP, with the applicable command changes

GLBP实验

重复第一个实验在适用的命令改变下用GLBP代替HSRP。在两台路由器上使用glbp 10 load-balancing round-robin命令配置GLBP的负载共担并观察LAN中流量是如何同时到达两台路由器的。

访问www.in60days.com, 看看作者是怎样完成此实验的。