komeの備忘録

東大院卒外資ITエンジニアの技術ブログ

Cisco Aironet 2800シリーズ Mobility Expressのバージョンを8.5から8.8にアップデートしてみた

はじめに

タイトルのとおりであるが、普通に8.5から8.8にアップデートしようとしたらいろいろ詰まったので、解決した話。
なお今回は、スクショ等は一切ない。頑張って解読しましょう。

アップデートの手法

APの管理画面に入ると、管理タブの中に、ソフトウェアアップデートの項目が存在する。
ソフトウェアアップデートではその方式を、HTTP、TFTP、Cisco.comの中から選択できる。Cisco.comはよくわからなかったので(笑)今回は最初の2つのどちらかを使おうとした。

HTTP

HTTPは、要するにHTTP通信を使ってローカルにあるソフトウェアアップデートのイメージファイルをAPに直接送りつけてしまおう!という話である。
実際にバージョンが8.5のときに、事前に入手した8.8のイメージファイルを指定してアップロードしてみた。上部のあたりにアップロードの進捗が%単位で表示してくれる仕組みになっていたが、順調にアップロードして100%になった!と思ったところで突然のTransfer failed!と出てきてしまった。
よくわからないので、とりあえずHTTPでの伝送を諦めてTFTPでやってみることにした。
※ちなみにイメージファイルのバージョンは、2800シリーズの場合はap3g3を指定しましょう。

TFTP

そもそもTFTPってなんぞや!と思いつつTFTPに関してまずは調査してみた。

簡潔にいうとFTPの仲間で、Trivial File Transfer Protocolの略らしい。FTPとの違いは、FTPはファイル転送にTCPを使っているが、TFTPはUDPを使用していること、またFTPはパスワードなどの認証があるが、TFTPはパスワード認証などはなく、IPアドレスとパスを指定するだけでダウンロードできてしまうことである。ちなみにTFTPはUDPを使うということだが、信頼性に関してはアプリケーション層で担保しているらしい。
詳しくは以下のリンクにまとまっている。RFCも合わせて貼り付ける。
www.infraexpert.com
RFC 1350 - The TFTP Protocol (Revision 2)

  • サーバのセットアップ
    APと同じセグメント内に、自分で頑張ってTFTPサーバを用意する。今回はサーバをラズパイと仮定し、IPアドレスは192.168.0.1とする。
    TFTPのセットアップに関しては、debian系であれば、$ sudo apt install tftpとかでぱぱっと入る。
    TFTPサーバのマウントされるディレクトリは、/srv/tftp/以下となる。なので、今回はこの中にアップデートされるイメージファイルを設置するためのディレクトリを掘る。
    明示的にわかり易い名前にするため、今回はこの中に8.8というディレクトリを作成した。
    ディレクトリの中には、先ほど紹介した、ap3g3のイメージファイルと、おそらくap3g3を入手したときにセットでついてくるであろう、version.infoを配置する。

  • APのセットアップ
    先程のHTTPのアップデートと同様に、HTTPではなく、TFTPを選択する。
    TFTPを選択したら、IPアドレスにラズパイのIPアドレスである192.168.0.1を、パスには8.8と入力する。パスに関しては、サーバ内の/srv/tftp/をルートとしてクライアントには見えるため、/srv/tftp/を起点とした相対パスを入力することとなっている。
    これらを設定したら、自動再起動にチェックを入れて、適用(保存)、更新をクリックする。
    再起動が終了したら、順調に行けばアップデートは完了しているはずだった。

Image signing verification failure(-2)

シリアルケーブルをAPに接続して、起動ログを眺めていたら、次のような一文が現れた。

Image signing verification failure(-2)

ググってもほとんど対処法が出てこない。ワロッタ。
なんかの理由でap3g3のイメージファイルの署名が検証できていならしい。
手順は間違ってないはずだから、他の方法を考えることにした。

バージョン8.6を経由する

www.cisco.com
この辺を見てたら、次の一文があった。

一部のインスタンスでは、コントローラを中間リリースにアップグレードしてから最新のソフトウェア リリースにアップグレードする必要があります。

コントローラではないが、直接8.8ではなく、間のバージョンを経由することにする。
ということで、先程の8.8をTFTPでアップデートしようとした手順を真似して、8.5を8.6にアップデートしてみた。
※先程のやり方で、適宜8.8を8.6に読み替えてください。イメージファイルは頑張って探してきてください。

これは無事にできてしまった。

8.6->8.8をアップデートする

これも同様にやったらぱぱっとできてしまった。

まとめ

8.5->8.8のアップデートは直接できない(署名の検証に失敗する)
8.5から8.8にアップデートする際は、最初に8.5を8.6にアップデートし、その後8.8にしましょう。

参考にしたサイト

community.cisco.com ワイヤレス LAN コントローラ(WLC)のソフトウェア アップグレード - Cisco

(C) komee.org