简介
本文档介绍ASR920系列路由器上热备份路由器协议(HSRP)reload delay命令的行为。为了正确部署HSRP解决方案并获得可预测的性能,IOS-XE版本之间接口行为的差异已突出显示。
先决条件
要求
读者应熟悉网桥域、热备份路由器协议(HSRP)及其相关命令。
使用的组件
本文档中的信息基于以下指定的这些软件和硬件版本:
- 思科ASR 920系列聚合服务路由器
- 支持ASR920系列路由器的Cisco IOS XE®软件版本
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备都以已清除(默认)配置启动。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
问题
ASR920系列路由器是专为运营商级以太网部署而设计并支持HSRP功能的聚合路由器。HSRP部署在路由器组中,以选择主用路由器和备用路由器来在网络中提供冗余。活动路由器是路由数据包的首选路由器,备用路由器是在活动路由器发生故障或满足预设条件时接管路由职责的路由器。为确保可预测性和可管理性,网络管理员希望特定节点在运行时处于活动状态。这是通过HSRP的“standby preempt”功能实现的。
在路由协议可能需要较长时间才能收敛的大型部署中,HSRP备用节点在启动时立即抢占活动节点可能会导致网络中的流量丢弃。理想情况下,当备用设备准备好转发流量时,它应作为活动设备接管。即,在其控制平面为up且上游路由已收敛后。以下两个命令可用于延迟HSRP组的初始化,并延迟抢占,直到控制平面启动。reload关键字指定仅在路由器重新加载后生效的额外延迟(以秒为单位)
- standbydelayminimum min-seconds [ reload reload-seconds]
- standby[ group-number] preempt [ delay{ [ minimum seconds] [ reload seconds] ]
在HSRP组中运行IOS-XE 16.8.1c的备用ASR920路由器会启动并立即抢占活动节点,即使已配置reload-delay命令也是如此。这会导致大型网络上的流量中断,而HSRP应提供高网络恢复能力。
此问题是使用映像1中的路由器拓扑重新造成的。
图1
配置
ASR-920-A configuration:
interface GigabitEthernet0/0/5
no ip address
negotiation auto
service instance 150 ethernet
encapsulation dot1q 150
rewrite ingress tag pop 1 symmetric
bridge-domain 150
interface BDI150
ip address 10.0.1.2 255.255.255.0
standby delay minimum 5 reload 90
standby 80 ip 10.0.1.1
standby 80 priority 250
standby 80 preempt delay minimum 30 reload 90
ASR-920-B configuration:
interface GigabitEthernet0/0/5
no ip address
negotiation auto
service instance 150 ethernet
encapsulation dot1q 150
rewrite ingress tag pop 1 symmetric
bridge-domain 150
interface BDI150
ip address 10.0.1.3 255.255.255.0
standby delay minimum 5 reload 90
standby 80 ip 10.0.1.1
standby 80 preempt delay minimum 30 reload 90
ASR-920-B是活动的,一旦重新加载,我们将收到如下日志,指示延迟计时器未按预期工作。日志中的时间戳表示路由器在没有90秒延迟的情况下转换为活动状态。
日志
*Jul 27 01:17:11.493: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to down
*Jul 27 01:17:15.805: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:16.506: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:34.166: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to down
*Jul 27 01:17:36.802: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:44.818: %HSRP-5-STATECHANGE: BDI150 Grp 80 state Standby -> Active
解决方法
使用Tengig接口作为物理接口。如果HSRP通信通过Tengig链路,即网桥域MAC地址表中两个BDI的MAC地址通过Tengig接口获取,则HSRP计时器将按预期工作。
此处说明了工作配置,它使用图2中的拓扑。
图2
配置
ASR-920-A configuration:
interface BDI20
ip address 10.0.2.2 255.255.255.0
standby delay minimum 5 reload 90
standby 21 ip 10.0.2.1
standby 21 timers msec 300 msec 900
standby 21 priority 250
standby 21 preempt delay minimum 30 reload 90
interface TenGigabitEthernet0/0/12
no ip address
service instance 20 ethernet
encapsulation dot1q 20
rewrite ingress tag pop 1 symmetric
bridge-domain 20
ASR-920-B configuration:
interface BDI20
ip address 10.0.2.3 255.255.255.0
standby delay minimum 5 reload 90
standby 21 ip 10.0.2.1
standby 21 timers msec 300 msec 900
standby 21 preempt delay minimum 30 reload 90
interface TenGigabitEthernet0/0/12
no ip address
service instance 20 ethernet
encapsulation dot1q 20
rewrite ingress tag pop 1 symmetric
bridge-domain 20
ASR-920-B是活动的,一旦重新加载,我们将获得如下日志,指示延迟计时器按预期工作。日志中的时间戳表示路由器已转换为备用。经过90秒的延迟后,路由器再次接管主用状态。
日志
*Jul 22 21:53:35.735: %BDI_IF-5-CREATE_DELETE: Interface BDI20 is created
*Jul 22 21:53:36.497: %LINEPROTO-5-UPDOWN: Line protocol on Interface BDI20, changed state to down
*Jul 22 21:54:21.850: %LINK-3-UPDOWN: Interface BDI20, changed state to up
*Jul 22 21:54:22.552: %LINEPROTO-5-UPDOWN: Line protocol on Interface BDI20, changed state to up
*Jul 22 21:55:54.346: %HSRP-5-STATECHANGE: BDI20 Grp 21 state Speak -> Standby
*Jul 22 21:57:22.430: %HSRP-5-STATECHANGE: BDI20 Grp 21 state Standby -> Active
解决方案
重新加载延迟计时器在第一个接口启动事件时启动。如果在计时器倒计时时接口关闭,则计时器会关闭,最小延迟计时器将接管。思科已发现,在某些IOS版本中,在路由器启动期间,接口两次摆动。第一个接口关闭事件会终止重新加载计时器,因此当接口第二次启动时,reload-delay会生效。
问题的根本原因是路由器启动时的物理接口抖动事件。缺陷CSCuh56657记录了这一点 从IOS-XE 16.9.1a开始修复。
故障排除命令
- show standby BDI <int num>
- show standby brief
- show standby delay
- show standby neighbors
- Show logging
show standby BDI命令可用于确认网桥域接口(BDI)接口上当前运行的HSRP计时器。命令输出显示,在接口摆动时处于有问题状态,重新加载计时器被最小计时器覆盖。这会导致抢占事先发生。
ASR-920-A#show standby bdi 150
BDI150 - Group 80
State is Init (if reload delay, 72 secs remaining)
Virtual IP address is 10.0.1.1
ASR-920-A#show standby bdi 150
BDI150 - Group 80
State is Init (if min delay, 1 secs remaining)
Virtual IP address is 10.0.1.1
show standby brief命令显示路由器角色。
ASR-920-A#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
BD20 21 250 P Active local 10.0.2.3 10.0.2.1
BD150 80 250 P Active local 10.0.1.3 10.0.1.1
show standby delay命令显示计时器值。
ASR-920-A#show standby delay
Interface Minimum Reload
BDI150 5 90
BDI20 5 90
- show standby neighbors命令显示HSRP邻居。
S01-R1-CSW2#show standby neighbors
HSRP neighbors on BDI20
10.0.2.3
Active groups: 21
No standby groups
HSRP neighbors on BDI50
10.0.1.3
Active groups: 80
No standby groups
*Jul 27 01:17:11.493: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to down
*Jul 27 01:17:15.805: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:16.506: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:34.166: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to down
*Jul 27 01:17:36.802: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/5, changed state to up
*Jul 27 01:17:44.818: %HSRP-5-STATECHANGE: BDI150 Grp 80 state Standby -> Active