簡介
本檔案介紹從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發行版本說明,瞭解是否有升級路徑)。假設來自AireOS就像來自16.12 9800)。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
問題
為了最大限度地減少升級過程中的停機時間,網路管理員通常依賴無線接入點預下載。當控制器已下載新代碼但尚未重新啟動該新代碼時,此功能允許AP在仍為客戶端服務的同時下載該新代碼。這表示當WLC以新程式碼重新開機時,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 download區段,並下載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%
請將上一個示例中的IP地址替換為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映像。剛才提供的範例是在執行CLI的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-
此過濾器連線到所有與WLC連線的AP,這些AP的名稱以「Branch1 — 」開頭。
如果您想更具體,可以使用 aplist:
config.ini檔案的欄位。
隨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代碼)。
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>
相關資訊