内容

はじめに

前提条件

要件

使用するコンポーネント

概要

CEFコアコンポーネント

CEFの動作モード

CEFの基本パケットフロー

関連情報

はじめに

このドキュメントでは、Cisco Express Forwarding(CEF)について説明します。

前提条件

要件

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

使用するコンポーネント

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

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

概要

Cisco Express Forwarding（CEF）スイッチングは、キャッシング要求に関連した問題に対処するための、Cisco 独自のスケーラブルなスイッチングの形態です。CEFは、Cisco IOSに組み込まれた高度なレイヤ3 IPスイッチングアーキテクチャで、従来のルートキャッシュモデルの後継です。高度に最適化された転送テーブルと別個の隣接関係テーブルを維持し、CPUの関与を最小限に抑えてラインレートのパケット転送を可能にします。パケットがルータまたはスイッチに到着するたびに、パケットの転送先をデバイスが決定する必要があります。パケットの有効性が確認され、Access Control List（ACL；アクセスコントロールリスト）またはその他の廃棄条件が満たされると、デバイスはルーティングテーブルを参照して最適な発信インターフェイスを決定します。シスコのルータおよびスイッチは、プロセススイッチング、ファストスイッチング、またはCisco Express Forwardingの3つの方法でこのルックアップを実行できます。

CEFを使用すると、デバイスは、すべてのルートをプロアクティブに計算し、各パケットがルックアップをトリガーするのを待たずに、2つの最適化されたデータ構造、つまり転送情報ベース(FIB)と隣接関係テーブルにインストールします。最近のプラットフォームでは、これらのテーブルがハードウェアのフォワーディングプレーンと同期されているため、パケット単位のCPUオーバーヘッドが低く、パケット/秒のスループットが高く、一貫したフォワーディング動作が得られます。このため、最近のシスコプラットフォームではCEFがデフォルトで有効になっており、高パフォーマンスのIPネットワークの基盤となっています。

CEFコアコンポーネント

- Forwarding Information Base（FIB；転送情報ベース）テーブル：CEFはFIBを使用して、IPの宛先プレフィクスベースの決定を行います。つまり、FIBはCEFの宛先データベースです。 FIBは、ルータのIPルーティング情報ベース(RIB)の1対1のミラーですが、ハードウェアで可能な限り迅速なプレフィックスルックアップを実現するように再編成されています。IPルーティングテーブルが変更されるたびに（ルーティングプロトコルの更新、スタティックルートの変更など）、これらの変更はFIBにすぐに反映されるため、転送は常に最新のトポロジ情報を使用します。各FIBエントリは、宛先プレフィックスと1つ以上のネクストホップポインタで構成されます。ECMP（等コストマルチパス）が設定されると、FIBはプレフィックスごとに複数のポインタを保持して、パケット単位または宛先単位のロードバランシングをサポートします。FIBは、（最近使用されたルートの単なるデマンドキャッシュではなく）すべての既知のルートを含めることで、ルートキャッシュメンテナンスの必要性を排除し、トポロジの解約時のキャッシュスラッシュを防止し、安定した予測可能な転送パフォーマンスを提供します。

- 隣接テーブル：ネットワーク内のノードは、リンク層の全域で 1 ホップで相互に到達できれば、隣接とみなされます。CEFでは、FIBに加えて、隣接関係テーブルを使用して、そのリンク上でパケットを転送するために必要なレイヤ2アドレッシング情報（MACアドレス、VLANタグ、インターフェイスなど）を付加します。隣接関係テーブルは、すべてのFIBエントリのレイヤ2ネクストホップアドレスを維持します。これらのエントリは、隣接関係が検出されると(たとえば、Address Resolution Protocol（ARP；アドレス解決プロトコル）などのメカニズムを通じて)入力されます。

CEFの動作モード

- セントラルCEFモード：セントラルCEFモードがイネーブルのとき、FIBテーブルと隣接関係テーブルはルートプロセッサに常駐し、ルートプロセッサが高速転送を実行します。CEFスイッチングに使用できるラインカードがない場合、分散CEFスイッチングと互換性のない機能を使用する必要がある場合、または非分散プラットフォームで実行している場合は、CEFモードを使用できます。

- 分散CEF(dCEF)モード：dCEFモードがイネーブルの場合、ラインカードはFIBテーブルと隣接関係テーブルとまったく同じコピーを保持します。ラインカードはそれ自体で高速転送を実行できるので、システムパフォーマンスを向上させるメインプロセッサが軽減されます。このモードはスケーラビリティの向上を目的としており、2つ以上のラインカードに処理タスクを分散できる分散プラットフォームまたはモジュラプラットフォームで使用できます。dCEFは、Inter-Process Communication（IPC；プロセス間通信）メカニズムを使用して、ルートプロセッサおよびラインカード上のFIBと隣接関係テーブルの同期を保証します。

CEFの基本パケットフロー

次のステップのリストは、パケットがCEFスイッチングされる方法について説明しています。

1. デバイスのインターフェイスプロセッサは、ネットワークメディアからパケットを読み取り、インターフェイスの受信(RX)リングと呼ばれるバッファメモリに格納します。

2. デバイスのインターフェイスプロセッサが、メインプロセッサに受信割り込みを送信します。残りのスイッチングは、この割り込みの間に行われます。

3. デバイスは、宛先IPアドレスを検索キーとして使用して、FIB内の宛先の最長一致検索を実行します。FIBルックアップが失敗すると、パケットはドロップされます。ルックアップが成功すると、FIBパスが選択され、デバイスは対応する隣接関係エントリへのポインタを使用します。

4. デバイスは、隣接関係テーブルからのカプセル化文字列を使用してレイヤ2ヘッダーを書き換え、発信インターフェイスでの送信用にパケットを正しい出力キューに入れます。

5. 次に、正常にスイッチされたパケットが、発信インターフェイスの送信(TX)リングにキューイングされます。

関連情報

- テクニカルサポート - Cisco Systems

- Cisco IOS XEルータでのCEFの理解およびトラブルシューティング

- シスコ エクスプレス フォワーディング