IP : IP スイッチング

CEF との不完全な隣接関係のトラブルシューティング

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

目次

概要
前提条件
     要件
     使用するコンポーネント
     表記法
隣接関係とは何か
隣接関係の検出
不完全な隣接関係の原因
     ARP エントリがない
     不完全というマーキングをされた後、隣接関係を検出できない
既知の問題
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書では、Cisco Express Forwarding(CEF)がインターフェイス上でイネーブルになっている場合、show ip cef adjacency コマンドの出力に見られるような、不完全な隣接関係のトラブルシューティングに関するヒントを示します。

router#show ip cef adjacency serial 4/0/1 10.10.78.69 detail 
  IP Distributed CEF with switching (Table Version 2707655) 
     130703 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 39517 
     130703 leaves, 9081 nodes, 26227536 bytes, 2685255 inserts, 2554552 invalidations 
     949 load sharing elements, 318864 bytes, 71787 references 
     universal per-destination load sharing algorithm, id 9E3B1A95 
     2 CEF resets, 23810 revisions of existing leaves  
     Resolution Timer: Exponential (currently 1s, peak 16s)
     22322 in-place/0 aborted modifications 
     refcounts:  2175265 leaf, 1972988 node 
  
     Table epoch: 0 (17 entries at this epoch)
  
  Adjacency Table has 112 adjacencies 
     4 IPv4 incomplete adjacencies
  

前提条件

要件

この文書の読者は次の項目に関する知識が必要です。

  • CEF

  • CEF の設定

使用するコンポーネント

この文書の情報は、Cisco IOS(R) ソフトウェア リリース 12.3(3) に基づいています。

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。この文書で使用するすべてのデバイスは、クリアな状態(デフォルト)から設定作業を始めています。対象のネットワークが実稼動中である場合には、すべてのコマンドによる潜在的な影響について確実に理解しておく必要があります。

表記法

文書表記の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

隣接関係とは何か

CEF とは、着信インターフェイスから発信インターフェイスへパケットを転送するためにルータが使用する超高速切り替えメカニズムです。 CEF は、2 セットのデータ構造(テーブル)を使用します。このデータ構造はルータのメモリに格納されます。

  • Forwarding Information Base(FIB; 転送情報ベース)- 共通する International Organization for Standardization(ISO; 国際標準化機構)の使用から取得された FIB は、転送を決定するために使用される情報データベースです。 FIB はコンセプト的にはルーティング テーブルやルート キャッシュに似ていますが、実装面ではルーティング テーブルと大きく異なっています。

  • 隣接関係 - ネットワーク内の 2 つのノードが、リンク層をはさんで 1 ホップで相互に到達できれば、隣接しているとみなされます。 たとえばパケットがルータのインターフェイスのいずれかに到達すると、ルータはデータ リンク層のフレーミングを取り除き、中のパケットをネットワーク層に渡します。 ネットワーク層では、パケットの送信先アドレスが調べられます。 送信先アドレスがルータのインターフェイスのアドレス、またはすべてのホストのブロードキャスト アドレスでない場合、このパケットをルーティングする必要があります。

    データベースの各ルート エントリは、最低でも次の 2 つの項目を含んでいる必要があります。

    • 着信先アドレス - ルータがアクセスできるネットワークのアドレスです。 ルータでは、同じアドレスに複数のルートが存在している場合があります。

    • 送信先へのポインタ - このポインタは、送信先のネットワークがルータに直接接続されていることを示すか、送信先に対し、直接接続されているネットワーク上にある別のルータのアドレスを示します。 そのルータはネクスト ホップ ルータであり、着信先に 1 ホップ近づくルータです。 隣接関係とは、着信先へのポインタのことです。

次の例では、IP アドレス 172.16.81.98 を使って設定されたイーサネット インターフェイスを使用します。 シンプルなスタティック ルートは、すべての送信先を、IP アドレス 172.16.81.1 の隣接ルータ上のネクスト ホップ インターフェイスに向けます。

  1. show ip route コマンドを使うと、IP ルーティング テーブルの内容が表示されます。

    7500-98#show ip route
      Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP 
             D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
             N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 
             E1 - OSPF external type 1, E2 - OSPF external type 2 
             i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 
             ia - IS-IS inter area,  * - candidate default, U - per-user static route
             o - ODR, P - periodic downloaded static route 
      Gateway of last resort is 172.16.81.1 to network 0.0.0.0 
      
           172.16.0.0/24 is subnetted, 1 subnets 
      C       172.16.81.0 is directly connected, Ethernet0/0 
      S*   0.0.0.0/0 [1/0] via 172.16.81.1 
      
       !--- シンプルなデフォルト スタティック ルートは、すべての送信先を、
       !--- 172.16.81.1 というネクスト ホップ アドレスに向けます。
       
       
  2. show ip arp コマンドを使うと、Address Resolution Protocol(ARP)テーブルが表示されます。

    注: 「Hardware Addr」フィールド。 ARP テーブルは、ローカル インターフェイスとネクスト ホップ インターフェイスの各エントリを表示します。

    7500-98#show ip arp 
      Protocol  Address       Age (min)  Hardware Addr   Type   Interface 
      Internet  172.16.81.98         -   0030.71d3.1000  ARPA   Ethernet0/0 
      Internet  172.16.81.1          0   0060.471e.91d8  ARPA   Ethernet0/0
  3. show adjacency ethernet 0/0 detail コマンドと show adjacency ethernet 0/0 internal コマンドを使うと、隣接関係エントリの内容が表示されます。

    7500-98#show adjacency ethernet 0/0 detail
      Protocol Interface                 Address 
      IP       Ethernet0/0               172.16.81.1(7) 
                                         0 packets, 0 bytes 
                                         0060471E91D8003071D310000800  
                                         ARP        03:57:08 
                                         Epoch: 1					
      7500-98#show adjacency ethernet 0/0 internal
      Protocol Interface     Address 
      IP       Ethernet0/0   172.16.81.1(7) 
                             0 packets, 0 bytes 
                             0060471E91D8003071D310000800  
                             ARP        03:57:00
                             Epoch: 1
                             Fast adjacency enabled 
                             IP redirect enabled 
                             IP mtu 1500 (0x48000082) 
                             Fixup disabled 
                             Adjacency pointer 0x62515AC0, refCount 7 
      
                             Connection Id 0x0 
                             Bucket 236

    上記出力は、CEF では隣接関係は、特定のインターフェイスの IP アドレスのレイヤ 2 情報を保持する制御構造を指すことを示しています。 これには、送信インターフェイスのカプセル化プロトコルによって異なるリライト文字列が含まれます。 隣接関係は、ARP エントリの CEF に相当します。

次の表では、show adjacency internal コマンドの主要フィールドについて説明します。

フィールド

説明

172.16.81.1(7)

ネクスト ホップ インターフェイスの IP アドレス。 カッコ内の値は、「refCount」、つまり、この隣接関係が FIB エントリによってポイントされた回数を指します。 同じ値が、このエントリの後半にも表示されます。

0 packets, 0 bytes

ip cef accounting コマンドを使うと、パケット カウンタおよびバイト カウンタがイネーブルになります。

0060471E91D8003071D310000800
   

最初の 12 文字は、着信先ネクスト ホップ インターフェイスの MAC アドレスです。 次の 12 文字は、パケットの送信元インターフェイスの MAC アドレス(つまり、ローカル ルータの発信インターフェイス)を表します。 最後の 4 文字は、IP のよく知られているイーサタイプ値 0x0800(Advanced Research Projects Agency(ARPA)カプセル化を使用)を表します。

003071D310000800

パケットの送信元インターフェイスの、MAC アドレスおよび IP のよく知られているイーサタイプ値 0x0800(ARPA カプセル化を使用)(つまり、ローカル ルータの発信インターフェイス)。

ARP    03:57:00

ARP は、エントリの検出方法を示します。 タイプスタンプは、エントリがタイムアウトになるまでの期間を示します。

Fast adjacency enabled

FIB エントリは、複数のアクティブ パスにまたがってロードシェアリングが実行されていない場合、ネクスト ホップ インターフェイスの隣接関係をキャッシュします。 隣接関係が短時間で検索できれば、パケットの切り替えも迅速になります。

Adjacency pointer 0x62515AC0
 
refCount 7

ルータのメモリに現在格納されている隣接関係への参照数。 CEF テーブルに対応するエントリが 1 つずつあり、さらにさまざまな理由により、その他のエントリがいくつかあります(show adjacency コマンドを実行するコード用エントリなど)。

Connection Id 0x0
 
Bucket 236
 

隣接関係の検出

隣接関係は、ARP などのメカニズムによって検出された場合や、隣接関係を形成する BGP や OSPF などのルーティング プロトコルを使った場合、間接的な手動設定、またはダイナミックにテーブルに追加されます。 FIB によって隣接関係が作成されたにもかかわらずダイナミックに検出されていない場合、レイヤ 2 アドレッシング情報は通知されていないため、隣接関係は不完全と見なされます。 レイヤ 2 情報が通知されると、パケットはルート プロセッサに転送され、ARP によって隣接関係が決定されます。

ATM およびフレームリレー インターフェイスは、ポイントツーポイントまたはマルチポイントとして設定できます。 隣接関係のタイプ数は、この設定によって異なります。

  • ポイントツーポイント インターフェイス - インターフェイスに対して、単一の隣接関係を使用します。

  • マルチポイント インターフェイス - 各ホスト IP アドレスに対して、一意の隣接関係またはレイヤ 2 リライト構造を使用します。 隣接関係を完全なものにするための情報は、IP ARP、スタティック ATM、またはフレームリレー マップ ステートメント、および ATM とフレームリレーの inverse ARP から取得します。

    R4-4K#show adjacency serial 0 detail
      Protocol Interface                 Address 
      IP       Serial0                   140.108.1.1(25) 
                                         0 packets, 0 bytes 
                                         18410800 
                                         FR-MAP     never
                                         Epoch: 1
      IP       Serial0                   140.108.1.2(5) 
                                         0 packets, 0 bytes 
                                         18510800 
                                         FR-MAP     never
                                         Epoch: 1

ATM インターフェイスが 1 つのインターフェイスで複数の Permanent Virtual Circuit(PVC; 相手先固定回線)をサポートしている場合、 「incomplete」エラーが最長 1 分表示されることがありますが、それ以上表示されてはなりません。

注: 通常の隣接関係に加え、CEF は特別な処理を必要とする 5 種類の隣接関係もサポートしています。 これらのタイプについては、この文書の対象外であるため、『Cisco Express Forwarding Overview』の「Adjacency Types That Require Special Handling」のセクションで説明します。

不完全な隣接関係の原因

不完全な隣接関係の原因については、これまでに 2 つの原因が判明しています。

  • ルータがネクスト ホップ インターフェイスに対して ARP を正常に使用できない。

  • clear ip arp コマンドまたは clear adjacency コマンドを実行した後、ルータは隣接関係を不完全としてマーキングし、その後、エントリのクリアに失敗した。

不完全な隣接関係の症状には、ping テスト中のランダムなパケットのドロップも含まれています。 出力のドロップは、CEF が着信するパケットを CPU にパントする速度を抑え過ぎると発生します。 debug ip cef コマンドを使うと、不完全な隣接関係が原因で発生した CEF ドロップが表示されます。

router# 
   *Oct 11 17:08:03.275: CEF-Drop: 
  Stalled adjacency for 192.168.10.2 on Serial0/1/3 for 
  destination 192.168.11.1 
   *Oct 11 17:08:03.275: CEF-Drop: 
  Packet for 192.168.11.1 -- encapsulation 
   *Oct 11 17:08:05.307: CEF-Drop: 
  Stalled adjacency for 192.168.10.2 on Serial0/1/3 for 
  destination 192.168.11.1 
   *Oct 11 17:08:05.307: CEF-Drop: 
  Packet for 192.168.11.1 -- encapsulation 

また show cef drop コマンドを複数回実行すると、'Encap_fail' カウンタの増分値が確認できます。 詳細については、「show cef コマンド」を参照してください。

ARP エントリがない

CEF 送信先のプレフィックスに対して有効な隣接関係を特定できない場合、CEF は ARP を解決し、次に隣接関係を完全にするため、パケットを CPU にパントします。 ごくまれに、隣接関係が不完全な状態のまま持続することがあります。 たとえば ARP テーブルにすでに特定のホストがリストされている場合、このホストを処理レベルにパントしても ARP はトリガされません。

ARP エントリが存在するかどうかを特定することによって、この問題をトラブルシューティングできます。 次のコマンドを使って、特定の IP アドレスを特定します。

  • show arp

  • show adjacency

debug arp コマンドを使うと、ルータが ARP 要求を送信していることを確認できます。

router#ping 10.12.241.4 
  Type escape sequence to abort. 
  Sending 5, 100-byte ICMP Echos to 10.12.241.4, timeout is 2 seconds: 
  ..... 
  Success rate is 0 percent (0/5) 
  router# 
  .Aug 21 18:59:07.175 PDT: IP ARP: 
  creating incomplete entry for IP address:10.12.241.4 interface FastEthernet0/1 
  .Aug 21 18:59:07.177 PDT: IP ARP: sent req src 10.12.241.252 0006.529c.9801, 
  					dst 10.12.241.4 0000.0000.0000 FastEthernet0/1 
  .Aug 21 18:59:07.180 PDT: IP ARP throttled out the ARP Request for 10.12.241.4 
  .Aug 21 18:59:09.182 PDT: IP ARP: sent req src 10.12.241.252 0006.529c.9801, 
  					dst 10.12.241.4 0000.0000.0000 FastEthernet0/1 
  .Aug 21 18:59:09.183 PDT: 
  IP ARP throttled out the ARP Request for 10.12.241.4
  

ping 処理によって最初のパケットを送信しようとしたときに ARP エントリが認識されなかった場合、ping 処理によって ARP 要求が開始されます。 ping 処理によってパケットの送信が継続され、指定された待機期間が経過すると、パケットがドロップされます。 ARP 応答が受信され、バックグラウンド処理を使って ARP エントリが完了すると、ping 成功率が 100 % になります。

不完全というマーキングをされた後、隣接関係を検出できない

隣接関係情報を変更しなければならない場合、隣接関係のエージング ロジックによってエントリが次のように 2 段階で削除されます。

  • 最初にエントリの状態が、「完全」から「不完全」に変更されます。

    router#show adjacency
      Protocol  Interface     Address
      IP        Serial0       10.10.10.2(2) (incomplete)
      IP        Serial0       10.10.10.3(7)
      IP        Ethernet0     172.16.81.1(7)
  • 続いて次の 1 分間のインターバルで、隣接関係 walker プロセスが「開始」し、削除を完了します。

    router#show adjacency
      Protocol  Interface     Address
      IP        Serial0       10.10.10.3(7)
      IP        Ethernet0     172.16.81.1(7)

    分散 CEF モードでは、RP のプロセスによって、削除の完了がラインカードに通知されます。 このシーケンスは、過渡的で不完全な隣接関係が存在するために、ウィンドウが 1 つ、最長 60 秒間存在することを示します。

既知の問題

フレームリレー インターフェイスでスタティック マップ ステートメントを設定すると、CEF は CEF テーブルにホスト プレフィックス エントリを追加するように求められます。 CEF では元々、エントリ作成前に、PVC が「アクティブ」状態かどうかが考慮されていませんでした。 この問題は、Cisco Bug ID CSCdr71258登録 ユーザのみ)で文書化されています。

一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

さらに、Multiprotocol Label Switching(MPLS; マルチプロトコル ラベル スイッチング)Virtual Private Network(VPN; 仮想私設ネットワーク)ルート フォワーディング(VRF)インスタンスにインターフェイスをアタッチしてからそのインターフェイスを削除した後、CEF により隣接関係の設定は「不完全」に設定されますが、フレームリレーのダイナミック マップ エントリはクリアされません。 IP アドレスを再適用すると、ダイナミック マッピングはこれまでと同じように存在するため、隣接関係を完了できません。 この問題を回避するには、IP アドレスを削除した場合(VRF を適用した場合など)、clear frame-relay inarp コマンドを実行します。 続いて IP アドレスが再適用できると、ダイナミック マップの再生成後ただちに、隣接関係が完全な状態になります。


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

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


関連情報


Document ID: 17812