Cisco IOS と NX-OS ソフトウェア : Cisco IOS ソフトウェア リリース 12.0 メインライン

Cisco Express Forwarding スイッチングの確認方法

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
Cisco IOS スイッチングとは
確認手順
CEF パントについて
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

Cisco IOS(R) ソフトウェアでは、最小の遅延と高いスループットでトラフィックの転送を行うための複数の機構がサポートされています。このドキュメントでは、パケットに使用する Cisco IOS のスイッチングと転送のパスを決定する方法を説明しています。

注:このドキュメントで取り上げられているのは、プロセス スイッチング、ファースト スイッチング、および、Cisco Express Forwarding(CEF)だけです。

前提条件

要件

このドキュメントの読者には、次の項目に関する知識が必要です。

  • Cisco IOS ソフトウェア

  • Cisco 1600、2500、および 3600 シリーズ プラットフォーム

使用するコンポーネント

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

表記法

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

Cisco IOS スイッチングとは

Cisco IOS スイッチングは、ルータを経由するパケット フローを定義します。より明確に言えば、パケットをルータ経由でどれくらい迅速に転送できるか、およびどの物理バッファにパケットを保存するかを決定します。

これまでの Cisco IOS の発展過程において、複数のスイッチング方式が開発されてきました。一部の方式は、特定のプロットフォーム上でしかサポートされていません。CEF は、最新のスイッチング方式です。CEF は、Cisco IOS12.0 メインラインで多くのプラットフォーム(特に Cisco 1600、2500、3600 シリーズなどの小型および中型のプラットフォーム)に導入されました。

ルータのルーテッド インターフェイス上でパケットを受信すると、まずレイヤ 2(L2)フレーム情報が削除されます。次にレイヤ 3(L3)パケットが入出力(I/O)メモリに保存されます。次に何が起きるかは、パケットがたどるスイッチング パスに依存しています。

確認手順

下記の手順で、パケットが CEF スイッチング パスをたどることが確認できます。

  1. CEF がグローバルかつ特定のインターフェイスでイネーブルになっていることを確認します。

    router#show ip cef
    
    %CEF not running
    
    1. グローバル コンフィギュレーション モードで ip cef コマンドを使用して、(中央の)CEF をイネーブルにします。

      注:Cisco 7200 シリーズでは、今後の Cisco IOS リリースで CEF がデフォルトの Cisco IOS スイッチング方式になっています。

    2. show ip cef prefix コマンドを使用して、プレフィクスがリストされていることを確認します。

      router#show ip cef
      
      Prefix              Next Hop            Interface 
      0.0.0.0/32          receive 
      192.168.0.0/30      attached            Serial2/0/0:1 
      192.168.0.0/32      receive
      
  2. CEF が特定のインターフェイスでイネーブルになっていることを確認します。

    1. show cef interface x/x コマンドを使用して、「IP CEF switching enabled,」または「IP distributed CEF (dCEF) switching enabled.」を探します。

      router#show cef interface fastEthernet 0/0/0 
      FastEthernet0/0/0 is up (if_number 2) 
        Internet address is 192.168.1.253/24 
        ICMP redirects are always sent 
        Per packet loadbalancing is disabled 
        Inbound  access list is not set 
        Hardware idb is FastEthernet0/0/0 
        Fast switching type 1, interface type 18 
        IP Distributed CEF switching enabled 
        Fast flags 0x0. ifindex 1(1) 
        Slot 0 Slot unit 0 VC -1 
        Hardware transmit queue ptr 0x48001A00 (0x48001A00) 
        Transmit limit accumulator 0x48001A02 (0x48001A02) 
        IP MTU 1500
      
    2. イネーブルになっている Cisco IOS スイッチング方式を表示するには、show ip interface コマンドを使用します。

      router#show ip interface fastethernet 1/0/0.1 
       FastEthernet1/0/0.1 is up, line protocol is up 
        
         IP fast switching is enabled 
         IP fast switching on the same interface is enabled 
         IP Flow switching is disabled 
         IP CEF switching is enabled 
         IP Distributed switching is enabled 
         IP Fast switching turbo vector 
         IP Normal CEF switching turbo vector 
         IP multicast fast switching is enabled 
         IP multicast distributed fast switching is disabled 
         IP route-cache flags are Fast, Distributed, No CEF
      

      この出力では、特定のインターフェイスでの no ip route-cache cef コマンドにより CEF がディセーブルにされていることが、「No CEF」フラグで示されています。「CEF」フラグは、CEF が稼働していることを示しています。安定状態の場合、どちらのフラグも表示されません。Cisco Bug ID CSCdr80269登録ユーザ専用)では、まれな条件で両方のフラグが表示される可能性のある問題が解決されています。Bug ID についての詳細は、Bug Toolkit登録ユーザ専用)を参照してください。
      一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

  3. ルータを流れるパケットの大多数が CEF スイッチングされていることを確認します。

    1. show interface x/x stat コマンドを使用して、ルータで「Route cache」ではなく「Processor」経由で転送されているパケット数とバイト数を識別します。「ルート キャッシュ」には、ファースト スイッチングと CEF スイッチングの両方のパケットが含まれている点に注意してください。

      router#show interface stats     
      FastEthernet0/0           
      Switching path Pkts In  Chars In Pkts Out Chars Out 
      Processor 95084 26211621 33493 3386174 
      Route cache 24581 1132797 24542 13297583 
      Distributed cache 0 0 0 0 
      Total  119665 27344418 58035 16683757
      
    2. show ip cache コマンドを使用して、パケットがファースト スイッチング パスをたどっていることを示す IP キャッシュ エントリがあることを識別します。ファースト スイッチングは、ルータを経由するパケット転送を促進するため、オンデマンドのルート キャッシュ上に作成されます。インターフェイス ハードウェアで稼働しているドライバ コードでは、制御が一時的にファースト スイッチング コードに委譲され、フレームのためのルート キャッシュと前回の転送済みパケットにより構成された他の情報とが検索されます。ルート キャッシュにエントリがあれば、ファースト スイッチング コードにより、パケットの宛先インターフェイスへの直接送信が試行されます。

      router#show ip cache
      IP routing cache 0 entries, 0 bytes 
         0 adds, 0 invalidates, 0 refcounts
      Minimum invalidation interval 2 seconds, maximum interval 5 seconds, 
         quiet interval 3 seconds, threshold 0 requests 
      Invalidation rate 0 in last second, 0 in last 3 seconds 
      Prefix/Length       Age       Interface       Next Hop
      

      次の手順では、CEF を使用してパケットが転送されていることを確認する、さらに具体的な手順の概要を示しています。

    1. ip cef コマンドで CEF をイネーブルにします。

    2. clear ip cache コマンドを発行して、ファースト スイッチングされたキャッシュ エントリをクリアします。

    3. トラフィック ストリームを開始します。

    4. show ip cache コマンドを発行します。パケットが CEF スイッチングされているため、ファースト スイッチ キャッシュにエントリが何も表示されないことを確認します。

    5. show interface stats コマンドを発行して、ルート キャッシュ インバウンドの差分ヒットを確認します。

      注:ルート キャッシュ カウンタには、ファースト スイッチングされたパケットと CEF スイッチングされたパケットの両方が含まれています。

    6. インバウンド インターフェイスで、no ip route-cache cef コマンドにより CEF をディセーブルにします。

    7. show interface stats コマンドを発行して、ルート キャッシュの差分ヒットを確認します。

    8. show ip cache コマンドを発行して、Cisco IOS がファースト スイッチングにフォールバックして以来のエントリが表示されることを確認します。

    9. アウトバウンド インターフェイスで no ip route-cache コマンドを発行して、ファースト スイッチングをディセーブルにします。対応するインバウンド インターフェイス上のパケットは、プロセス スイッチングされます。

      注:トラフィックの多いネットワークでのプロセス スイッチングの設定は推奨いたしません。

  4. ルータ インターフェイスで CEF がイネーブルにされていることを確認して、ほとんどのパケットが CEF スイッチングされていないことが判別された場合は、Cisco Technical Assistance Center(TAC)に問題を報告する際に、下記のコマンドでキャプチャを行います。

    注:debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。

    • show cef interface x/x:CEF に関係するインターフェイス情報を表示します。

    • show ip cef prefix:転送情報ベース(FIB)のプレフィクス エントリを表示します。

    • show adjacency interface detail:隣接関係で解決される反復的プレフィクスと直接プレフィクスを表示します。

    • show cef not-cef-switched:どのパケットが CEF スイッチングされていないかを表示します。

    • debug ip cef drop:CEF で廃棄されたパケットのデバッグ情報を表示します。

    入力インターフェイスによって、パケットがたどる Cisco IOS スイッチング パスが決定されます。特定のインターフェイスでスイッチング方式をイネーブルにしたりディセーブルにしたりする際には、次のルールを考慮してください。

    着信インターフェイス

    発信インターフェイス

    スイッチング方式

    CEF

    プロセス

    CEF

    プロセス

    CEF

    ファースト

    プロセス

    ファースト スイッチング(IP ルート キャッシュ)

    ファースト スイッチング

    CEF

    ファースト スイッチング

    CEF

    言い換えると、CEF スイッチングされるパケットのために、着信インターフェイスで CEF をイネーブルにする必要があります。CEF では入力で転送決定がされるので、入力インターフェイスで no ip route-cache cef コマンドを使用して、CEF をディセーブルにします。それに対して、Cisco IOS ではパケットのスイッチングの後でファースト スイッチング キャッシュ エントリが作成されるので、プロセス スイッチングされるインターフェイスに着信して、ファースト スイッチングされるインターフェイスがら送出されるパケットはファースト スイッチングされます。出力インターフェイスで no ip route-cache コマンドを使用して、ファースト スイッチングをディセーブルにします。下記のトラフィック タイプは CEF スイッチングされません。

    • スイッチング キャッシュにエントリがないパケット

    • ルータを宛先とするパケット

    • ブロードキャスト トラフィック

    • オプションつきの IP パケット

    • プロトコル変換が必要なパケット

    • 暗号化されたトラフィック

CEF パントについて

「パント」という用語は、パケットを 1 ランク速度が遅いスイッチング レベルに「速度を落として」送信するという、インターフェイスのデバイス ドライバによる動作を説明するために Cisco が定義したものです。次のリストでは、Cisco IOS のスイッチング方式の優先順位が速い方から遅い方に定義されています。

  • 分散型 CEF

  • CEF

  • ファースト スイッチング

  • プロセス交換

パントが発生するのは、次の条件です。

  • 1 ランク遅いレベルが有効なパスを生成しなかったか、CEF の場合は有効な隣接関係が生成されなかった場合。つまり、CEF 検索プロセスによって、転送情報ベースに有効なエントリを見つけることができなかった場合、パケットは、使用可能な 1 ランク下のスイッチング パスにパントされるか、廃棄されます。

  • 最低レベルでは、特定の機能やレイヤ 2 カプセル化はサポートされていません。CEF が特定機能をサポートしている場合、パケットの所有権は、CEF の「機能パス」内の一連のソフトウェア ルーチンを介して受け渡されます。

  • 特定の機能は特殊な処理を必要とします。

特定の出力機能が CEF でサポートされていない場合に、CEF におけるパントの隣接関係がインストールされます。CEF では、このような隣接関係に向かうすべてのパケットを次善のスイッチング モードへパントすることにより、すべてのパケットをスイッチングします。

center#show ip cef 45.0.0.0 
45.0.0.0/8, version 184, 0 packets, 0 bytes 
  via 1.1.1.1, Tunnel0, 0 dependencies 
    next hop 1.1.1.1, Tunnel0 
    valid punt adjacency

CEF Packets passed on to next switching layer 
Slot    No_adj  No_encap Unsupported  Redirect   Receive   Bad_ttl   Options
RP           0         0           0         0      5700         0         0 
2            0         0           0         0         0         0         0 
3            0         0           0         0         0         0         0 
4            0         0           0         0         0         0         0 
5            0         0           0         0         0         0         0 
8            0         0           0         0         0         0         0 
9            0         0           0         0         0         0         0 
10           0         0           0         0         0         0         0

隣接関係が不完全な場合、CEF により、ルータ全体(ほかのすべてのスイッチング パスを含む)が隣接ノードへ到達する方法を知らないと見なされます。パケットをプロセス スイッチングにパントすることにより、アドレス解決プロトコル(ARP)などのある種のレゾルーション プロトコルが起動され、それによって、後で隣接関係が完成されます。この状況で CEF は、パケットのフラッディングを防止するために、2 秒ごとにパケットを 1 つずつ次のスイッチング パスにパントします。したがって、この状況で IP アドレスに対して ping を実行すると、約 50 % が失敗する可能性があり、ping パターン「!.!.!.!.!」が表示されます。この状況は CEF テーブルが壊れた場合にも発生します。その場合、特定の IP アドレスに関する show ip route コマンドの情報と show ip cef コマンドの情報が異なっているはずです。

注:ギガビット スイッチ ルータ(GSR)では、ラインカード(LC)により、CEF 内部からのインターネット制御メッセージ プロトコル(ICMP)エコー応答が生成されます。パケットが GSR ローカル アドレスのいずれか宛になっていない場合には、関与するプロセスはありません。その場合は、使用している LC により、ハードウェアか dCEF でのインタラプトで、そのままスイッチングされます。

GSR では、ファースト スイッチングとプロセス交換は使用できません。送信先プレフィックスを、着信 LC テーブル内の転送エントリに解決できない場合、パケットは廃棄されます。グリーニング隣接関係に一致するパケットだけが、ギガビット ルーティング プロセッサ(GRP)にパントされます。さらに GSR では、LC CPU は機能用に GRP へのパケットのパントは行わず、LC から ICMP 到達不能メッセージが送信されます(no ip unreachables コマンドが設定されていない場合に限る)。GSR では、GRP にパントされるトラフィックは、ルータのインターフェイスに送信されるパケットか、ルートから送信されたパケットだけです。


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

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


関連情報


Document ID: 47205