目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置

验证

故障排除

一站式反射

显示命令

其他命令

了解更多详细信息

典型方案

用户强制

已删除主用设备

活动丢失GW

进一步考虑事项

适用于Catalyst 9800-CL的HA SSO

Catalyst 9800 HA SSO内部ACI部署

参考

简介

本文档介绍如何在Catalyst 9800 WLC上以RP+RMI方式配置高可用性状态切换(SSO)。

先决条件

要求

思科建议您了解

- Catalyst无线9800配置型号。

- HA SSO指南中介绍的高可用性概念。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- C9800-CL v17.9.2

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

虽然HA SSO配置只需要其中的3个，但在这里，来自与无线管理接口(WMI)相同的网络的4个IP地址已用于简化对控制器GUI的访问。

背景信息

无线控制器上的高可用性SSO功能允许接入点与主用无线控制器和主用无线控制器建立CAPWAP隧道，以便与备用无线控制器共享AP和客户端数据库的镜像副本。发生切换时（即主用控制器发生故障，因此备用控制器接管），加入的AP不会进入发现状态，客户端也不会断开连接。在AP与处于活动状态的无线控制器之间，一次仅维护一个CAPWAP隧道。

两个单元通过专用RP端口（或虚拟机虚拟接口）形成对等连接，并且两个控制器在管理接口上共享相同的IP地址。RP接口用于在运行时同步批量配置和增量配置，并确保HA对的两个控制器的运行状态。此外，当使用RMI + RP时，备用和主用控制器都有一个冗余管理接口(RMI)，为其分配IP地址，即用于确保网关可达性。处于运行状态的接入点的CAPWAP状态也从主用无线控制器同步到热备用无线控制器，从而允许主用无线控制器出现故障时接入点状态完全切换。当主用无线控制器发生故障时，AP不会进入发现状态，备用无线控制器将接替主用无线控制器为网络提供服务。

配置

网络图

注意：橙色突出显示分配给指定为WLC2的9800-CL控制器的虚拟接口GigabitEthernet 2的临时IP地址。此IP地址被临时定义为WLC2的WMI，并允许访问此实例的GUI以简化HA SSO配置。配置HA SSO后，由于一个HA SSO控制器对仅使用单个WMI，因此释放此地址。

配置

在本示例中，高可用性(HA)状态化切换(SSO)配置在运行相同Cisco IOS软件版本的两个9800-CL实例之间，这些实例已配置有单独的WMI并可访问的GUI：

- 第一个地址的IP地址为10.48.39.130，称为WLC1；

- 第二个地址为IP地址10.48.39.133，称为WLC2。

除了这些IP地址外，同一子网（和VLAN）中还使用了2个地址，即10.48.39.131和10.48.39.132。这些是分别用于机箱1 (WLC1)和机箱2 (WLC2)的冗余管理接口(RMI) IP地址。

注意：一旦在两个控制器之间配置了HA，10.48.39.133将被释放，10.48.39.130将成为我的配置的唯一WMI。因此，在配置后，只使用了3个IP地址，即WMI和RMI中的一个。

两台设备在启动HA配置之前的接口配置必须与本示例中提供的接口配置类似。

WLC1#show running-config | s interface

interface GigabitEthernet1

shutdown

negotiation auto

no mop enabled

no mop sysid

interface GigabitEthernet2

switchport trunk allowed vlan 39

switchport mode trunk

negotiation auto

no mop enabled

no mop sysid

interface GigabitEthernet3

negotiation auto

no mop enabled

no mop sysid

interface Vlan1

no ip address

shutdown

no mop enabled

no mop sysid

interface Vlan39

ip address 10.48.39.130 255.255.255.0

no mop enabled

no mop sysid

wireless management interface Vlan39

WLC2#show running-config | s interface

interface GigabitEthernet1

shutdown

negotiation auto

no mop enabled

no mop sysid

interface GigabitEthernet2

switchport trunk allowed vlan 39

switchport mode trunk

negotiation auto

no mop enabled

no mop sysid

interface GigabitEthernet3

negotiation auto

no mop enabled

no mop sysid

interface Vlan1

no ip address

shutdown

no mop enabled

no mop sysid

interface Vlan39

ip address 10.48.39.133 255.255.255.0

no mop enabled

no mop sysid

wireless management interface Vlan39

在本示例中，WLC1被指定为主控制器（即机箱1），而WLC2是辅助控制器（即机箱2）。这意味着由两个控制器组成的HA对使用WLC1的配置，并且WLC2中的一个在进程后丢失。

步骤1.（可选）备份控制器的启动配置文件和运行配置文件。

错误处理可能导致配置丢失。为避免这种情况，强烈建议从HA配置中使用的两个控制器中同时备份启动配置和运行配置。这可以使用9800 GUI或CLI轻松完成。

从 GUI：

在9800 GUI的Administration → Management → Backup & Restore选项卡中（请参阅屏幕截图），用户可以下载控制器当前使用的启动和运行配置。

在本示例中，启动（左侧）和配置（右侧）都直接通过HTTP下载到承载浏览器访问WLC GUI的设备上。使用Transfer Mode字段，可以轻松调整要备份的文件的传输模式和目标。

从CLI：

WLCx#copy running-config tftp://<SERVER-IP>/run-backup_x.cfg

Address or name of remote host [<SERVER-IP>]?

Destination filename [run-backup_x.cfg]?

!!

19826 bytes copied in 1.585 secs (12509 bytes/sec)

WLCx#copy startup-config tftp://<SERVER-IP>/start-backup_x.cfg

Address or name of remote host [<SERVER-IP>]?

Destination filename [start-backup_x.cfg]?

!!

20482 bytes copied in 0.084 secs (243833 bytes/sec)

使用将启动/运行配置文件复制到的TFTP服务器IP替换<SERVER-IP> 。

第2步（可选）确保网络连接。

从两个WLC GUI或CLI中，可以执行简单的连接测试，即从两个设备ping网关并对WLC之间的设备执行ping操作。这可确保两个控制器都具有配置HA所需的连接。

从 GUI：

9800 GUI的故障排除选项卡中的Ping和Traceroute 工具可用于测试控制器自身以及每个WLC与其网络网关之间的连接，如下图所示。

从CLI：

WLCx#ping 10.48.39.133 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.48.39.133, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms WLCx#ping 10.48.39.254 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.48.39.254, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

第三步：使用RMI + RP配对类型配置冗余。

确保每个设备之间的连接后，可在控制器之间配置冗余。此屏幕截图显示如何在9800 GUI的Administration→ Device页面的Redundancy选项卡中进行配置。

警告：对于此示例，WLC1已被指定为主控制器，这意味着它是其配置被复制到另一个控制器的控制器。确保应用正确的机箱优先级/重新编号，以便使用具有高可用性对的正确配置，而不会丢失其中的任何部分。

我们来了解一下已配置的字段及其用途

- 冗余配置：必须启用此配置，才能在WLC之间使用冗余。

- 冗余配对类型：由于本指南涵盖使用RMI配置的HA SSO，因此配置的配对类型必须是RMI + RP，同时使用冗余管理接口和冗余端口。您还可以选择仅使用冗余端口配置冗余。但是，如果仅选择RP，则不会检查网关的可达性，只有冗余WLC状态是

- 机箱1/2的RMI IP：这些字段将提供的IP地址分配给两个实例的指定冗余接口。在本示例中，机箱1和2的两个RMI IP分别配置为10.48.39.131和10.48.39.132，如之前所述和网络图所示。

- HA接口：使用虚拟设备时，虚拟机监控程序的虚拟网络接口卡(vNIC)与虚拟机的网络接口之间的映射可以采用不同方式进行配置。因此，用于冗余的接口可针对Cisco Catalyst 9800-CL进行配置。在这里，按照9800-CL部署指南的建议，使用了GigabitEthernet 3。

注意：使用物理C9800设备时，HA和RP中使用的接口是默认接口，不可配置。实际上，硬件9800 WLC有一个与其网络接口分离的专用冗余接口。

- 管理网关故障切换：如《HA SSO配置指南》中所述，此冗余方法通过定期向网关发送互联网控制消息协议(ICMP) ping来实施默认网关检查。主用和备用控制器都使用RMI IP作为这些检查的源IP。 这些消息以1秒的间隔发送。

- Gateway Failure Interval：这表示在将网关声明为不可达之前，网关检查必须连续失败的时间。默认情况下，配置为8秒。由于网关检查每秒发送一次，这意味着连续有8次无法到达网关。

- 本地/远程IP：这些是为机箱1和2配置的RP IP。这些IP地址自动生成为169.254.x.x，其中x.x派生自管理接口的最后两个八位组。

- 保持连接计时器：如《HA SSO配置指南》中所述，主用和备用机箱相互发送保持连接消息，以确保两者仍然可用。keep alive计时器是每个机箱之间发送2个keepalive消息的时间间隔。默认情况下，每100毫秒发送一次keep-alive消息。通常建议使用9800-CL增大此值，以避免在虚拟机基础设施引入小延迟（快照等……）时进行滥用的切换

- Keep Alive Retries：此字段配置对等体在声明对等体关闭之前的keepalive重试值。如果同时使用保持连接计时器和重试默认值，则如果以100毫秒时间间隔发送的5条保持连接消息未获应答（即如果冗余链路断开了500毫秒），则声明对等体断开。

- 机箱重新编号：设备必须使用的机箱编号（1或2）。

- 在WLC2 (10.48.39.133)上，机箱重新编号为2。默认情况下，机箱编号为1。RP端口的IP地址源自RMI。如果两个控制器上的机箱号相同，本地RP端口IP派生相同，且发现失败。对机箱重新编号以避免这种所谓的主用-主用方案。

- 活动机箱优先级：用于定义HA对必须使用哪些配置的优先级。优先级最高的设备是复制到另一个的设备。因此具有最低优先级的机箱的配置会丢失。

- 在WLC1 (10.48.39.130)上，主用机箱优先级设置为2。这是为了确保已将此机箱选择为所创建的HA对中的主用机箱（因此使用了其配置）。

完成这些配置后，使用Apply按钮将配置应用于控制器。

从CLI

首先，在虚拟接口中配置备用IP地址，用于在两台设备上配置RMI。

WLC1#configure terminal WLC1(config)#interface vlan 39 WLC1(config-if)# ip address 10.48.39.131 255.255.255.0 secondary WLC1(config-if)# end

WLC2#configure terminal WLC2(config)#interface vlan 39 WLC2(config-if)# ip address 10.48.39.132 255.255.255.0 secondary WLC2(config-if)# end

然后，在两台设备上启用冗余

WLC1#configure terminal WLC1(config)#redundancy WLC1(config-red)#mode sso WLC1(config-red)#end

WLC2#configure terminal WLC2(config)#redundancy WLC2(config-red)#mode sso WLC2(config-red)#end

配置机箱优先级，例如WLC1成为主控制器

WLC1#show chassis Chassis/Stack Mac Address : 0001.0202.aabb - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP ------------------------------------------------------------------------------------- *1 Active 0001.0202.aabb 1 V02 Ready 169.254.39.131 WLC1#chassis 1 priority 2 WLC1#show chassis Chassis/Stack Mac Address : 0001.0202.aabb - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP ------------------------------------------------------------------------------------- *1 Active 0001.0202.aabb 2 V02 Ready 169.254.39.131

将WLC2的机箱重新编号，使其成为辅助控制器

WLC2#show chassis Chassis/Stack Mac Address : 0001.0202.aabb - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP ------------------------------------------------------------------------------------- *1 Active 0001.0202.aabb 1 V02 Ready 169.254.39.132 WLC2#chassis 1 renumber 2 WLC2#show chassis Chassis/Stack Mac Address : 0001.0202.aabb - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP ------------------------------------------------------------------------------------- *2 Active 0001.0202.aabb 1 V02 Ready 169.254.39.132

最后，在两台设备上配置RMI

WLC1#chassis redundancy ha-interface GigabitEthernet 3 WLC1#configure terminal WLC1(config)#redun-management interface Vlan39 chassis 1 address 10.48.39.131 chassis 2 address 10.48.39.132 WLC1(config)#end

WLC2#chassis redundancy ha-interface GigabitEthernet 3 WLC2#configure terminal WLC2(config)#redun-management interface Vlan39 chassis 1 address 10.48.39.131 chassis 2 address 10.48.39.132 WLC2(config)#end

注意：对于GUI配置，在虚拟Catalyst 9800上，必须在可用的接口中选择控制器使用的接口。按照建议，此处使用GigabitEthernet 3，并通过使用chassis redundancy ha-interface GigabitEthernet 3 命令对其进行配置。此命令不是运行配置的一部分，但是，可以在实例ROMMON环境变量中看到HA使用的接口。这些可以用show romvar 命令查看。

第四步：重新加载控制器。

要形成HA对并使配置生效，在保存步骤3中进行的配置后，必须同时重新加载两个控制器。

在GUI中：

可以使用两个GUI的Administration Reload页面重新启动控制器，如以下屏幕截图所示。

从CLI：

WLCx#reload Reload command is being issued on Active unit, this will reload the whole stack Proceed with reload? [confirm]

验证

一旦HA对的两个控制器相互发现并创建所需的HA对，一个控制器（主）即可从GUI或CLI监控两个机箱。

在GUI中：

要从9800 GUI监控冗余配置，请从Monitoring > General > System页面导航到Redundancy选项卡，如屏幕截图所示。

从CLI：

WLC#show chassis rmi Chassis/Stack Mac Address : 0050.568d.cdf4 - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP RMI-IP -------------------------------------------------------------------------------------------------------- *1 Active 0050.568d.cdf4 2 V02 Ready 169.254.39.131 10.48.39.131 2 Standby 0050.568d.2a93 1 V02 Ready 169.254.39.132 10.48.39.132

WLC#show redundancy Redundant System Information : ------------------------------ Available system uptime = 22 minutes Switchovers system experienced = 0 Standby failures = 0 Last switchover reason = none Hardware Mode = Duplex Configured Redundancy Mode = sso Operating Redundancy Mode = sso Maintenance Mode = Disabled Communications = Up Current Processor Information : ------------------------------- Active Location = slot 1 Current Software state = ACTIVE Uptime in current state = 22 minutes Image Version = Cisco IOS Software [Cupertino], C9800-CL Software (C9800-CL-K9_IOSXE), Version 17.9.2, RELEASE SOFTWARE (fc2) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2022 by Cisco Systems, Inc. Compiled Wed 02-Nov-22 15:12 by mcpre BOOT = bootflash:packages.conf,12; CONFIG_FILE = Configuration register = 0x102 Recovery mode = Not Applicable Fast Switchover = Enabled Initial Garp = Enabled Peer Processor Information : ---------------------------- Standby Location = slot 2 Current Software state = STANDBY HOT Uptime in current state = 20 minutes Image Version = Cisco IOS Software [Cupertino], C9800-CL Software (C9800-CL-K9_IOSXE), Version 17.9.2, RELEASE SOFTWARE (fc2) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2022 by Cisco Systems, Inc. Compiled Wed 02-Nov-22 15:12 by mcpre BOOT = bootflash:packages.conf,12; CONFIG_FILE = Configuration register = 0x102

故障排除

一站式反射

通常show tech wireless  不包括允许正确了解HA对的HA故障切换及其当前状态的命令。收集此命令，以便在单个操作中具有大多数与HA相关的命令（包括HA命令）：

WLC#show tech wireless redundancy

显示命令

对于冗余端口的状态，可以使用以下命令。

WLC#show chassis detail Chassis/Stack Mac Address : 0050.568d.2a93 - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP ------------------------------------------------------------------------------------- 1 Standby aaaa.aaaa.aaaa 2 V02 Ready 169.254.39.131 *2 Active bbbb.bbbb.bbbb 1 V02 Ready 169.254.39.132 Stack Port Status Neighbors Chassis# Port 1 Port 2 Port 1 Port 2 -------------------------------------------------------- 1 OK OK 2 2 2 OK OK 1 1 WLC#show chassis rmi Chassis/Stack Mac Address : 0050.568d.2a93 - Local Mac Address Mac persistency wait time: Indefinite H/W Current Chassis# Role Mac Address Priority Version State IP RMI-IP -------------------------------------------------------------------------------------------------------- 1 Standby aaaa.aaaa.aaaa 2 V02 Ready 169.254.39.131 10.48.39.131 *2 Active bbbb.bbbb.bbbb 1 V02 Ready 169.254.39.132 10.48.39.132

此命令显示机箱编号和冗余端口状态，作为故障排除的第一步很有帮助。

要验证keepalive端口上的keepalive计数器，可以使用以下命令。

WLC#show platform software stack-mgr chassis active R0 sdp-counters Stack Discovery Protocol (SDP) Counters --------------------------------------- Message Tx Success Tx Fail Rx Success Rx Fail ------------------------------------------------------------------------------ Discovery 162054 2 28 0 Neighbor 23 3 12 0 Keepalive 189856 1665 187970 0 SEPPUKU 0 0 0 0 Standby Elect Req 2 0 0 0 Standby Elect Ack 0 0 2 0 Standby IOS State 0 0 4 0 Reload Req 0 0 0 0 Reload Ack 0 0 0 0 SESA Mesg 0 0 0 0 RTU Msg 0 0 0 0 Disc Timer Stop 1 0 2 0 --------------------------------------- WLC#show platform software stack-mgr chassis standby R0 sdp-counters Stack Discovery Protocol (SDP) Counters --------------------------------------- Message Tx Success Tx Fail Rx Success Rx Fail ------------------------------------------------------------------------------ Discovery 14 2 19 0 Neighbor 6 2 5 0 Keepalive 175905 0 176196 0 SEPPUKU 0 0 0 0 Standby Elect Req 0 0 1 0 Standby Elect Ack 1 0 0 0 Standby IOS State 2 0 0 0 Reload Req 0 0 0 0 Reload Ack 0 0 0 0 SESA Mesg 0 0 0 0 RTU Msg 0 0 0 0 Disc Timer Stop 1 0 0 0 --------------------------------------- WLC#show platform software stack-mgr chassis standby R0 peer-timeout Peer Chassis Peer-timeout (ms) 50% Mark 75% Mark -------------------------------------------------------------------------- 2 500 0 0

其他命令

使用以下命令，可以在控制器的冗余端口上捕获数据包

WLC#test wireless redundancy packetdump start Redundancy Port PacketDump Start Packet capture started on RP port. WLC#test wireless redundancy packetdump stop Redundancy Port PacketDump Stop Packet capture stopped on RP port.

使用这些命令获得的捕获保存在控制器bootflash: 的haIntCaptureLo.pcap名称下。

您也可以使用此命令对冗余端口运行keepalive测试。

WLC#test wireless redundancy rping Redundancy Port ping PING 169.254.39.131 (169.254.39.131) 56(84) bytes of data. 64 bytes from 169.254.39.131: icmp_seq=1 ttl=64 time=0.316 ms 64 bytes from 169.254.39.131: icmp_seq=2 ttl=64 time=0.324 ms 64 bytes from 169.254.39.131: icmp_seq=3 ttl=64 time=0.407 ms --- 169.254.39.131 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2025ms rtt min/avg/max/mdev = 0.316/0.349/0.407/0.041 ms

了解更多详细信息

要查看ROMMON变量配置（显示实际配置如何反映在变量上），您可以使用此命令。

WLC#show romvar ROMMON variables: MCP_STARTUP_TRACEFLAGS = 00000000:00000000 SWITCH_NUMBER = 2 CONFIG_FILE = BOOTLDR = STACK_1_1 = 0_0 BOOT = bootflash:packages.conf,12; LICENSE_SUITE = CHASSIS_HA_IFNAME = GigabitEthernet3 CHASSIS_HA_IFMAC = 00:50:56:8D:2A:93 SWITCH_PRIORITY = 1 RMI_INTERFACE_NAME = Vlan39 RMI_CHASSIS_LOCAL_IP = 10.48.39.132 RMI_CHASSIS_REMOTE_IP = 10.48.39.131 CHASSIS_HA_LOCAL_IP = 169.254.39.132 CHASSIS_HA_REMOTE_IP = 169.254.39.131 CHASSIS_HA_LOCAL_MASK = 255.255.255.0 RET_2_RTS = LICENSE_BOOT_LEVEL = ,csr1000v:csr1000v; BSI = 0 RET_2_RCALTS = RANDOM_NUM = 193112462

此命令显示机箱的优先级，包括RMI和RP详细信息、对等体超时以及更有帮助的详细信息。

我们还可以监控在WLC上运行HA SSO的进程，这两个进程是stack_mgr和rif_mgr。

为此，请使用命令收集对文本文件的“永远在线”跟踪，此处的时间参数可调整以涵盖我们要进行故障排除的时间范围。

show logging process stack_mgr start last 30 minutes to-file bootflash:stack_mgr_logs.txt show logging process rif_mgr start last 30 minutes to-file bootflash:rif_mgr_logs.txt

注意：请务必注意，当控制器充当备用控制器时，备用WLC的服务端口将被停用且无法访问。

典型方案

用户强制

如果查看切换历史记录，可以看到用户使用redundancy force-switchover 命令启动控制器之间的切换时出现“用户强制”。

WLC#show redundancy switchover history Index Previous Current Switchover Switchover active active reason time ----- -------- ------- ---------- ---------- 1 1 2 user forced 11:38:23 Central Fri Mar 10 2023

已删除主用设备

如果查看切换历史记录，可以看到“活动单元已移除”，这表示两个控制器之间的冗余端口上出现通信丢失。

WLC#show redundancy switchover history Index Previous Current Switchover Switchover active active reason time ----- -------- ------- ---------- ---------- 2 2 1 active unit removed 11:55:36 Central Fri Mar 10 2023

如果两个控制器之间的链路断开，则可能发生这种情况，但是如果一个WLC单元突然断开（电源故障）或崩溃，也可能会发生这种情况。监控两个WLC以了解它们是否具有指示意外崩溃/重新启动的系统报告很有趣。

活动丢失GW

如果查看切换历史记录，您可以看到“活动丢失GW”，这表示RMI端口上与网关的通信丢失。

WLC#show redundancy switchover history Index Previous Current Switchover Switchover active active reason time ----- -------- ------- ---------- ---------- 3 1 2 Active lost GW 12:00:26 Central Fri Mar 10 2023

如果活动控制器与其网关之间的链路断开，就会发生这种情况。

进一步考虑事项

适用于Catalyst 9800-CL的HA SSO

在虚拟环境中，您需要接受引入延迟，并且延迟不是HA可以正确容忍的事情。这是合法的，因为HA SSO往往会快速有效地检测任何机箱故障。为此，每个机箱都通过在RP和RMI链路上使用keepalive以及到其RMI网关的ping来检查另一个机箱的状态（而且这是其中一个WMI，必须相同）。如果缺少其中任何一个，堆栈会根据HA SSO指南“系统和网络故障处理”中详细说明的症状做出响应。

使用Catalyst 9800的虚拟高可用性SSO堆栈时，经常会观察由于RP链路上未命中keepalive而导致的切换。这可能是由于虚拟化环境引入的延迟造成的。

要确定HA SSO堆栈是否受到RP keepalive丢弃的影响，您可以使用堆栈/rif管理器日志。

! Keepalives are missed 004457: Feb 4 02:15:50.959 Paris: %STACKMGR-6-KA_MISSED: Chassis 1 R0/0: stack_mgr: Keepalive missed for 2 times for Chassis 2 ! Chassis is removed %STACKMGR-6-CHASSIS_REMOVED_KA: Chassis 1 R0/0: stack_mgr: Chassis 2 has been removed from the stack due to keepalive failure. ! RP link is down 004469: Feb 4 02:17:28.707 Paris: %RIF_MGR_FSM-6-RP_LINK_DOWN: Chassis 1 R0/0: rif_mgr: Setting RP link status to DOWN ! Dual active detection 004470: Feb 4 02:17:28.707 Paris: %STACKMGR-1-DUAL_ACTIVE_CFG_MSG: Chassis 1 R0/0: stack_mgr: Dual Active Detection links are not available anymore

如果两个机箱都在运行，则切换会创建“双主用检测”，这是RP上丢弃的结果。

在这种情况下，调整HA keepalive参数以避免这些不必要的切换可能会有所帮助。可以配置两个参数，

- 保持连接计时器：每个机箱之间发送2个keepalive消息的时间间隔。

- Keep Alive Retries：需要错过以声明对等体关闭的Keepalive数。

默认情况下，保持连接计时器设置为1ms，重试次数设置为5。这意味着，在RP链路上错过了5毫秒的keepalive后，将发生切换。对于虚拟部署，这些值可能太低。如果由于丢失RP keepalive数据包而遇到周期性切换，请尝试增加这些参数以稳定堆叠。

在GUI中：

要从9800 GUI监控或修改HA SSO keepalive参数，请从Administration > Device页导航到Redundancy选项卡，如屏幕截图所示。

从CLI：

WLC#chassis redundancy keep-alive retries <5-10> WLC#chassis redundancy keep-alive timer <1-10>

除了配置这些参数之外，其他优化还可以帮助改善HA SSO堆栈中的此类行为。对于物理设备，硬件允许通常使用单线将机箱连接到另一机箱。在虚拟环境中，每个机箱的RP端口必须由一个虚拟交换机(vSwitch)进行互连，与物理连接相比，虚拟交换机可能再次导致延迟。使用专用vSwitch创建RP链路是另一种可以防止HA keepalive由于延迟而丢失的优化。思科Catalyst 9800-CL云部署无线控制器指南中也会对此进行介绍。因此，最好在9800-CL VM之间为RP链路使用专用vSwitch，并确保没有其他流量干扰它。

Catalyst 9800 HA SSO内部ACI部署

当HA SSO堆栈发生切换时，新主用机箱使用无故ARP (GARP)机制更新网络中的MAC到IP映射，并确保其接收专用于控制器的流量。特别是，机箱发送GARP以成为WMI的新“所有者”，并确保CAPWAP流量到达正确的机箱。

机箱变为主用状态实际上不是发送一个GARP，而是突然发送一个GARP，以确保网络中的任何设备更新其IP到MAC的映射。此突发流量可能会淹没ACI的ARP学习功能，因此，在使用ACI时，建议从Catalyst 9800配置中尽可能减少此突发流量。

从CLI：

WLC# configure terminal WLC(config)# redun-management garp-retransmit burst 0 interval 0

除了限制在切换期间由9800发起的GARP突发，还建议禁用此平台上的快速切换功能。当配置了快速切换时，主用控制器会向备用控制器发送明确通知，说明它处于关闭状态。使用时，在形成高可用性堆栈的两个WLC之间可以存在交织流量（AP和客户端被丢弃），直到其中一个断开。因此，禁用此功能有助于在处理ACI部署时稳定您的无线基础设施。

从CLI：

WLC#configure terminal WLC(config)#no redun-management fast-switchover

注意：请记住，当禁用快速切换时，备用控制器仅依赖于keepalive超时故障来检测活动控制器何时关闭。因此，必须极其谨慎地配置这些设备。

有关内部ACI网络Catalyst 9800的HA SSO部署注意事项的详细信息，请参阅Cisco Catalyst 9800系列无线控制器软件配置指南的“关于在控制器中部署ACI网络的信息”部分。

参考

- 17.3高可用性SSO指南

- 17.6高可用性SSO指南