はじめに
このドキュメントでは、Cisco IOSアクセスポイント(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、および産業用ワイヤレス3700シリーズ屋外および産業用ワイヤレスアクセスポイント
注:この問題に関して、Wave1 APモデル(1700/2700/3700および2600/3600など)では、フラッシュHWタイプが原因で、他の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 Pollerツールをダウンロードします。
注:前のリンクから最新バージョンのWLAN Pollerツールをダウンロードする場合は、ステップ2と3をスキップできます。このバージョンでは、WLAN Pollerツールに必要なすべてのコンポーネントを自動インストールできます。古いバージョン(.rar)のWLAN Pollerを使用している場合は、次の手順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 Monitorページで確認できます。
; WLC sections must be named as [WLC-
]
[WLC-2504-Rafis]
active: True
ipaddr:
複数の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データベース
- フォルダログ
- WLCは、WLANポーラーによるすべての出力表示を端末に保存します。
- フォルダデータ
- レポートは<year> / <month> / <day>のパスに分けられます。
ファイル: <timestamp>_ap_fs.csv:APで実行されたチェックとその結果の要約。
列の説明
- ap_name:APの名前。
- ap_type:APモデル。
- ap_uptime:APの稼働時間(日数)。
- ap_ios_ver:Cisco IOSバージョン。
- fs_free_bytes:フラッシュファイルシステムの空きバイト数。
- flash_issue:フラッシュの破損が確認された場合にTrueを返します。
- fs_zero_size:フラッシュハングが検出された場合にTrueを返します。ファイルシステムには「 – 」が表示されます(show file system – コマンド)。
- fsck_fail:ファイルシステムチェックが失敗した場合にTrueを返します。- (fsck flash: – コマンド)。
- fsck_busy:がフラッシュfsckを実行する場合に真のデバイスまたはリソースがビジーになります。
- fsck_recovered: fsckでエラーが発生しましたが、次のfsckで修正された場合にTrueになります。
- fsck_attempts:APを回復するためのfsckの試行回数(最大4)。
- md5_fail: md5の少なくとも1つのファイルがデータベースに格納されているファイルと異なる場合にTrueです。
- rcv_trigger:問題が検出され、回復がイネーブルになったときにAPがWLCからイメージをダウンロードしようとした場合にTrueになります。
ファイル: <timestamp>_ap_md5.csvすべてのファイル(すべてのAP上)のMD5チェックサム値の詳細。
列の説明
- ap_name:APの名前。
- ap_type:APモデル。
- ap_uptime:APの稼働時間(日数)。
- filename: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 Pollerから生成されたすべての出力をケースに添付します。
孤立した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クライアントをダウンロードしてインストールします。
- インストールが完了したら、コントロールパネルのシステム設定でAdvanced System Settingsを選択します(すべてのWindows端末が閉じていることを確認してください)。
- ポップアップ表示されたウィンドウで、Environment Variablesを選択します。
- ここで、System variablesからPath変数を選択し、Editをクリックします。
- そのウィンドウで、Python 2.7.14.0をインストールしたベースディレクトリへのパスとC:\<Base directory>\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 Pollerファイルを保存したディレクトリに移動します(cd <ディレクトリへのパス>を使用)。
- コマンドpip install wlanpoller-0.7.1.dev90_md5rcv.tar.gzを使用してスクリプトをインストールします。
- すべてのWLANポーラー情報を保存する新しいディレクトリを作成します。
- コマンドラインでそのディレクトリに移動し、コマンドwlanpoller —generate-configsを実行して、スクリプトの実行に必要な設定変数と設定ファイルを作成します。
config.iniファイルを続行するには、ここをクリックしてください。
MacBookにWLAN Pollerをインストールするためのステップバイステップガイド
注:最新バージョンのWLAN Pollerツールをダウンロードする場合は、このセクションをスキップできます。
MAC OSにはすでにPythonがインストールされています。残りのパケットをインストールするには、次の手順を実行します。
- WLANポーラーfile: cd <path>があるフォルダに移動します。
- 次に、sudo pip install wlanpoller-<バージョン>.tar.gz コマンドを実行します。このためには、sudoパスワード(MACBook Adminパスワード)が必要です。
- 新しいディレクトリを作成して、スクリプトで作成できるすべてのファイルを整理します。
- mkdir <directory name>
- cd <ディレクトリ名>
- 次のコマンドwlanpoller —generate-configsを実行して、スクリプトの実行に必要なすべてのディレクトリまたはファイルをスクリプトで準備します。
config.iniファイルを続行するには、ここをクリックしてください。
WLANポーラーの制限
- WLAN Pollerは、Windows 10 64ビットシステムおよびApple MacBookバージョン10.11以降でのみサポートがテストされています。
- 新しいバージョンのWLANPollerツールを使用しない場合、古いバージョンではPython 2.7バージョンのみがサポートされます。
- AP名に次のような特殊文字が含まれている場合 スクリプトの実行中に次のエラーが表示されます。
- 問題を解決するには、AP名から特殊文字を手動で削除する必要があります。
関連情報