IP : Cisco Express Forwarding(CEF)

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

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2004 年 3 月 5 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

ネットワーク内のネットワーク ノードが、リンク レイヤ上の 1 ホップで相互に到達できる場合、これらは隣接ノードと考えられます。 このドキュメントでは、シスコ エクスプレス フォワーディング(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

前提条件

要件

次の項目に関する知識があることが推奨されます。

使用するコンポーネント

この文書に記載されている情報は Cisco IOS に基づいていますか。 ソフトウェア リリース 12.3(3)。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

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

隣接関係とは何か

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

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

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

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

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

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

この例では、ネクスト ホップとして 172.16.81.1 の IP アドレスを使用して、172.16.81.98 の IP アドレスとすべての宛先を隣接ルータ R2 のイーサネット インターフェイスに指す簡単なデフォルト スタティック ルートで設定されるルータ(たとえば、R1)のイーサネット インターフェイスを使用します。 一般に、CEF スイッチングされるパケットのために、着信インターフェイスで CEF をイネーブルにする必要があります。 CEF では入力で転送決定がされるので、入力インターフェイスで no ip route-cache cef コマンドを使用して、CEF をディセーブルにします。

高速スイッチングでは、Cisco IOS はパケットのスイッチングの後にファースト スイッチングのキャッシュ エントリを作成します。 たとえば、プロセススイッチングされるインターフェイスに着信し、ファーストスイッチングされるインターフェイスから送出されるパケットは、ファーストスイッチングされます。 出力インターフェイスで no ip route-cache コマンドを実行して、ファーストスイッチングをディセーブルにします。 これは、CEF とは対照的です。

  1. show ip route コマンドを使用して、IP ルーティング テーブルの内容を表示します。

    R1#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 
    
    !--- A simple default static route points all destinations to 
    !--- a next-hop address of 172.16.81.1.
    
    
  2. show ip arp コマンドまたは show arp コマンドを使用して、Address Resolution Protocol(ARP)テーブルを表示します。

    ARP テーブルの [Hardware Addr] フィールドに、ローカル インターフェイスおよびネクストホップ インターフェイスのエントリが表示されます。

    R1#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 コマンドを使用して、隣接関係テーブル エントリの内容を表示します。

    R1#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					
    R1#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 [interface-type interface-number] 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
パケットの発信元インターフェイスの IP の MAC アドレスおよびよく知られているイーサタイプ値 0x0800(ARPA カプセル化を使用)を表します (つまり、ローカル ルータの発信インターフェイス)。
ARP    03:57:00
ARP は、エントリの検出方法を示します。 タイプスタンプは、エントリがタイムアウトになるまでの期間を示します。
Epoch: 1
CEF の隣接テーブルのエポック情報を表します。 隣接関係テーブルおよびすべての FIB テーブルのエポック情報を表示するには、show ip cef epoch コマンドを使用します。
Fast adjacency enabled
FIB エントリは、複数のアクティブ パスにまたがってロードシェアリングが実行されていない場合、ネクスト ホップ インターフェイスの隣接関係をキャッシュします。 隣接関係が短時間で検索できれば、パケットの切り替えも迅速になります。
Adjacency pointer 0x62515AC0 
 
refCount 7
ルータのメモリに現在格納されている隣接関係への参照数。 CEF テーブルに対応するエントリが 1 つずつあり、さらにさまざまな理由により、その他のエントリがいくつかあります(show adjacency コマンドを実行するコード用エントリなど)。
Connection Id 0x0
 
Bucket 236
 

隣接関係のタイプ

隣接タイプ 隣接関係の処理
ヌル隣接関係 Null0 インターフェイスに送信されたパケットはドロップされます。 これは、アクセス フィルタリングの効果的な形式として使用できます。
グリーニング隣接関係 ルータが複数のホストに直接接続されている場合、ルータ上の FIB テーブルは、個々のホストのプレフィクスではなく、サブネットに対応するプレフィックスを維持します。 サブネットのプレフィックスは、グリーニング隣接関係をポイントします。 特定のホストにパケットを転送する必要がある場合、隣接データベースから特定のプレフィックスが集められます。
パント隣接関係 特別な処理を必要とする機能や CEF スイッチングのパスとともにまだサポートされていない機能は、処理のために次のスイッチング レイヤに転送されます。 サポートされていない機能は、次の上位のスイッチング レベルに転送されます。
廃棄隣接関係 パケットが廃棄されます。
ドロップ隣接関係 パケットは廃棄されますが、プレフィックスがチェックされます。
キャッシュ隣接関係 キャッシュ隣接関係は、隣接関係パケット用に受信される確認応答のアップデートです。

隣接関係のディスカバリ

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

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

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

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

    Router#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 種類の隣接関係もサポートしています。 これらのタイプについては、この文書の対象外であるため、『シスコ エクスプレス フォワーディングの概要』の「特別な処理を必要とする隣接関係」のセクションで説明します。

不完全な隣接の理由

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

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

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

  • MPLS の環境では、ラベル スイッチング用に IP CEF をイネーブルにする必要がある。 インターフェイス レベル コマンド ip route-cache cef

不完全な隣接関係の症状には、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 アドレスを指定します。

ルータが ARP 要求を送信することを確認するには、debug 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登録 ユーザのみ)で文書化されています。

また、マルチプロトコル ラベル スイッチング(MPLS)(バーチャル プライベート ネットワーク(VPN)のルート転送(VRF)インスタンスに接続してインターフェイスを削除した後、CEF は隣接関係を不完全に設定します。 ただし、フレーム リレーのダイナミック マップ エントリはクリアされません。 IP アドレスを再適用すると、引き続きダイナミック マッピングが存在します。 これにより、隣接関係が完全になりません。 IP アドレスを削除する場合(たとえば、VRF でこの問題を回避する場合)、clear frame-relay-inarp コマンドを実行します。 その後、IP アドレスを再適用でき、ダイナミック マップの再生成後ただちに、隣接関係が完全な状態になります。


関連情報


Document ID: 17812