はじめに
このドキュメントでは、Cisco IOS(R)アクセスポイント(AP)で報告されるフラッシュ破損の問題を処理する方法について説明します。
前提条件
要件
次の項目に関する基本知識が推奨されます。
- AireOSワイヤレスLANコントローラ(WLC)
- Lightweight AP(LAP)
- Python 2.7 (それ以降)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco Aironet 1040、1140、1250、1260、1600、1700、2600、2700、3500、3600、3700、700、AP801、およびAP802シリーズ屋内アクセスポイント
- Cisco Aironet 1520(1522、1524)、1530、1550(1552)、1570、およびIndustrial Wireless 3700シリーズ屋外および産業用ワイヤレスアクセスポイント
注:この問題に関しては、フラッシュHWタイプが原因で、他のAPタイプと比較して、1700/2700/3700および2600/3600などのWave1 APモデルの方がはるかに広く普及しています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
FN70330:フラッシュの破損の問題が原因で取り残されたCisco IOS APと同様に、通常動作中のAPでは多数のソフトウェアのバグが発生するため、一部のCisco IOS APのフラッシュファイルシステムは、時間の経過とともに破損する可能性があります。これは、特にWLCへのアップグレードが実行された後に発生しますが、このシナリオに限定されるとは限りません。
APは動作し、クライアントにサービスを提供しますが、この問題状態は簡単には検出できません。
解決方法
WLCアップグレード前の修正
ネットワーク上の該当APを識別し、アップグレードの前に修正するため。 WLANポーラーを実行する必要があります。
注意:アップグレードする前に、このドキュメント全体をお読みください。
WLANポーラロジック
スクリプトを実行するたびに、APフラッシュがアクセス可能かどうかを確認します。
アクセス可能な場合は、コマンドfsck flash:
問題がなければ、次のAPに進みます。
- それ以外の場合は、コマンドを4回まで繰り返します。障害が発生した場合、スクリプトは最終レポートでこれを報告し、このAPを回復する資格があります。
アクセスできない場合
- スクリプトは最終レポートでAPにフラグを付け、このAPは回復可能です。
アクセス可能な場合、APは重要なファイルのMD5値をチェックできます。
すべての値に問題がなければ、次のAPに移動します。
- それ以外の場合、スクリプトは最終レポートでこれを報告でき、このAPは回復可能です。
スクリプトは3回実行する必要があります。
- RUN
- このスクリプトは、AP上のすべてのファイルのMD5チェックサム値に基づいてMD5データベースを構築します。特定のファイルの最後のMD5値は、WLC上の同じAPファミリでより多くのヒットを持つ値です。
- RUN
- スクリプトは、MD5チェックサム値とデータベースを比較します。値が一致する場合、ファイルはokです。一致しない場合、3回目の実行時に回復するためにAPにフラグが付けられます。
- RUN
- スクリプトトリガーコマンドtest capwap image capwapは、前の2つの手順でフラグが付けられたAPに対してのみ実行します。
注:この回復方法では、イメージがダウンロードされてインストールされると、APがリロードします。必ずメンテナンスウィンドウで実行してください。
WLANポーラーのインストールと準備
1. WLANポーラーツールをダウンロードします。
注:前のリンクから最新バージョンのWLAN Pollerツールをダウンロードする場合は、ステップ2と3を省略できます。このバージョンでは、WLAN Pollerツールに必要なすべてのコンポーネントを自動インストールできます。古いバージョン(.rar)のWLANポーラーを使用している場合は、次のステップ2および3を実行します。
2. WLAN Pollerファイルを保存する特定のフォルダにファイルを移動します。
3. スクリプトのインストール方法については、次のリンクを参照してください。
Windows 10マシンの詳細な手順については、ここをクリックしてください。
MAC OSのステップバイステップガイドについては、ここをクリックしてください。
4. config.iniファイルを準備します。
インストールが完了すると、ファイルが生成されます。config.iniファイルを編集する必要があります。
WLC/AP接続モードを指定します。
; config global mode for WLC and AP connection: "ssh" or "telnet"
mode: ssh
ap_mode: ssh
WLC/APクレデンシャルを指定します。
; set global WLC credentials
wlc_user: <wlc_user>
wlc_pasw: <wlc_pasw>
; set global AP credentials
ap_user: <ap_user>
ap_pasw: <ap_pasw>
ap_enable: <ap_enable>
フラッシュチェック/リカバリには、次のオプションがあります。
該当するAPを識別するには、次のコマンドを使用します。
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: False
APを回復するには、次のコマンドを使用します。
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: True
WLC情報の指定
この例では、WLC名は2504-WLCです。この情報は、WLCモニタページで確認できます。
; WLC sections must be named as [WLC-<wlcname>]
[WLC-2504-Rafis]
active: True
ipaddr: <wlc-ip-addr>
複数のWLCを追加できます。これを行うには、新しいWLC情報を使用して前の構文をコピー/ペーストします。
注:APリストを指定する必要はありません。このスクリプトは、WLCからAPを選択します。
WLANポーラーの実行
コンフィギュレーションファイルが作成されたディレクトリから(前のセクション、ステップ3)。wlanpoller --cli-loggingコマンドを使用します。
スクリプトが完了すると、次のサマリーが表示されます。
============================================================
Summary
============================================================
Total APs : 1
Processed APs : 1
Failed APs : 0
============================================================
Errors
============================================================
AP MD5 checksum mismatch : 2
AP FSCK recover : 1
============================================================
注:影響を受けるAPの数を正確に把握するには、スクリプトを2回実行する必要があることに注意してください。
WLANポーラー出力
スクリプトが実行されたパス。これらのファイルが作成されます。
- ap_md5_db.json: MD5データベース
- フォルダログ
- これは、端末のWLANポーラーによるすべての出力表示を保存します。
- フォルダデータ
- レポートは<year> / <month> / <day>のパスに分割されます。
ファイル:<timestamp>_ap_fs.csv:APで実行されたチェックとその結果の概要。
列の説明
- ap_name:アクセスポイントの名前。
- ap_type:APモデル。
- ap_uptime:APの稼働時間(日)。
- ap_ios_ver:Cisco IOSバージョン。
- fs_free_bytes:フラッシュファイルシステム内の空きバイト数。
- flash_issue:フラッシュの破損が確認された場合にTrueを返します。
- fs_zero_size:フラッシュのハングが検出された場合、ファイルシステムに「 – 」 – (show file system – コマンド)と表示してtrueを返します。
- fsck_fail:ファイルシステムチェックが失敗した場合はTrue。- (fsck flash: – コマンド)。
- fsck_busy:がflash fsckを実行するときに、真のデバイスまたはリソースがビジーになります。
- fsck_recovered: fsckでエラーが発生したが、次のfsckで修正された場合にTrueになります。
- fsck_attempts:APを回復するためのfsckの試行回数(最大4)。
- md5_fail: md5の少なくとも1つのファイルがデータベースに格納されているファイルと異なる場合にTrueです。
- rcv_trigger:問題が検出され、回復が有効なときにAPがWLCからイメージをダウンロードしようとした場合にTrueになります。
File: <timestamp>_ap_md5.csv:(すべてのAP上の)すべてのファイルのMD5チェックサム値の詳細。
列の説明
- ap_name:アクセスポイントの名前。
- ap_type:APモデル。
- ap_uptime:APの稼働時間(日)。
- ファイル名:Cisco IOSイメージファイル名。
- md5_hash: filenameのmd5値。
- is_good: md5の値がdbに格納されている値と一致します。このファイルで誤ったmd5不一致が見つかりました。
- is_zero_bytes:md5checksumに基づいてfilenameに0バイトが含まれるため、fileが正しくない場合にTrueになります。
- md5_error:ファイル名にmd5を取得できなかった場合に、md5値を取得するエラーメッセージ。
注:WLANポーラー回復スクリプトで特定のAPを回復できず、そのAPにレポートで失敗のフラグが付いたままになるシナリオがあります。このようなシナリオでは、telnet/SSH/コンソールを使用してAP CLIに手動でAPを回復することを推奨します。このプロセスに関するサポートが必要な場合は、TAC SRを開いてください。WLANポーラーから生成されたすべての出力をケースに添付します。
孤立したAP
SSH/telnet接続の場合
次の手順を実行して、APの回復を試みることができます。
AP# debug capwap console cli
AP# debug capwap client no-reload
- 成功した場合はフラッシュをフォーマットし、次の手順に進むことができます。失敗した場合は終了します。
AP# format flash:
- リカバリイメージをロードします。リカバリイメージはここから入手できます。
archive download-sw /overwrite tftp://<IP address>/<file name>
- ロードされたリカバリイメージのMD5を確認します。問題がなければ、次の手順に進みます。
AP# verify /md5 flash:/<image directory>/<image file>
CLIの値と値は、シスコのWebページで比較できます。
- 新しくダウンロードしたリカバリイメージにブート変数を設定します。
AP#show boot
AP(config)#boot system flash:/RCV/RCV-image
AP Rommonステータスの場合
前と同じ方法を試すことができますが、bootコマンドを使用します。使用できるコマンドを次に示します。
ap: tftp_init
ap: ether_init
ap: flash_init
ap: format flash:
ap: set IP_ADDR <IP Address>
ap: set NETMASK <mask>
ap: set DEFAULT_ROUTER < default router >
ap: tar -xtract tftp://<IP address>/<file name> flash:
ap: set BOOT flash:/<file name>
ap: boot
SSH/Telnetできない
スイッチポートを何度かバウンスして、問題が解決するかどうかを確認します。
Windows 10にWLAN Pollerをインストールするためのステップバイステップガイド
注:最新バージョンのWLAN Pollerツールをダウンロードした場合は、このセクションをスキップできます。
- このリンクからPython 2.7.14をダウンロードしてインストールします。
- このリンクからC++ Compiler for Python for Windowsクライアントをダウンロードしてインストールします。
- インストールが完了したら、コントロールパネルの[システムの設定]で[システムの詳細設定]を選択します(すべてのWindowsターミナルが閉じていることを確認してください)。
- ポップアップ表示されるウィンドウで、Environment Variablesを選択します。
- ここで、System variablesからPath変数を選択し、Editをクリックします。
- そのウィンドウで、Python 2.7.14.0をインストールしたベースディレクトリとC:\<ベースディレクトリ>\Scriptsへのパスを追加します。これにより、ラップトップのコマンドラインでPythonコマンドが認識されます。Newをクリックして、パスを手動で追加します。
すべての設定ウィンドウを閉じ、ターミナル(コマンドプロンプト)があれば開きます。
- pipがインストールされているかどうかを確認し、新しい端末を開いてpip —versionと入力します。
もう1つのオプションは、C:\Python27\Scripts フォルダにpip、pip2、またはpip2.7という名前のファイルがあるかどうかを確認することです。
- 問題がなければ、「アップグレードpip、ステップ8」のセクションに進みます。
- エラーが発生した場合、またはフォルダ/ファイルが見つからない場合は、読み取りを続行します。
pipのインストール
- 端末を閉じ、次のリンクからpipをインストールします。
- ファイルget-pip.pyをダウンロードして保存します。 Webサイトで次の項目を確認します。
- get-pip-pyファイルをフォルダC:\Python27にコピーします。
注:Webサイトからコンテンツをコピー&ペーストする場合は、py.txt拡張子が付いていないことを確認してください。フォルダC:\Python27のディレクトリで確認してください。これが起こった場合は、端末からファイル名を変更してください。
次のコマンドを使用して、ファイルの名前を変更します。
- 同じフォルダC:\Python27で、python get-pip.pyを実行します。
- pip install —upgrade pipコマンドを使用して、PIPを最新バージョンにアップグレードします。
- 上記の手順では、必要なすべてのパケットをインストールできます。Windowsのコマンドラインを開き、.tar.gz WLANポーラーファイルを保存したディレクトリに移動します(cd <ディレクトリへのパス>を使用)。
- コマンドpip install wlanpoller-0.7.1.dev90_md5rcv.tar.gzを使用してスクリプトをインストールします。
- すべてのWLANポーラー情報を保存する新しいディレクトリを作成します。
- コマンドラインでそのディレクトリに移動し、コマンドwlanpoller —generate-configsを実行し、スクリプトの実行に必要な設定変数と設定ファイルを作成します。
config.iniファイルを続行するには、ここをクリックしてください。
MacBookにWLANポーラーをインストールするためのステップバイステップガイド
注:最新バージョンのWLAN Pollerツールをダウンロードした場合は、このセクションをスキップできます。
MAC OSにはすでにPythonがインストールされています。残りのパケットをインストールするには、次の手順を実行します。
- WLANポーラfile: cd <path>があるフォルダに移動します。
- 実行したら、sudo pip install wlanpoller-<version>.tar.gz コマンドを実行します。このためには、sudoパスワード(MACBook管理者パスワード)が必要です。
- 新しいディレクトリを作成して、スクリプトで作成できるすべてのファイルを整理します。
- mkdir <directory name>
- cd <ディレクトリ名>
- 次のコマンドwlanpoller —generate-configsを実行して、スクリプトの実行に必要なすべてのディレクトリまたはファイルをスクリプトで準備します。
config.iniファイルを続行するには、ここをクリックしてください。
WLANポーラーの制限
- WLAN Pollerは、Windows 10 64ビットシステムおよびApple MacBookバージョン10.11以降でのみサポートがテストされています。
- 新しいバージョンのWLANPollerツールを使用しない場合は、古いバージョンのPython 2.7バージョンだけがサポートされます。
- AP名に特殊文字が含まれている場合、スクリプトの実行中に nextエラーが表示されます。
- 問題を解決するには、AP名から特殊文字を手動で削除する必要があります。
関連情報