簡介
本檔案介紹從AireOS無線LAN控制器(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連線較小或廣域網連線延遲意味著要為這些AP下載新代碼的時間較長的情況下,AP預下載不僅有助於縮短客戶端停機時間,也非常有用。當使用AP預下載時,下載發生於AP仍在為客戶端提供服務時。
但是,在遷移的情況下,問題在於您使用的是兩個單獨的控制器(一個運行AireOS,另一個運行Cisco IOS XE),在這種情況下,沒有嵌入式方法可以使用AP預下載來從另一個控制器中預下載代碼。解決方案在於可程式設計性和自動化。
解決方案
工作流程概念
本文說明了簡單過程的自動化(使用公開的WLAN輪詢器工具,請參閱企業WLAN輪詢器版本):
- 透過SSH連線到所有加入到AireOS WLC的AP或其中一個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 Poller後,需要編輯幾個檔案以使其適應您的網路和配置。
WLANPoller在運行時會連線到WLC,檢查已加入的AP並使用SSH連線到所有AP。然後,它將在WLC和AP上運行特定的命令清單。
CMDlist_wlc.txt
此檔案包含WLAN Poller每次執行時在AireOS WLC上執行的指令清單。依預設,我們不需要此檔案中的所有指令,因此請將此檔案內容縮減為以下兩項:
show time
show ap summary
其中列出了加入WLC的AP和時間,僅用於跟蹤和日誌記錄。
Cmdlist_cos.txt / Cmdlist_cos_bcm.txt / Cmdlist_cos_qca.txt
此檔案包含傳送到x800系列(1800、2800、3800)的AP的命令清單。
刪除現有指令集,並以下列指令取代:
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 Poller 3.2版開始,9105個AP使用cmdlist_cos執行,即使它最好使用cmdlist_cos_bcm執行。在即將發佈的版本中,這種情況可能會發生改變。
這意味著您需要根據您擁有的AP,將命令寫入一個或多個檔案中。
第二個技巧是,您需要為正確的AP型號指定正確的AP映像。剛才給出的示例是在1815 AP上運行,運行映ap1g5
像檔案。關鍵字%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-
此過濾器連線到所有名稱以「Branch1-」開頭的WLC加入的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代碼)。
例如,此時如果一切成功,則會顯示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%
當關鍵字之後的命令需要「[confirm]」提示符(如reload命令需要)時,該關鍵字是必需的。這樣會自動接受提示。
Cmdlist_cos.txt
show clock
capwap ap secondary-base dummy 192.168.2.1
capwap ap primary-base <9800 name> <9800 IP>
相關資訊