HPE Aruba AP の Firmware を CLI で更新する

こんにちは。SYC 松本です。
Aruba の無線 LAN Access Point との Firmware 更新といえば、今では通常 Web ブラウザを利用して
Instant AP の仮想コントローラーの画面や、AirWave もしくは Aruba Central などにアクセスし、
Web UI で Firmware ファイルをアップロードするなどして更新しますよね?


そんな中、ふいに CLI で Firmware 更新をトライする機会がありチャレンジしました。
やってみるとですね、、、意外とわかりにくい感じでしたのでメモを残しておきます。

以下の作業工程については、ここでは割愛します。

  • Aruba Support Portal から対象 AP 用の Firmware をダウンロードする。
  • Aruba AP の IP アドレスなど初期設定する。
  • Aruba AP の admin ユーザーの初期パスワードを変更する。
  • 作業用 Windows PC の IP アドレスなど設定する。
  • 作業用 PC に TFTP サーバー機能などを用意する。

AP と PC を通信可能な状態で接続する

通常利用中の Aruba AP の Firmware 更新を CLI で行いたくなることはないのではないかと思います。

今回は Web UI での更新が利用できないケース想定の手順、かつ AP 単体の例となります。
※ 複数台 AP があり同じ管理下であれば、正常な AP が仮想コントローラーとなっている配下に接続すると
 仮想コントローラーとなっている APと同じバージョンのファームウェアに自動同期されると思われ、
 単体で CLI で頑張る必要などない見込みです。

[作業用 PC] — LAN ケーブル + シリアルコンソールケーブル —[Aruba AP]

  • Firmware は FTP / TFTP / HTTP のいずれかのネットワーク転送が必要となるので、LAN ケーブル接続は必須
  • もし、AP に対して SSH 接続可能な状態であれば、シリアルコンソールケーブル接続は不要
    ※ 今回は工場出荷時リセットや 初期 IP 設定など繰り返したのでシリアルコンソールケーブルも併用
  • AP の電源が別途必要です。AC アダプターもしくは PoE Injector での給電が必要です。
    ※ 今回は PoE Injector を利用したので、PC/AP の LAN ケーブルの間に PoE Injector を挟み込みました。

upgrade-image 実行する

環境が正しく整っていさえすれば、upgrade-image コマンドでサクッと更新できます。

環境が正しく整っていさえすれば・・・

Firmware を以下のように準備しておく。

  • FTP / TFTP アクセスとする場合
    作業用 PC に FTP / TFTP サーバー機能を用意し、FTP / TFTP アクセス可能な場所に適用したいファームウェアを置く。
    匿名アクセス可能なようにしておくと良い。
  • HTTP アクセスとする場合
    作業用 PC に Web サーバー機能を用意し、HTTP アクセス可能な場所に適用したいファームウェアを置く。
    Web サーバー側でファームウェアファイルをダウンロードできるように MIME 設定などしなくてはならないかもしれない。

今回使った作業用 PC は、TFTP サーバー機能を用意して使用しました。
が、準備済みのつもりがさっぱり何もしてなかったので、環境準備も併せて行った結果以下の落とし穴にはまり、
少々てこずりました。

  • 今回から Windows 11 (従来は Windows 10 使っていました)
  • TFTP サーバーツールを起動しようとすると「指定フォルダなどへの適切なアクセス許可がない」という趣旨のダイアログが
    画面中央に、、、PC のツールが入っているフォルダのアクセス許可等見てみるも特にアクセス権ないわけでもなく、、、
    結果、画面中央にでかでかとでるダイアログと別に、画面右下の方に小さく「見知らぬツールブロックした。許可する?」という
    趣旨のポップアップが出ていて、「許可する」方向の操作で解決しました。
    画面中央にでかでかとダイアログ出てたら右下の端っこの方のちょろっと出て消えてしまうポップアップなんて見逃す、、、
  • TFTP サーバーツール動作するようになった後、「Windows ファイヤウォールで遮断している。許可する?」という趣旨の
    ポップアップが出てきて、「許可する」を選択したはずだが、必要なネットワークプロファイルには許可されてなくて遮断されていた。
    ひどい、、、あとから手動で許可設定を追加して解決しました。
  • upgrade-image コマンド実行後の結果は show upgrade コマンドで確認するが、これの表示状態が一見おかしいと気づきにくい。
    実は失敗しているのに正常に進んでいると思い込んでいた。

さて、実際の upgrade-mage の実行ですが以下のようなコマンドになります。

# upgrade-image tftp://xxx.xxx.xxx.xxx/ArubaInstant_TARGETNAME_v.v.v.v_bbbbb

「tftp:」は「TFTP」を利用する場合ですので、適宜「ftp:」や「http:」に置き換えてください。
「xxx.xxx.xxx.xxx」はTFTP サーバーの IP アドレスです。今回の例では作業用 PC と直結ですので
作業用 PC の IP アドレスを指定して実行しました。
「ArubaInstant_TARGETNAME_v.v.v.v_bbbbb」が Firmware ファイルのファイル名です。

「TARGETNAME」はどの AP 用かを示すキーワードなのですが、「AP-530」シリーズなら「Scorpio」
「AP-570」シリーズなら「Draco」など名前が付けられています。
「v.v.v.v」は「8.7.1.10」などバージョン番号を示します。
「bbbbb」も「84660」など番号が付けられています。

上記実行すると、以下のような応答があります。

 Upgrade is triggered.
 Please type "show upgrade" to get the result.
 Will automatically reboot when done.

「upgrade-image」コマンドは Firmware 更新完了後、APが自動的に再起動します。
※ 自動再起動しないコマンドもありますが、更新を反映するには再起動が必要です。

更新の進捗を確認する

更新完了すると自動再起動するのだから、再起動するまでほっとけばいいんじゃないのかと思うのですが、
現在状況の確認をすることをお勧めします。
私を同じ失敗をしないためにも、、、

更新状況は以下のコマンドで確認できます。

# show upgrade

 Mac                IP Address      Seed AP  AP Class  Status       Image Info
 ---                ----------      -------  --------  ------       ----------
 MM:MM:MM:MM:MM:MM  xxx.xxx.xxx.xxx  Yes   TARGETNAME  downloading  tftp://xxx.xxx.xxx.xxx/ArubaInstant_TARGETNAME_v.v.v.v_bbbbb
 Auto reboot           :enable
 Use external URL      :enable
 Conductor wait Time   :??? secs ? count
 Switch Partition      :enable
 Upgrade in process    :Yes
 UAP convert process   :No

時間を空けて何度か「show upgrade」を実行し、「Status」、「Upgrade in process」の値を確認します。

StatusUpgrade in process説明
downloadingYes更新プロセス中で、Firmware ダウンロードしているはず(成否不明)
image-okNoupgrade-image 実施後のこのステータスは Firmware ダウンロード失敗して処理中断されている
download-doneYesFirmware のダウンロード成功していて、ファイル確認中
upgradingYesダウンロードした Firmware に更新適用中
状態確認表

「upgrade-image」実行直後は、downloading と表示されます。しかしこのダウンロードが成功しているかどうかは特に示されません。
「download-done」にならず、「image-ok」となり、Upgrade in process が「No」の場合、ダウンロード失敗により更新処理が中止されています。

「download-done」になれば、時期に「upgrading」に進展し、自動的に再起動されて更新が完了します。

現在バージョンの確認

以下のコマンドで確認します。

# show version
 Aruba Operating System Software.
 ArubaOS (MODEL: XXX), Version v.v.v.v

更新を試みたバージョンが表示されていれば成功です。

なんといいますか、やはり Web UI で更新操作したいですね。