简介
本文档介绍从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。
它需要WLANoller版本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重新联机使用新代码以尝试加入它,然后才意识到他们需要下载新代码,同时下载所有新代码,然后重新启动并重新尝试加入。
AP预下载除了减少客户端停机时间之外,对于分支机构的WAN连接较小或WAN连接延迟意味着要为这些AP下载新代码的时间较长的情况,也非常有用。当AP在使用AP预下载时仍在为客户端提供服务时,会发生下载。
但是,在迁移情况下,问题在于您使用的是两个独立的控制器(一个运行AireOS,一个运行Cisco IOS XE),并且在此情况下没有嵌入式方法来使用AP预下载,以使AP从另一个控制器预下载代码。解决方案在于可编程性和自动化。
解决方案
工作流程概念
本文解释了一个简单过程的自动化(使用公开可用的WLAN轮询器工具,请参阅企业WLAN轮询器版本):
- 通过SSH连接到加入到AireOS WLC的所有AP或其子集。
- 通过Cisco IOS XE AP
archive download-sw
命令。然后,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地址。
此步骤取决于您所瞄准的几级AP型号。
文件cmdlist_cos_qca仅对9117和9130接入点执行命令。文件cmdlist_cos_bcm仅对9115和9120接入点执行命令。
文件cmdlist_cos在1800s/2800/3800/1540/1560 AP上执行命令。
这意味着您需要根据您拥有的AP将命令写入一个或多个此类文件中。
第二个技巧是,您需要为正确的AP型号指定正确的AP映像。前面给出的示例是在运行 ap1g5
映像文件。关键字%apimage%(包括百分比字符)是WLANoller的一个特殊关键字,用于替换为实际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-
此过滤器连接到所有加入名称以“Branch1 — ”开头的WLC的AP。
如果您想要更具体,您可以使用 aplist:
config.ini文件的字段。
CSV文件示例随wlanpoller提供,您可以输入脚本必须连接到其中的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
============================================================
如果在运行期间出现问题
要验证脚本是否运行良好,如果备份映像是您的目标Cisco IOS XE代码,您可以检查每个AP。
A show version
在AP CLI上,如果所有操作都成功,此时将显示以下示例:
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%
当关键字后面的命令需要“[confirm]”提示符(如reload命令)时,需要关键字。此命令自动接受提示。
Cmdlist_cos.txt
show clock
capwap ap secondary-base dummy 192.168.2.1
capwap ap primary-base <9800 name> <9800 IP>
相关信息