简介
本文档介绍从AireOS无线局域网控制器(WLC)迁移到基于Cisco IOS® XE的Catalyst 9800 WLC的具体使用案例。
先决条件
要求
本文档假设您已配置了AireOS WLC和9800 WLC,并已准备好进行迁移。它还假设您已在网络中配置了接入点可访问的TFTP/SFTP服务器。
此迁移是网络管理员希望尽可能减少无线客户端的停机时间。本文不介绍两个控制器型号之间配置的迁移,仅重点介绍如何自动进行AP预下载,以便接入点(AP)在更换控制器时仅重启一次。
使用的组件
本文基于9800-L和3504场景(运行8.10和17.4.1)编写,但它必须同样适用于所有软件版本以及9800-CL、9800-40、9800-80、5520、8540、vWLC和8510。
它需要WLANPoller版本3.1。
9800版本17.9需要通过17.3.7的升级路径(如果来自早期版本,并且来自AireOS 8.x软件)。使用本文无法在8.5 WLC和17.9 9800之间平稳过渡以实现单个预下载,您需要使用本文对17.3.7进行预下载,然后让AP使用通常的流程从WLC下载17.9。
如果AP在运行早于17.3.5/17.3.6/17.3.7的版本时下载17.9代码,它会抱怨没有足够的空间来安装17.9映像。如果要使用比17.9更早的9800版本,则不需要此升级路径(请查看9800发行版本注释以查看是否有升级路径)。AireOS就像来自16.12 9800)。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
问题
为了尽量减少升级过程中的停机时间,网络管理员通常依赖于AP预下载。当控制器已下载新代码但尚未重新启动该新代码时,此功能允许AP在仍为客户端提供服务时下载新代码。这意味着当WLC重新启动新代码时,AP仅重新启动一次,以便在该新代码上启动。
如果没有AP预下载,AP必须等待WLC重新使用新代码返回在线才能尝试加入该代码,然后才意识到他们需要下载新代码,同时下载所有代码,然后重新启动并重新尝试加入。
对于分支机构具有小型WAN连接或WAN连接延迟意味着要为这些AP下载新代码很长时间的情况,AP预下载在减少客户端停机时间的同时,也非常有用。在使用AP预下载时,当AP仍在为客户端提供服务时会发生下载。
但是,在迁移时,问题在于您与两个独立的控制器(一个运行AireOS,另一个运行Cisco IOS XE)打交道,在这种情况下,没有嵌入式方法可以使用AP预下载从另一个控制器预下载代码。解决方案在于可编程性和自动化。
解决方案
工作流程概念
本文介绍一个简单的自动化过程(使用公开的WLAN轮询器工具,请参阅企业WLAN轮询器版本):
- 通过SSH连接到所有加入到AireOS WLC的AP或其子集。
- 通过
archive download-sw
命令开始预下载Cisco IOS XE AP映像。然后,AP将映像下载到其备份分区,同时仍为客户端提供服务并正常运行。
- 准备迁移AP时,将9800 WLC配置为AP的主WLC并重新启动。
- AP立即使用新的(与Cisco IOS XE兼容)代码重新引导,并加入9800 WLC,无需进一步重新引导,从而将停机时间限制在一个重新引导周期内。
优点在于解除了实际迁移/重新引导中的代码下载并限制了一个重新引导周期。
使用AP映像准备文件服务器
最简单的方法是下载包含给定版本的所有AP映像的AP捆绑文件。转至cisco.com下载部分,下载9120嵌入式无线控制器文件,以供您选择的版本使用。它是一个包含每个AP型号的CAPWAP AP映像的.tar文件。只需将所有.tar内容提取到TFTP/SFTP服务器即可完成。
为代码下载操作配置WLAN轮询器文件
下载适用于Mac或Windows的WLAN轮询器后,需要编辑几个文件,以使其适应您的网络和配置。
运行WLANPoller时,它会连接到WLC,检查加入的AP以及到所有AP的SSH。然后,它将在WLC和AP上运行特定命令列表。
CMDlist_wlc.txt
此文件包含WLAN轮询器每次在AireOS WLC上运行的命令列表。默认情况下,我们不需要此文件中包含的所有命令,因此请将此文件内容缩减为以下两项:
show time
show ap summary
这里列出了加入WLC的AP和时间,仅用于跟踪和记录目的。
Cmdlist_cos.txt / Cmdlist_cos_bcm.txt / Cmdlist_cos_qca.txt
此文件包含发送到x800系列AP (1800,2800,3800)的命令列表。
删除现有命令集并替换为以下命令:
show clock
archive download-sw /no-reload tftp://192.168.1.12/%apimage%
请使用TFTP或SFTP服务器详细信息的IP地址替换上一个示例中的IP地址。
此步骤取决于您所瞄准的几级AP型号。
文件cmdlist_cos_qca仅对9117和9130接入点执行命令。文件cmdlist_cos_bcm仅对9115和9120接入点执行命令。
文件cmdlist_cos对1800s/2800/3800/1540/1560 AP执行命令。
注意:
从WLAN轮询器版本3.2开始,9105个AP使用cmdlist_cos执行,即使它最好使用cmdlist_cos_bcm执行。在即将发布的版本中,这可能会发生变化。
这意味着您需要根据您所拥有的AP,在其中一个或多个文件中写入命令。
第二个技巧是,您需要为正确的AP型号指定正确的AP映像。刚才给出的示例是在运行映ap1g5
像文件的1815 AP上运行的。关键字%apimage% (包括百分比字符)是WLANPoller的一个特殊关键字,用于替换为实际ap映像文件名。
为方便起见,以下是AP型号及其运行的映像的表:
1815/1540/1840 |
ap1g5 |
1810/1830/1850 |
ap1g4 |
2800/3800/4800/1560 |
ap3g3 |
1700/2700/3700 |
ap3g2(或c3700,适用于8.10版本中的3700AP) |
9105 |
ap1g8 |
9115/9120 |
ap1g7 |
9117 |
ap1g6 |
9130 |
ap1g6a |
Config.ini
config.ini是主配置文件,必须针对某些字段进行更改。本节仅介绍需要更改默认值的字段:
wlc_user: <enter the username of the AireOS WLC>
wlc_pasw: <enter the password of the AireOS WLC>
wlc_enable: <re-enter the username of the AireOS WLC>
ap_user: <enter the username for the AP SSH connection>
ap_pasw: <enter the password for the AP SSH connection>
ap_enable: <enter the enable password for the AP SSH connection>
ipaddr: <enter the IP address of the AireOS WLC>
选择受影响的AP
默认情况下,如果您只是按照说明进行操作,则当前加入AireOS WLC的所有AP都会受脚本影响。
如果要一次对多个AP进行批处理,有多种方法。
在config.ini文件中,您可以取消对ap_name_filter =
字段的注释并键入一个AP名称前缀。
例如:
ap_name_filter = Branch1-
此过滤器连接到所有加入到WLC(其名称以“Branch1-”开头)的AP。
如果想要更具体的说,您可以使用config.ini文件的aplist:
字段。
Wlanpoller提供了一个示例CSV文件,您可以输入脚本必须连接到其中的AP名称和IP的列表。
运行AP代码预下载操作并验证
运行wlanpoller
脚本。然后,它会显示连接详细信息,并提供它在WLC上看到的、能够通过SSH登录的AP的数量。任何错误都可能会显示在末尾的“错误”部分中。
Enterprise-WlanPoller-Mac-3.0-Bundle % ./wlanpoller
* Detected local address : 192.168.1.63
* Logging to syslog server : 192.168.1.63
* Logging to console enabled : False
* Logging to file : ./logs/20210125_wlanpoller.log
* Using TFTP address : 192.168.1.63
* Using TFTP IPv6 address : self
* Using FTP address : 192.168.1.63
* WLC Type AirOS[1] 9800[2] : 1
* Transfer mode : tftp
* Poller enable : True
* Event enable : False
* DFS trace enable : False
* WLC config backup : False
* WLC AP crash upload : False
* WLC Support Bundle upload : False
============================================================
Summary
============================================================
Total APs : 1
Processed APs : 1
Failed APs : 0
============================================================
Errors
============================================================
如果在运行期间出现问题
要验证脚本是否运行良好,您可以检查每个AP(如果备份映像是您的目标Cisco IOS XE代码)。
例如,此时如果all成功,则会显示AP CLI上的show version
:
AP Running Image : 8.10.142.0
Primary Boot Image : 8.10.142.0
Backup Boot Image : 17.4.1.6
在WLANpoller /logs文件夹中,如果出现任何错误,可以找到WLANpoller脚本本身的时间戳日志文件。
脚本可能已成功运行,但传输可能已失败。在Wlan Poller内的/data文件夹中,可以找到WLAN Poller建立到WLC和AP的SSH会话的结果,并且可以识别任何问题。以下是TFTP服务器未在线的示例:
username % pwd
/Users/username/Downloads/Enterprise-WlanPoller-Mac-3.0-Bundle/data/2021/01/25
username % ls
cos_1815AP.log wlc_WLCNico.log
username % cat cos_1815AP.log
<run timestamp='2021-01-25T14:37:30.888559' device='cos' hostname='1815AP' model='AIR-AP1815I-E-K9' version='8.10.142.0'>
<cmd string='show clock'>
show clock
*13:38:02 UTC Mon Jan 25 2021
1815AP#
</cmd>
<cmd string='archive download-sw /no-reload tftp://192.168.1.12/ap1g5'>
archive download-sw /no-reload tftp://192.168.1.12/ap1g5
Starting download AP image tftp://192.168.1.12/ap1g5 ...
It may take a few minutes. If longer, please abort command, check network and try again.
-=O=- # # # #
curl: (28) Error
%Error opening tftp://192.168.1.12/ap1g5 (Error 28: Operation timeout)
Image transfer failed
1815AP#
</cmd>
</run>
username %
为AP迁移操作配置WLAN轮询器文件
如果您现在将AP移动到9800,它们会尝试将其与其当前分区加入,注意代码不同,但它们的备份分区中具有正确的代码版本,然后重新启动。
您可以向此文本文件添加“config boot path 2”,然后添加“%confirm% reload”命令,这样可以加快几秒钟(保存第一次加入尝试)。然后,这会将备份分区设置为新的活动分区并立即重新启动(没有时间尝试加入9800 WLC)。AP将立即重新启动,然后使用正确的代码版本加入9800。
如果关键字后面的命令需要“[confirm]”提示符(如reload命令需要),则需要%confirm%
关键字。这将自动接受提示。
Cmdlist_cos.txt
show clock
capwap ap secondary-base dummy 192.168.2.1
capwap ap primary-base <9800 name> <9800 IP>
相关信息