mirror of
https://github.com/gnu4cn/ccna60d.git
synced 2024-05-21 04:55:00 +08:00
Updated.
This commit is contained in:
parent
68d16708c8
commit
045d608941
@ -41,7 +41,7 @@ ___
|
||||
|
||||
## 热备份路由器协议
|
||||
|
||||
**Hot Standby Router Protocol**
|
||||
** Hot Standby Router Protocol **
|
||||
|
||||
热备份路由器协议是一项思科公司专有的第一跳冗余协议。HSRP令到两台配置在同样HSRP组中的物理网关,使用同样的虚拟网关地址。而位处这两台网关所在的子网中的网络主机,就以该虚拟网关IP地址,作为其默认网关地址。
|
||||
|
||||
@ -50,27 +50,27 @@ ___
|
||||

|
||||
*图 34.1 -- 热备份路由器协议的运作*
|
||||
|
||||
参阅图 34.1,HSRP是在三层(分发/分布层,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`。
|
||||
参阅图 34.1,HSRP 是在三层(分发/分布层,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就将接过网关的职责。此过程对这些网络主机完全透明无感知。
|
||||
`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那样被转发了:
|
||||
如此做法带来的是一个确切的网络(a deterministic network),从而避免在二层或三层上的次优转发。比如假设 `VLAN 10` 的根桥是 `Switch 2`,而 `VLAN 10` 的主网关又是 `Switch 1`,那么从网络主机发送到默认网关IP地址的数据包就将如下图34.2那样被转发了:
|
||||
|
||||

|
||||
*图 34.2 -- STP拓扑与HSRP拓扑的同步,Synchronising the STP Topology with HSRP*
|
||||
|
||||
在上面的网络中,从Host 1到`10.10.10.1`的数据包将被如下这样转发:
|
||||
在上面的网络中,从 `Host 1` 到`10.10.10.1`的数据包将被如下这样转发:
|
||||
|
||||
1. 接入层交换机收到一个来自Host 1、以虚拟网关IP地址之MAC地址为目标的数据帧。此数据帧实在VLAN 10中收到的,同时该接入交换机经由其根端口,已学习到了虚拟网关的MAC地址。
|
||||
1. 接入层交换机收到一个来自 `Host 1`、以虚拟网关IP地址之MAC地址为目标的数据帧。此数据帧实在 `VLAN 10` 中收到的,同时该接入交换机经由其根端口,已学习到了虚拟网关的MAC地址。
|
||||
|
||||
2. 因为VLAN 10的根桥是Switch 2,那么到Switch 1(也就是HSRP的主路由器)的上行线路也被置于阻塞状态。此时该接入交换机就将该数据帧经由到Switch 2的上行链路予以转发。
|
||||
2. 因为 `VLAN 10` 的根桥是 `Switch 2`,那么到 `Switch 1`(也就是HSRP的主路由器)的上行线路也被置于阻塞状态。此时该接入交换机就将该数据帧经由到 `Switch 2` 的上行链路予以转发。
|
||||
|
||||
3. Switch 2又经由连接到Switch 1的指定端口,转发该数据帧。对于来自Host 2的数据帧,会使用上述的相同次优路径。
|
||||
3. `Switch 2` 又经由连接到 `Switch 1` 的指定端口,转发该数据帧。对于来自 `Host 2` 的数据帧,会使用上述的相同次优路径。
|
||||
|
||||
思科IOS软件当前支持两个版本的HSRP:版本1及版本2。后续章节将对它们的相似点和不同点进行说明。
|
||||
|
||||
@ -90,7 +90,7 @@ Switch 1 已被配置了优先级值`105`,而Switch 2使用的是默认优先
|
||||
|
||||
### HSRP版本2
|
||||
|
||||
HSRP版本2使用了新的多播地址`224.0.0.102`,而不是版本1的多播地址`224.0.0.2`, 来发送Hello数据包。不过其所用到的UDP端口号仍然一样(`1985`)。同时此新地址在IP数据包及以太网数据帧中都得以编码,如下图34.5所示:
|
||||
HSRP版本2使用了新的多播地址`224.0.0.102`,而不是版本1的多播地址`224.0.0.2`, 来发送 `Hello` 数据包。不过其所用到的UDP端口号仍然一样(`1985`)。同时此新地址在IP数据包及以太网数据帧中都得以编码,如下图34.5所示:
|
||||
|
||||

|
||||
*图 34.5 -- HSRP版本2多播组地址*
|
||||
@ -114,9 +114,9 @@ HSRP 版本2包括了一些对版本1的增强。本小节将对这些增强及
|
||||

|
||||
*图 34.8 -- HSRP版本2的计时器字段*
|
||||
|
||||
HSRP版本1的分组编号是限制在0到255的,而版本2的分组编号则已拓展到0到4095了。本课程模块后面的HSRP配置示例中,将就此差异进行演示。
|
||||
HSRP版本1的分组编号是限制在 `0` 到 `255` 的,而版本 2 的分组编号则已拓展到 `0` 到 `4095` 了。本课程模块后面的HSRP配置示例中,将就此差异进行演示。
|
||||
|
||||
版本2通过包含一个由物理路由器接口的MAC地址生成、用于对HSRP活动Hello报文来源的唯一性识别的6字节识别符字段(a 6-byte Identifier field),提供了改进的管理与故障排除功能。在版本1中,这些Hello报文所包含的源MAC地址,都是虚拟MAC地址,那就是说无法找出是哪台HSRP路由器发送的HSRP Hello报文。下图34.9给出了HSRP版本2,而非版本1数据包中出现的识别符字段:
|
||||
版本2通过包含一个由物理路由器接口的MAC地址生成、用于对HSRP活动 `Hello` 报文来源的唯一性识别的6字节识别符字段(a 6-byte Identifier field),提供了改进的管理与故障排除功能。在版本1中,这些 `Hello` 报文所包含的源MAC地址,都是虚拟MAC地址,那就是说无法找出是哪台HSRP路由器发送的HSRP `Hello` 报文。下图34.9给出了HSRP版本2,而非版本1数据包中出现的识别符字段:
|
||||
|
||||

|
||||
*图 34.9 -- HSRP版本2中的识别符字段*
|
||||
@ -131,7 +131,7 @@ HSRP版本1的分组编号是限制在0到255的,而版本2的分组编号则
|
||||
|
||||
### HSRP的主网关选举
|
||||
|
||||
可通过将默认HSRP优先级值100, 修改为1到255之间的任何值,对HSRP主网关的选举施加影响。有着最高优先级的路由器将被选举为该HSRP分组的主网关。
|
||||
可通过将默认HSRP优先级值 `100`, 修改为 `1` 到 `255` 之间的任何值,对HSRP主网关的选举施加影响。有着最高优先级的路由器将被选举为该HSRP分组的主网关。
|
||||
|
||||
而在两个网关都使用默认优先级值时,或两个网关上的优先级值被手工配置为相等是,那么有着最高IP地址的路由器将被选举为主网关。在HSRP数据帧中,HSRP优先级值与该路由器的当前状态(比如是主路由器还是备份路由器),都有进行传送。下图34.12演示了一台配置了非默认优先级值`105`, 此优先级令到该路由器被选举为此HSRP组的活动网关,的网关的优先级和状态字段:
|
||||
|
||||
@ -146,11 +146,11 @@ HSRP路由器之间就下列三种类型的报文进行交换:
|
||||
- Coup报文
|
||||
- Resign报文
|
||||
|
||||
Hello报文是经由多播进行交换的,这些报文告诉另一网关本地路由器的HSRP状态和优先级数值。Hello报文还包含了组ID(the Group ID)、各种HSRP计时器数值、HSRP版本,以及认证信息。前面给出的所有报文,都是HSRP的Hello报文。
|
||||
`Hello` 报文是经由多播进行交换的,这些报文告诉另一网关本地路由器的HSRP状态和优先级数值。`Hello` 报文还包含了组ID(the Group ID)、各种HSRP计时器数值、HSRP版本,以及认证信息。前面给出的所有报文,都是HSRP的Hello报文。
|
||||
|
||||
HSRP Coup报文实在当前备份路由器打算接过该HSRP组的活动网关角色时发出的。这与现实生活中的一次篡位(a coup d’état)类似。
|
||||
|
||||
而HSRP的Resign报文,则是在活动路由器即将关闭,以及在一台有着更高优先级的网关发出一个Hello报文或Coup报文时发出的。也就是说,在活动网关交出其作为主网关角色时,发出此报文。
|
||||
而HSRP的 `Resign` 报文,则是在活动路由器即将关闭,以及在一台有着更高优先级的网关发出一个 `Hello` 报文或 `Coup` 报文时发出的。也就是说,在活动网关交出其作为主网关角色时,发出此报文。
|
||||
|
||||
### HSRP的抢占
|
||||
|
||||
@ -166,25 +166,25 @@ HSRP Coup报文实在当前备份路由器打算接过该HSRP组的活动网关
|
||||
|
||||
与开放最短路径有限(Open Shortest Path First, OSPF)的方式类似,当在某个接口上开启了HSRP时,该网关接口会经历以下一系列状态的改变:
|
||||
|
||||
1. 关闭(Disabled)
|
||||
1. 关闭( `Disabled` )
|
||||
|
||||
2. 初始化(Init)
|
||||
2. 初始化( `Init` )
|
||||
|
||||
3. 侦听(Listen)
|
||||
3. 侦听( `Listen` )
|
||||
|
||||
4. Speak
|
||||
4. `Speak`
|
||||
|
||||
5. 备份(Standby)
|
||||
5. 备份( `Standby` )
|
||||
|
||||
6. 活动(Active)
|
||||
6. 活动( `Active` )
|
||||
|
||||
> 注意:这些接口状态过度并无设置时间数值(There are no set time values for these interface transitions)。
|
||||
|
||||
在关闭及初始化状态中,该网关处于尚未准备妥当或是无法参与到HSRP组情形,可能的原因在于相关接口没有开启。
|
||||
|
||||
而侦听状态是适用于备份网关的。仅有备份网关才会监听来自活动网关的Hello报文。假如备份网关在10秒内未能收到Hello报文,其就假定活动网关已经宕机,并接过活动网关角色。如有在统一网段上存在其它网关,这些网关也会侦听Hello报文,且如果它们有着下一最高优先级值或IP地址,那么它们就会被选举为该分组的活动网关。
|
||||
而侦听状态是适用于备份网关的。仅有备份网关才会监听来自活动网关的 `Hello` 报文。假如备份网关在 `10` 秒内未能收到 `Hello` 报文,其就假定活动网关已经宕机,并接过活动网关角色。如有在统一网段上存在其它网关,这些网关也会侦听 `Hello` 报文,且如果它们有着下一最高优先级值或IP地址,那么它们就会被选举为该分组的活动网关。
|
||||
|
||||
在Speak阶段,备份网关与活动网关进行报文交换。在此阶段完成后,主网关就过渡到活动状态,同时备份网关过渡到备份状态。备份状态表明该网关已准备好在主网关阵亡时接过活动网关角色,同时活动状态表明该网关已准备好进行数据包的转发。
|
||||
在 `Speak` 阶段,备份网关与活动网关进行报文交换。在此阶段完成后,主网关就过渡到活动状态,同时备份网关过渡到备份状态。备份状态表明该网关已准备好在主网关阵亡时接过活动网关角色,同时活动状态表明该网关已准备好进行数据包的转发。
|
||||
|
||||
以下输出给出了在一台刚开启HSRP的网关上,`debug standby`命令中显示的状态变化:
|
||||
|
||||
@ -352,18 +352,18 @@ HSRP报文默认以明文密钥字串(the plain text key string)`cisco`发送,
|
||||
|
||||
**HSRP Interface Tracking**
|
||||
|
||||
HSRP允许管理员对当前活动网关上的接口状态进行追踪,所以在有接口失效时,网关就会将其优先级降低一个特定数值,默认为10, 这样就可以让其它网关接过HSRP组的活动网关角色。此概念在下图34.14中进行了演示:
|
||||
HSRP允许管理员对当前活动网关上的接口状态进行追踪,所以在有接口失效时,网关就会将其优先级降低一个特定数值,默认为 `10`, 这样就可以让其它网关接过HSRP组的活动网关角色。此概念在下图34.14中进行了演示:
|
||||
|
||||

|
||||
*图 34.14 -- HSRP 接口追踪*
|
||||
|
||||
参考图34.14, 对于VLAN 150, 已在Switch 1及Switch 2上开启了HSRP。而基于当前的优先级配置,Switch 1有着优先级数值105, 已被选举为该VLAN的主交换机。Switch 1与Switch 2都通过其各自的`Gigabitethernet5/1`接口,分别连接到两台路由器。这里假定这两台与其它外部网络相连,比如互联网。
|
||||
参考图34.14, 对于 `VLAN 150`, 已在 `Switch 1` 及 `Switch 2` 上开启了HSRP。而基于当前的优先级配置,`Switch 1` 有着优先级数值 `105`, 已被选举为该VLAN的主交换机。`Switch 1` 与 `Switch 2` 都通过其各自的`Gigabitethernet5/1`接口,分别连接到两台路由器。这里假定这两台与其它外部网络相连,比如互联网。
|
||||
|
||||
在没有HSRP接口跟踪功能时,如果Switch 1与R1之间的`Gigabitethernet5/1`接口失效,那么Switch 1仍将保持其主网关状态。此时就必须将所有接收到的、比如前往互联网的数据包,使用Switch 1本身与Switch 2之间的连接,转发到Switch 2上。这些数据包将会通过R2转发到它们本来的目的地。这就造成了网络中的次优流量路径。
|
||||
在没有HSRP接口跟踪功能时,如果 `Switch 1` 与 `R1` 之间的`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的优先级。
|
||||
HSRP接口跟踪功能令到管理员可将HSRP配置为追踪某个接口的状态,并据此将活动网关的优先级降低一个默认 `10` 的值,亦可指定该降低值。同样参考图34.14, 如果在 `Switch 1` 上采用默认值配置了HSRP接口跟踪,那么就令到该交换机对接口`Gigabitethernet5/1`的状态进行跟踪,在那个接口失效后,`Switch 1` 就会将其该HSRP组的优先级降低 `10`, 得到一个 `95` 的优先级。
|
||||
|
||||
又假设Switch 2上配置了抢占(preempt),在此情形下是强制性要配置的,那么它就会注意到自己有着更高的优先级(100比95), 就会执行一次篡位,结果该HSRP组的活动网关角色。
|
||||
又假设 `Switch 2` 上配置了抢占( `preempt` ),在此情形下是强制性要配置的,那么它就会注意到自己有着更高的优先级(`100` 比 `95`), 就会执行一次篡位,结果该HSRP组的活动网关角色。
|
||||
|
||||
> **真实场景应用**
|
||||
> 在生产网络中,思科Catalyst交换机还支持增强对象跟踪(Enhanced Object Tracking, EOT)功能,可用于所有FHRP(也就是HSRP、VRRP及GLBP)上。增强对象跟踪功能令到管理员可以将交换机配置为对以下参数进行跟踪:
|
||||
@ -382,16 +382,16 @@ HSRP允许管理员在一些物理接口上配置多个HSRP组,以实现负载
|
||||

|
||||
*图 34.15 -- 不具备HSRP负载均衡的一个网络*
|
||||
|
||||
在图34.15中,在Switch 1和Switch 2上配置了两个HSRP组。Switch 1已被配置为两个组的活动(主)网关--这是基于其有着较高的优先级值。Switch 1与Switch 2都相应的连接到了路由器R1和R2上。这两台路由器都通过各自的T3/E3线路,连接到互联网。因为Switch 1是两个HSRP组的活动网关,它就会转发两个组的流量,直到其失效后,Switch 2才会结果活动(主)网关的角色。
|
||||
在图34.15中,在 `Switch 1` 和 `Switch 2` 上配置了两个HSRP组。`Switch 1` 已被配置为两个组的活动(主)网关--这是基于其有着较高的优先级值。`Switch 1` 与 `Switch 2` 都相应的连接到了路由器 `R1` 和 `R2` 上。这两台路由器都通过各自的 `T3/E3` 线路,连接到互联网。因为 `Switch 1` 是两个HSRP组的活动网关,它就会转发两个组的流量,直到其失效后,`Switch 2` 才会结果活动(主)网关的角色。
|
||||
|
||||
尽管这样做满足了网络的冗余需求,但也造成R2上昂贵的T3/E3线路的空闲,除非在Switch 2成为活动网关并开始经由它来转发流量。自然,这就出现了一定数量带宽的浪费。
|
||||
尽管这样做满足了网络的冗余需求,但也造成 `R2` 上昂贵的 `T3/E3` 线路的空闲,除非在 `Switch 2` 成为活动网关并开始经由它来转发流量。自然,这就出现了一定数量带宽的浪费。
|
||||
|
||||
而通过配置多个HSRP组,每个组使用不同的活动网关,管理员就可以有效的防止不必要的资源浪费,并在Switch 1与Switch 2之间实现负载均衡。这在下图34.16中进行了演示:
|
||||
而通过配置多个HSRP组,每个组使用不同的活动网关,管理员就可以有效的防止不必要的资源浪费,并在 `Switch 1` 与 `Switch 2` 之间实现负载均衡。这在下图34.16中进行了演示:
|
||||
|
||||

|
||||
*图 34.16 -- 一个采用HSRP实现负载均衡的网络*
|
||||
|
||||
这里通过将Switch 1配置为HSRP `Group 1`的活动网关,将Switch 2配置为HSRP组2的活动网关,管理员就令到来自两个不同组的流量,在Switch 1与Switch 2之间实现了负载均衡,并最终通过这两条专用T3/E3广域网连接。同时每台交换机又互为对方HSRP组的备份。比如在Switch 2失效时,Switch 1就将接过HSRP组2活动网关的角色,相反亦然。
|
||||
这里通过将 `Switch 1` 配置为HSRP `Group 1`的活动网关,将 `Switch 2` 配置为HSRP组 `2` 的活动网关,管理员就令到来自两个不同组的流量,在 `Switch 1` 与 `Switch 2` 之间实现了负载均衡,并最终通过这两条专用 `T3/E3` 广域网连接。同时每台交换机又互为对方HSRP组的备份。比如在 `Switch 2` 失效时,`Switch 1` 就将接过HSRP组 `2` 活动网关的角色,相反亦然。
|
||||
|
||||
> **真实世界的部署**
|
||||
|
||||
@ -450,7 +450,7 @@ VTP-Server-2(config-if)#standby 1 ip 172.16.31.254
|
||||
VTP-Server-2(config-if)#exit
|
||||
```
|
||||
|
||||
> **注意**:这里应用到`VTP-Server-2`的HSRP配置并没有手动指派优先级数值。默认情况下,HSRP将使用一个100的优先级值,以允许带有优先级值105的`VTP-Server-1`,在选举中胜选,从而被选举为该HSRP组的主网关。
|
||||
> **注意**:这里应用到`VTP-Server-2`的HSRP配置并没有手动指派优先级数值。默认情况下,HSRP将使用一个 `100` 的优先级值,以允许带有优先级值 `105` 的`VTP-Server-1`,在选举中胜选,从而被选举为该HSRP组的主网关。
|
||||
|
||||
在配置应用后,就可使用`show standby [interface brief]`命令,对HSRP的配置进行验证。下面的输出对`show standby brief`命令进行了展示:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user