スイッチ : Cisco Catalyst 6500 シリーズ スイッチ

Catalyst 6500/6000 スイッチの ARP あるいは CAM テーブルの問題のトラブルシューティング

2010 年 6 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2009 年 10 月 27 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
背景説明
ARP や CAM に関する問題のトラブルシューティング
      分散スイッチングでのダイナミック MAC アドレスの喪失
      一定間隔での CEF によるパケット廃棄
      スイッチによるすべてゼロの MAC アドレスの CAM テーブルでのフィルタリング
      ネットワークで 5 分おきに発生するユニキャスト フラッディング
      ハイブリッド CatOS での ARP の問題
      CAM テーブル ルックアップ中の EARL-2-EARL4LOOKUPRAMERROR エラー
      スーパーバイザのスイッチオーバー後のスタティック CAM エントリの消失
      %ACL-5-TCAMFULL:acl engine TCAM テーブルに空きがない
      Catalyst 6500 シリーズ スイッチで MSFC が ARP 要求に応答しない場合に発生する ping の問題
      MAC アドレス テーブルの複数のエントリ
      Microsoft Load Balancing で使用される仮想 IP アドレスが到達不能
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、Catalyst 6500/6000 スイッチでの Address Resolution Protocol(ARP; アドレス解決プロトコル)または Content Addressable Memory(CAM)テーブル関連の問題のトラブルシューティングを行う方法を紹介します。



前提条件

要件

このドキュメントに関する特別な要件はありません。



使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアに限定されるものではありません。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



背景説明

Catalyst スイッチでは、レイヤ 2 スイッチングやマルチレイヤ スイッチング(MLS)用に準備された数タイプのテーブルが維持管理されており、これらを高速メモリに保存することにより、フレームやパケット内の多数のフィールドを並行して比較できます。

  • ARP:IP アドレスを MAC アドレスにマッピングして、レイヤ 2 ブロードキャスト ドメイン内での IP 通信を提供します。たとえば、Host B から Host A に情報を送信する場合に、Host B の ARP キャッシュに Host A の MAC アドレスがないとします。Host B は、Host A の IP アドレスに関連付けられた MAC アドレスを取得するためにブロードキャスト ドメイン内のすべてのホスト用にブロードキャスト メッセージを生成します。ブロードキャスト ドメイン内のすべてのホストは ARP 要求を受信し、Host A だけが MAC アドレスで応答します。

  • CAM:レイヤ 2 スイッチング用の CAM テ−ブルは Catalyst スイッチの全モデルで使用されています。フレームがスイッチ ポートに到着すると、送信元の MAC アドレスが認識され CAM テーブルに記録されます。このテーブルには、到着ポートと VLAN もタイムスタンプとともに記録されます。あるスイッチ ポートで認識された MAC アドレスが他のポートに移動した場合は、一番後で到着したポートでの MAC アドレスとタイムスタンプが記録されます。このため、前回のエントリは削除されます。テーブル内の既存の MAC アドレスが正しい到着ポートのものであった場合は、そのタイムスタンプだけがアップデートされます。

  • Ternary Content Addressable Memory(TCAM):マルチレイヤ スイッチングでは、マッチング、フィルタリング、または制御固有のトラフィックなど、従来のルーティングでは Access Control Lists(ACL; アクセス コントロール リスト)によって提供されていたすべてのプロセスが、ハードウェアで実装されます。TCAM により、エントリ アクセス リストによるパケットの評価が 1 回のテーブル ルックアップでできるようになります。ほとんどのスイッチでは TCAM が複数装備されており、インバウンドとアウトバウンド両方のセキュリティ、および QoS ACL の同時評価が可能です。さらに、レイヤ 2 やレイヤ 3 の転送デシジョンが包括的に並行して行えます。



ARP や CAM に関する問題のトラブルシューティング

分散スイッチングでのダイナミック MAC アドレスの喪失

分散スイッチングでは、それぞれの Distributed Feature Card(DFC)は自身の CAM テーブルを維持する役割を果たします。これは、特定のエントリに一致している CAM エージングとトラフィックに応じて、各 DFC が MAC アドレスを学習し、それらをエージングすることを意味します。分散スイッチングでは、スーパーバイザ エンジンが一定の期間、特定の MAC アドレスのトラフィックを参照しないことがよくあります。そのため、エントリは期限切れになる可能性があります。DFC(ライン モジュールに存在)および Policy Feature Card(PFC; ポリシー フィーチャ カード)(スーパーバイザ モジュールに存在)など、異なるエンジンの間で CAM テーブルの整合性を保つために、現在、次の 2 つのメカニズムがあります。

  • ファブリックへのフラッド(FF)

  • MAC 通知(MN)

MAC アドレス エントリが PFC でエージング アウトになる場合は、show mac-address address <MAC_Address> all コマンドを使用して、この MAC アドレスを保持する DFC または PFC を表示します。

その MAC アドレスのトラフィックがない場合でも DFC または PFC のエントリのエージング アウトを防ぐためには、MAC アドレスの同期をイネーブルにします。同期をイネーブルにするには、次のコマンドを発行します。


!--- これはグローバル設定コマンドであり、同期をイネーブルにするために使用されます。

Cat6K-IOS(config)#mac-address-table synchronize

!--- これは特権 EXEC コマンドであり、ダイナミック MAC アドレスをクリアするために使用されます。

Cat6K-IOS#clear mac-address-table dynamic

mac-address-table synchronize コマンドは、Cisco IOS® ソフトウェア リリース 12.2(18)SXE4 以降から利用できます。同期をイネーブルにした後でも、PFC または DFC に存在しないエントリが引き続き表示される場合があります。ただし、モジュールには、Ethernet Out of Band Channel(EOBC)を使用する他のモジュールからそのエントリを学習する方法があります。

注意 注意: mac-address-table synchronize コマンドは、ルーテッド MAC エントリを消去します。これを回避するには、mac-address-table aging-time 0 routed-mac グローバル コンフィギュレーション コマンドを使用して、ルーテッド MAC の消去をディセーブルにします。



一定間隔での CEF によるパケット廃棄

Cisco Express Forwarding(CEF; Cisco エクスプレス フォワーディング)はレイヤ 3 の IP スイッチング テクノロジーであり、特にダイナミックなトラフィック パターンを持つネットワークでは、他のスイッチング テクノロジーよりも優れたパフォーマンスを提供します。CEF では、Forwarding Information Base(FIB; 転送情報ベース)と呼ばれるデータ ストラクチャのテーブルと隣接関係テーブルが維持管理されます。FIB テーブルにはルーティング テーブルの情報がミラーリングされ、転送デシジョンのために使用されます。隣接関係テーブルには、ネクストホップ デバイス用に事前に計算されたリンクレイヤ ヘッダーが置かれています。FIB テーブルのエントリは、ネクストホップ インターフェイスに基づき、隣接関係テーブルのエントリにマッピングされています。隣接関係テーブルに必要な情報が置かれていないと、デバイスでは CEF によるパケットのスイッチングが実行できません。

CEF で正常動作期間中に一定間隔でパケットが廃棄される場合は、おそらく、隣接関係テーブルが定期的にクリアされることが原因です。これは ARP エントリのエージングにより発生します。隣接関係テーブルに必要なネクストホップ情報が置かれていない間は、パケットは CEF スイッチングされません。ARP エントリはデフォルトでは 4 時間おきにリフレッシュされますが、ARP タイムアウトの設定値が短すぎると CEF 動作が分断されます。

ARP キャッシュにエントリが存続する時間を変更するには、インターフェイス コンフィギュレーション モードで arp timeout コマンドを発行します。

この脆弱性についての詳細は、Cisco Bug ID CSCeb53542登録ユーザ専用)を参照してください。一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことをご了承ください。CEF の隣接性についての詳細は、『CEF との不完全な隣接関係のトラブルシューティング』を参照してください。



スイッチによるすべてゼロの MAC アドレスの CAM テーブルでのフィルタリング

スイッチでは、送信元 MAC アドレス 00-00-00-00-00-00 は CAM テーブルでフィルタリングされます。これは無効な送信元 MAC です。このエラーが発生すると、次のような出力が syslog に表示されます。

%SYS-4-P2_WARN:1/Filtering MAC address 00-00-00-00-00-00 on port 2/48 from host table

これらのメッセージは情報提供のためのもので、送信元 MAC アドレスが 00-00-00-00-00-00 のフレームが検出されたことを示しています。スイッチでは、これは CAM テーブルには加えられません。ただし、すべてゼロの MAC アドレスを送信元とするトラフィックの転送は行われます。

この問題を回避するためには、すべてゼロの送信元 MAC アドレスが設定されたフレームを生成する端末を特定します。通常は、次のデバイスのいずれかがこのようなフレームを送信しています。

  • トラフィック ジェネレータ(Spirent SmartBits など)

  • 特定のタイプのサーバ(ロードバランシング IBM WebSphere サーバなど)

  • 誤設定されたルータや端末(すべてゼロのブロードキャストを送信するデバイスなど)

  • 不良 NIC



ネットワークで 5 分おきに発生するユニキャスト フラッディング

LAN スイッチではレイヤ 2 テーブルと CAM テーブルのような転送テーブルが使用され、これにより、フレームの VLAN 番号と宛先 MAC アドレスに基づいて、特定のポートにトラフィックが誘導されます。着信 VLAN でフレームの宛先 MAC アドレスに対応するエントリがない場合、この(ユニキャスト)フレームは該当 VLAN 内のすべての転送ポートに送信されます。これによりフラッドが発生します。スイッチのレイヤ 2 転送テーブルにパケットの宛先 MAC アドレスがないことが、フラッドの元々の原因です。この場合、このパケットが受信されたポート以外の、VLAN 内のすべての転送ポートにパケットがフラッディングされます。

デフォルトの ARP テーブル エージング時間は 4 時間ですが、CAM でエントリが保持されるのは 5 分間だけです。宛先 MAC アドレスが CAM テーブルからエージング アウトされると、スイッチでは該当 VLAN 内のすべての転送ポートにフレームが送出されます。ユニキャスト フラッディングを防ぐには、CAM エージング タイマーを ARP タイムアウト同等以上にする必要があります。回避策として、問題が発生している VLAN の CAM エージング タイマー値を増やすために、次のコマンドのいずれかを発行して、ARP エージング時間に合せます。

注:Hot Standby Router Protocol(HSRP; ホットスタンバイ ルータ プロトコル)が稼働する Catalyst 環境では、CAM タイマーと ARP タイマーとの同期が保たれていることを確認するように推奨いたします。

スイッチド ネットワークでのユニキャスト パケットのフラッドの可能性のある原因と影響についての詳細は、『スイッチド キャンパス ネットワークにおけるユニキャスト フラッディング』を参照してください。



ハイブリッド CatOS での ARP の問題

ハイブリッド モードの場合、スーパーバイザ エンジンでは CatOS が稼働し、Multilayer Switch Feature Card(MSFC; マルチレイヤ スイッチ フィーチャ カード)では Cisco IOS が稼働します。CatOS はレイヤ 2 で動作し、VLAN、MAC アドレスおよびポート番号情報を保持するために CAM アドレス テーブルを構築します。MSFC の Cisco IOS はレイヤ 3 で動作し、IP アドレスから MAC アドレスへの解決を維持するために ARP テーブルを構築します。プリンタやサーバなどのデバイスの IP アドレスを変更すると、その新しい IP アドレスに ping できない可能性があります。ただし、同じ VLAN からは新しい IP アドレスに ping できます。これは MSFC での ARP 問題に関連している可能性があります。

次の回避策は、問題を切り分けて解決するのに役立ちます。

  1. MSFC の ARP テーブルをクリアします。

    MSFC2#clear arp int vlan 40
    
  2. ARP タイムアウト値を確認します。デフォルト値は、4 時間です。VLAN の ARP タイムアウト値が高い場合は、デフォルト値または最適値にタイムアウト値を設定し直すことができます。

    MSFC2#show int vlan 40
    Vlan40 is up, line protocol is up
      Hardware is Cat6k RP Virtual Ethernet, address is 00d0.0050.33fc (bia 00d0.005
    0.33fc)
      Internet address is 40.40.40.3/24
      MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
      reliability 255/255, txload 1/255, rxload 1/255
      Encapsulation ARPA, loopback not set
      Keepalive not supported
      ARP type:ARPA, ARP Timeout 04:00:00
      Last input 00:00:00, output 00:01:44, output hang never
      Last clearing of "show interface" counters never
      Input queue:0/75/0/0 (size/max/drops/flushes);Total output drops: 0
    MSFC2#conf t
    Enter configuration commands, one per line.End with CNTL/Z.
    MSFC2(config)#int vlan 40
    MSFC2(config-if)#arp timeout ?
      <0-2147483>  Seconds
    
    MSFC2(config-if)#arp timeout 240
    
  3. MSFC をリロードします。

    MSFC2#write memory
    Building configuration...
    [OK]
    MSFC2#reload
    Proceed with reload?[confirm]
    Supervisor> (enable)


CAM テーブル ルックアップ中の EARL-2-EARL4LOOKUPRAMERROR エラー

この問題が発生した際の syslog のエラー出力例を、次に示します。

%EARL-2-EARL4LOOKUPRAMERROR:Address eac6, data 0-0-8000-0, count 8

これが表示されるのは、CAM テーブルのルックアップを行う際です。これは、メモリをアクセスする際のパリティ エラーにより発生しています。通常、このエラーが生成されるのは、CAM テーブルにアクセスするために show cam コマンドを発行する際です。show cam コマンドを発行すると、スイッチがリセットされる場合もあります。

%EARL-2-EARLLOOKUPRAMERROR:Address [hex], data [hex]-[hex]-[hex]-[hex], count [dec]

このエラー メッセージでは、ルックアップ RAM パリティ エラーが検出されたことが示されています。Address の [hex] フィールドで示されるのは、エラーが検出された転送テーブル内のアドレスです。data の [hex]-[hex]-[hex]-[hex] フィールドで示されるのは、パリティ エラーが生成された RAM データの word0、word1、word2、および word3 です。count の [dec] フィールドで示されるのは、パリティ エラーの合計数です。

これが単発で発生している場合は、このメッセージは重大なものではなく、停止状態に至る可能性はありません。このメッセージが連続して表示される場合、スイッチでは、CAM テーブルに新規エントリを追加する際に不良 DRAM セクターへの書き込みが試行されていることを示しています。この場合、その DRAM あるいはスーパーバイザ自体を交換する必要があります。



スーパーバイザのスイッチオーバー後のスタティック CAM エントリの消失

アクティブ側のスーパーバイザ エンジンで設定されたスタティック CAM エントリは、ファースト スイッチオーバー後に消失します。この問題の回避策として、ファースト スイッチオーバー後に CAM エントリを再設定する必要があります。

この脆弱性についての詳細は、Cisco Bug ID CSCed87627登録ユーザ専用)および CSCee27955登録ユーザ専用)を参照してください。一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことをご了承ください。



%ACL-5-TCAMFULL:acl engine TCAM テーブルに空きがない

TCAM に空きがない状態で、新規 ACL を追加しようとするか、既存の ACL にアクセス コントロール エントリ(ACE)を追加しようとすると、コミットやマップ プロセスが失敗します。それよりも前の設定は、有効なままです。Router Access Control List(RACL)の場合、ACL はマルチレイヤ スイッチ フィーチャ カード(MSFC)上のソフトウェアで実行され、相応のパフォーマンス上の低下があります。

ハイブリッド ソフトウェアが稼働するスイッチでは、TCAM のパターンやマスク容量を超過する Virtual Local Area Network Access Control List(VACL)や QoS ACL ACE を設定すると、次のような syslog メッセージがコンソールに表示されます。

%ACL-5-TCAMFULL:acl engine TCAM table is full

スーパーバイザの IOS システム、あるいは、ハイブリッド システムでの MSFC では、TCAM の容量を超過する RACL ACE を設定すると、次のような syslog メッセージがコンソールに表示されます。

%FM-4-TCAM_ENTRY:Hardware TCAM entry capacity exceeded

スーパーバイザの IOS システム、あるいは、ハイブリッド システムでの MSFC では、ACL がハードウェアで実行される(ACTIVE)インターフェイスと ACL がソフトウェアで実行される(INACTIVE)インターフェイスの識別のために show fm summary コマンドを発行します。

この問題の回避策は、スイッチの設定から、使用されていない ACL や QoS を削除することです。詳細は、『Catalyst 6500 シリーズ スイッチでの ACL について』を参照してください。



Catalyst 6500 シリーズ スイッチで MSFC が ARP 要求に応答しない場合に発生する ping の問題

VLAN インターフェイスに ping を発行すると、その VLAN のソース IP を含む ARP 要求がデフォルト ルータ(MSFC)に送信されます。ただし、ルータは ARP 要求に応答せず、デバッグ ARP で次のエラー メッセージが表示されます。

IP ARP req filtered src [ip-address] [mac-address] dst [ip-address] 
[mac-address] wrong cable, interface-id

各 ARP データグラムでは、宛先 IP アドレスがローカル ホスト アドレスと一致しない場合、ARP 応答は廃棄されます。ソース IP アドレスが同じサブネットにない場合、ARP 要求は廃棄されます。複数のサブネットが同じケーブル上で共存できるまれなケースをサポートするには、このテストがコンフィギュレーション パラメータによって上書きされることが望ましいと言えます。

ARP 応答は、宛先プロトコルの IP アドレスがローカル ホストから到達可能であることがルーティング アルゴリズムによって判定された場合にだけ生成され、ネクスト ホップは同じインターフェイスを経由しません。ローカル ホストがゲートウェイとして機能する場合、宛先への ARP 応答は同じサブネット内に存在しない可能性があります。これは、ARP 要求の廃棄が正当であることを示しています。

これは、ARP 要求のソース IP アドレスが ARP のターゲット IP アドレスとは異なるサブネット上にあるため、Catalyst 6500 がすべての ARP 要求に応答しないように設定することによって解決できます。したがって、MSFC/Router は ARP が同じレイヤ 2 ドメインに残らなかったと判断し、間違ったケーブル タイプを示します。つまり、ARP の送信元と宛先が同じレイヤ 2 ドメインに属さない場合は、間違ったケーブルのデバッグ メッセージが生成されます。このシナリオで ARP が正常に機能するためには、回避策としてスタティック ルートを使用して、宛先プロトコル IP に到達できるようにする必要があります。



MAC アドレス テーブルの複数のエントリ

MAC アドレス テーブル内の 2 つのエントリは、MAC アドレスに関する情報を示します。

Cat6K#show mac-address-table int gi 6/11
Displaying entries from Line card 6:

Legend: * - primary entry
       age - seconds since last seen
       n/a - not available

  vlan   mac address     type    learn     age              ports
------+----------------+--------+-----+----------+--------------------------
[FE 1]:
*  100  0011.857c.4d10   dynamic  Yes          0   Gi6/11
[FE 2]:
*  100  0011.857c.4d10   dynamic  Yes         95   Gi6/11


Cat6K#show module 6
Mod Ports Card Type                              Model              Serial No.
--- ----- -------------------------------------- ------------------ -----------
  6   48  CEF720 48 port 10/100/1000mb Ethernet  WS-X6748-GE-TX     SADxxxxxxxx

Mod MAC addresses                       Hw    Fw           Sw           Status
--- ---------------------------------- ------ ------------ ------------ -------
  6  001d.45fd.xx4a to 001d.45fd.xx79   2.6   12.2(14r)S5  12.2(18)SXF8 Ok

Mod  Sub-Module                  Model              Serial       Hw     Status
---- --------------------------- ------------------ ----------- ------- -------
  6  Distributed Forwarding Card WS-F6700-DFC3B     SALxxxxxxxx  4.6    Ok

Mod  Online Diag Status
---- -------------------
  6  Pass

2 つのレイヤ 2 フォワーディング ルックアップ エンジンは、DFC 環境に存在します。CEF720/dCEF720 アーキテクチャのラインカード上の同じポートで、FE1 と FE2 が同じ MAC アドレスを学習することは、dCEF 環境では一般的です。



Microsoft Load Balancing で使用される仮想 IP アドレスが到達不能

Cisco ルータでは、各仮想 IP アドレスに対する Address Resolution Protocol(ARP; アドレス解決プロトコル)が必要です。ネットワーク ロード バランシングでは、パケットの配信にレベル 2 マルチキャストが使用されます。これに対して、Cisco の RFC 実装でマルチキャストが使用されるのは、IP マルチキャストでだけです。そのため、ルータでマルチキャスト IP アドレスが認識されない場合、ARP エントリが自動的に作成されることはなく、ルータに ARP エントリを手動で追加する必要があります。

通常、ユニキャスト IP アドレス(クラスタの仮想アドレス)からマルチキャスト MAC アドレス解決が行われた場合、シスコのデバイスでは ARP テーブルにマルチキャスト MAC アドレス(クラスタの仮想 MAC アドレス)が置かれることはありません。この問題を解決するには、ユニキャスト仮想 IP アドレスからマルチキャスト MAC アドレスへのスタティック マッピングが必要です。

詳細は、『Microsoft Network Load Balancing のための Catalyst スイッチの設定例』の「マルチキャスト モード」セクションを参照してください。




関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報




Document ID: 71079