2
0
mirror of https://github.com/gnu4cn/ccna60d.git synced 2024-05-21 04:55:00 +08:00
This commit is contained in:
Peng Hailin 2020-10-21 08:11:54 +08:00
parent 68d16708c8
commit 045d608941

View File

@ -41,7 +41,7 @@ ___
## 热备份路由器协议
**Hot Standby Router Protocol**
** Hot Standby Router Protocol **
热备份路由器协议是一项思科公司专有的第一跳冗余协议。HSRP令到两台配置在同样HSRP组中的物理网关使用同样的虚拟网关地址。而位处这两台网关所在的子网中的网络主机就以该虚拟网关IP地址作为其默认网关地址。
@ -50,27 +50,27 @@ ___
![热备份路由器协议的运作](images/3401.png)
*图 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`。
参阅图 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就将接过网关的职责。此过程对这些网络主机完全透明无感知。
`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那样被转发了:
![STP拓扑与HSRP拓扑的同步](images/3402.png)
*图 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所示:
![HSRP版本2多播组地址](images/3405.png)
*图 34.5 -- HSRP版本2多播组地址*
@ -114,9 +114,9 @@ HSRP 版本2包括了一些对版本1的增强。本小节将对这些增强及
![HSRP版本2的计时器字段](images/3408.png)
*图 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数据包中出现的识别符字段
![HSRP版本2的识别符字段](images/3409.png)
*图 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报文还包含了组IDthe Group ID、各种HSRP计时器数值、HSRP版本以及认证信息。前面给出的所有报文都是HSRP的Hello报文。
`Hello` 报文是经由多播进行交换的这些报文告诉另一网关本地路由器的HSRP状态和优先级数值。`Hello` 报文还包含了组IDthe 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中进行了演示:
![HSRP接口追踪](images/3414.png)
*图 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组以实现负载
![不具备HSRP负载均衡的一个网络](images/3415.png)
*图 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中进行了演示:
![一个采用HSRP实现负载均衡的网络](images/3416.png)
*图 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`命令进行了展示: