Cisco Fast Forwardingは先進的なレイヤ3 IPスイッチング技術です。CEFをより良く使う方法について、このブログ記事で詳しく紹介します。
CEFはネットワークのあらゆる場所で使用でき、特に企業バックボーンのスイッチングに最適です。さらに、CEFはインターネットのような大規模でダイナミックなデータフローを持つネットワークのパフォーマンスとスケーラビリティを最適化します。ネットワークのコアでは、バックボーンルーター上のCEFが高いパフォーマンスとスケーラビリティを提供し、ネットワークの規模が拡大し、データトラフィックが着実に増加するのに対応します。CEFは分散型のスイッチングメカニズムで、ルーターに搭載されるインターフェースカードの数と帯域幅に応じて線形に変化します。
I. CEFの利点
CEFは、大規模な動的通信によってネットワークのパフォーマンスとスケーラビリティを最適化することができ、次のような利点があります。
1.ルーターの効率向上
従来の高速スイッチング・ルーティングと比較して、CEFはパケット転送に使用するメモリ容量が少なくて済むため、プロセッサ・リソースを節約でき、プロセッサをサービス品質向上や暗号化機能などのレイヤ3サービスに専念させることができます。
2.優れた拡張性
分散型CEFモードが有効な場合、CEFの各ラインカードはCEFと同じ転送情報ベースと隣接テーブルのコピーを保持し、それ自体で完全なスイッチング機能を提供します。
3.ネットワークパフォーマンスの向上
大規模な動的ネットワークでは、CEFはスイッチングの一貫性と安定性を向上させます。動的なネットワークでは、ルーティングの変更によって高速スイッチング・キャッシュ・エントリが頻繁に故障する可能性があるため、これらの変更の結果として、データはルーティング・キャッシュを介して高速スイッチングされるのではなく、ルーティング・テーブルを介してプロセススイッチングされなければならない可能性が高いです。FIBルックアップテーブルにはルーティングテーブル内のすべての既知のルートが含まれているため、ルーティングキャッシュを維持する必要はなく、高速交換やプロセス交換のような転送スキームも必要ありません。CEFは一般的なキャッシュ技術よりも効率的にデータストリームを交換できます。
---- 現在、CEFはATM/AAL5snap、ATM/AAL5mux、ATM/AAL5nlpid、フレーム・リレー、イーサネット、FDDI、PPP、HDLC、トンネリングをサポートしています。
II.CEFの運用に使用されるコンポーネント
CEFのスイッチング機能を実装するために、CEFは従来のルーターのルーティングキャッシュに保存されている情報を、CEFのために特別に設計されたいくつかのデータ構造に流用します。効率的なパケット転送のために、このデータ構造は最適化されたルックアップを可能にすることが保証されています。CEFの2つの主要コンポーネントは以下のとおりです。
1.転送情報ベース
CEFは、IP宛先プレフィックスに基づいてスイッチング決定を行うために、転送情報ベース(FIB)を利用します。FIBは概念的にルーティングテーブルまたは情報ベースに似ており、IPルーティングテーブルに含まれる転送情報のイメージを維持します。ネットワーク内のルーティングまたはトポロジーに変更が加えられると、IPルーティングテーブルが更新され、これらの変更がFIBに反映されます。FIBは、次のネットワークセグメントのアドレス情報を保持するIPルーティングテーブルの情報に基づいています。
FIBエントリとルーティングテーブルエントリの間には1対1の対応があるため、FIBにはすべての既知の経路が含まれており、以前に切り替えられたすべての経路について維持されていたルーティングキャッシュを維持する必要はありません。
2.近隣テーブル
ネットワーク内のネットワークノードは、単一のネットワークセグメントだけを経由してリンクレイヤをトラバースすることで互いに到達できる場合、隣接しています。FIBに加えて、CEFはレイヤ2のアドレス情報を提供するために隣接テーブルを使用します。隣接テーブルは、すべてのFIBエントリーのレイヤー2ネクストネットワークセグメントアドレスを保持します。隣接エントリーが生成されるたびに、CEFはその隣接ノードのリンクレイヤーヘッダータグ情報を事前に計算し、このヘッダータグ情報を隣接テーブルに格納します。ルートが決定されると、そのルートは次のネットワークセグメントと対応するネイバーエントリーを指し示し、CEFがパケットを交換する際にそのエントリーを使用してパケットをカプセル化します。
III.CEFの動作モード
CEF には集中型 CEF モードと分散型 CEF モードの 2 つの動作モードがあります。ただし、すべてのCiscoルーターがこの2つのモードをサポートしているわけではなく、使用する製品の情報を確認して、集中型CEFモードと分散型CEFモードのどちらをサポートしているかを判断する必要があります。 たとえば、分散型CEFモードはCisco 7200シリーズのルーターではサポートされていません。
1.集中型CEFモデル
集中型CEFモードが有効になっている場合、CEFのFIBと隣接テーブルはルートプロセッサに存在し、ルートプロセッサがCEFスイッチングに入って高速転送を実行します(図1参照)。
2.分散型CEFモデル
分散型 CEF(dCEF)が有効な場合、回線カードは同じ FIB と隣接テーブルのコピーを保持します。dCEF は「内部プロセス通信」メカニズムを使用してポートアダプタ間で高速転送を実行するため、RSP はスイッチング操作に関与しません。図2に示すように、dCEFは「内部プロセス通信」メカニズムを使用して、ルートプロセッサとラインカードでFIBと隣接テーブルの同期を維持します。
IV.CEFの適用
CiscoルーターのCEFはルーターのパフォーマンスを向上させ、ルーティングとスイッチングを最適化しますが、その使用方法は複雑ではなく、ユーザーはCEF/DCEFを有効または無効に設定するだけで、Ciscoの高速転送を実現できます。もちろん、CEFをよりよく使用するためには、ロードバランシング機能など、さらなる設定が必要です。他の一般的なCEFコマンドは、添付の表にリストされています。
1.CEFの有効化または無効化
CEF を有効または無効にするには、グローバルコンフィグレーションモードで次のコマンドを使用します。
標準CEFモードの有効化
コマンドは以下の通り:
アイピーセフ
標準CEFモードの禁止
コマンドは以下の通り:
no ip cef
2.dCEFの有効化または無効化
dCEFは、ユーザが、ルートプロセッサがルーティングプロトコルを処理できるように、ラインカードに高速転送を実行させたい場合に有効になります。dCEF 動作を有効または無効にするには、グローバルコンフィグレーションモードで次のコマンドを使用します。
dCEFモードの有効化
コマンドは以下の通り:
ip cef 分散
dCEFモードの無効化
コマンドは以下の通り:
no ip cef distributed
グローバルモードでCEFまたはdCEFを有効にすると、CEFをサポートするすべてのインタフェースがデフォルトで有効になります。
3.特定のインターフェイスでCEF/ dCEFを有効または無効にします。
CEFやdCEFでサポートされていない機能が特定のインターフェイスに設定されていることがあります。例えば、ポリシールーティングとCEFを一緒に使うことはできません。この場合、グローバルモードで CEF を有効にし、ポリシールーティングを設定するインターフェイスで CEF を無効にすることで、そのインターフェイスを除くすべてのインターフェイスで高速転送を有効にすることができます。インタフェースで CEF または dCEF を無効にするには、インタフェースコンフィグレーションモードで次のコマンドを使用します:
no ip route-cache cef
CEF または dCEF が無効になっている場合、Cisco IOS は自動的に次に速いスイッチングパスを使用してパケットを切り替えます。dCEFの場合、次に速いスイッチング経路はルートプロセッサ上のCEFです。ユーザがインターフェイス上でCEFまたはdCEFの動作を無効にし、後で再び有効にしたい場合は、インターフェイスコンフィグレーションモードで次のコマンドを使用できます:
ip route_cache cef
---- Cisco 12000 シリーズのルーターでは、dCEF はデフォルトで有効になっています。dCEFを有効にするコマンドはありません。また、コンフィグレーションファイルには、ルーターで dCEF が有効になっていることは記載されておらず、Cisco 12000 シリーズのルーターインターフェイスで dCEF を無効にしないでください。
4.CEFのロードバランシング機能の設定
ロードバランシングは、送信元と宛先のパケット情報の組み合わせに基づいて行われます。宛先にデータを配信するために、Ciscoはデータを複数のパスに分散し、リソースの使用を最適化します。ロードバランシングの設定は、宛先ベースでもパケットベースでも可能です。ロードバランシングの決定メカニズムは、データが出発するインタフェース上で行われ、次の2つの方法に分けられます。
宛先別ロードバランシングの設定
宛先別負荷分散機能を設定すると、ルーターは複数のパスを使用して負荷分散を行います。 特定の送信元/宛先ホストに対しては、パケット転送に同じパスが使用されますが、利用可能なパスが複数ある場合でも、そのように処理され、異なる宛先に到着するパケットには異なるパスを使用できます。CEFが有効になっている場合、宛先別にロードバランシングを設定する機能はデフォルトで有効になっています。ほとんどの場合、このロードバランシング方法が使用されます。宛先別に負荷分散を設定することは、データフローの統計的な分布情報に依存するため、送信元/宛先のペアの数が増えると、負荷分散がより効果的になります。宛先別負荷分散を使用すると、指定された送信元/宛先ホストペアのパケットが特定の順序で到着するようにできます。
CEFが有効になっている場合、宛先によるロードバランシングもデフォルトで有効になっているため、宛先によるロードバランシング機能を利用するために、ユーザーが他の操作を行う必要はありません。
宛先別負荷分散機能を無効にするには、インターフェイス・コンフィグレーション・モードで次のコマンドを使用します:
no ip load-sharing per-destination
パケットによるロードバランシングの設定
パケット単位でのロードバランシングは、ルーターが特定のホストやユーザーに関係なく、パケットをパス上で連続して送信することを可能にします。このロードバランシングメカニズムは、各パケットがその宛先に到達するために使用するパスを決定するためにローテーションアプローチを使用します。このメカニズムにより、複数の接続にわたる負荷分散が保証され、単一の送信元/宛先ペアのパスが過負荷にならないようにします。単一の送信元/宛先ホスト・ペアに対して並列リンクを通過する大量のデータがある場合、宛先によるロードバランシングはそのリンクに過負荷をかけることになり、他のリンクにはほとんどデータが流れません。パケット単位でロードバランシングを有効にすると、同じビジー状態の宛先に到達するために異なるパスを使用することができます。
パケットごとのロードバランシングの使用は、パスの使用を合理的にします。しかし、このメカニズムの直接的な結果として、与えられたソース/デスティネーションホストペアのパケットは、異なるパスを使用して到着する可能性があり、デスティネーションエンドでパケットの順序を変更する原因となります。例えば、ボイスオーバーIPでは、このタイプの伝送ではパケットが順次宛先に到着する必要があるためです。
パケットごとのロードバランシング機能を有効にするには、インターフェイス・コンフィグレーション・モードで次のコマンドを使用します:
IPロードシェアリング(パケット単位)
もちろん、パケットごとのロードバランシングが特定の宛先に対して有効になっている場合、パケットごとのロードバランシングは、その宛先にパケットを転送できるすべてのインターフェイスで有効になっていなければなりません。
5.CEFのネットワーク簿記の設定
ネットワークにおけるCEFモードの機能をよりよく理解し、使用するために、ユーザーは統計情報を収集する必要があるかもしれません。たとえば、特定の宛先に対して交換されたパケット数やバイト数、特定の宛先を経由して交換されたパケット数などの情報を収集したい場合があります。CEFのネットワーク簿記情報を収集するには、グローバル設定モードで次のコマンドを使用します。
宛先に素早く転送されたパケット数とバイト数の収集開始
コマンドは以下の通り:
ip cef accounting per-prefix
宛先を経由して高速転送されたパケット数の収集を開始します。
コマンドは以下の通り:
ip cef accounting non-recursive
ユーザーが CEF に対してネットワーク簿記機能を有効にすると、簿記情報は適切なルートプロセッサで収集されます。ユーザーがdCEFのネットワーク簿記機能を有効にすると、情報はラインカードに収集されます。
ユーザは、収集された簿記情報を表示できます。これは、EXEC モードで以下のコマンドを使用して行います:
ショー ip セフ
帳簿情報には、ルーターがパケットを転送する方法が詳細に記述されています。このため、ルーターの負荷を把握し、ルーターの設定を最適化してパフォーマンスを最大化する方法を決定できます。





