IP : Cisco Express Forwarding(CEF)

ネットワークに最適なルータ スイッチング パスの選択方法

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


目次


概要

そこに利用可能 な スイッチングパスの茄多および Cisco IOS はさまざまな Ciscoルータにありますか。 リリース。 ネットワークに最適なスイッチング パスはどれですか。これらはすべてどのように機能しますか。 この解説書では、次に示す各種のスイッチング パスについて説明し、使用中のネットワークに最適なスイッチング パスを決定できるようにします。

最初に、フォワーディングプロセス自体を検査して下さい。 ルータを通してパケットを転送することへ 3 つのステップがあります:

  1. パケットの宛先に到達できることを判定する。

  2. 宛先への経路のネクストホップと、そのホップへ到達できるインターフェイスを判別する。

  3. パケットの Media Access Control(MAC; メディア アクセス制御)ヘッダーを書き換え、ネクストホップに正しく到達できるようにする。

これらの各手順は、パケットが宛先に到達するために必須の項目です。

この資料の全体にわたって、IP スイッチング パスは一例として使用されます; ここで説明する情報は、他のプロトコルの同様のスイッチング パスがある場合でも適用できます。

プロセス スイッチング

プロセス スイッチングはスイッチングパスの最も低い共通 分母です; それは各 IOSバージョン、各プラットフォーム、および切り替えられる各トラフィック の 種類のために利用可能です。 プロセス スイッチングは 2 つの必要な概念によって定義されます:

  • パケット上の MAC ヘッダーを書き換えるために使用されるフォワーディングの判断と情報は、ルーティング テーブル(ルーティング情報ベース、または RIB)と Address Resolution Protocol(ARP; アドレス解決プロトコル)キャッシュ、あるいは、そのルータに直接接続されている各ホストの IP アドレスにマップされた MAC ヘッダー情報を含む他のテーブルから得られます。

  • パケットは IOS 内の正常なプロセスが実行によって交換されます。 すなわち、転送の決定はルーティング プロトコルのようなルータで他のプロセスへのピアとして IOSスケジューラおよび実行によってスケジュールされるプロセスによって、なされます。 ルータで正常に動作するプロセスはスイッチを処理するためにパケット割り込まれません。

図は下記のプロセス スイッチング パスを説明します。

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20a.gif

この図を詳しく説明します。

  1. ネットワークメディア上にパケットがあることがインターフェイス プロセッサによって最初に検出され、このパケットがルータの入出力メモリ(I/Oメモリ)に転送されます。

  2. インターフェイスプロセッサは受信割り込みを生成します。 この割り込みの間に、中央処理装置はそれが IPパケットであることをどのようなパケットこれが(仮定して下さい)である判別し、プロセッサメモリにそれを必要ならばかコピーします(このデシジョンは依存したプラットフォームです)。 最終的には、プロセッサは適切なプロセスのインプットキューにパケットを入れ、割り込みはリリースされます。

  3. 次にスケジューラが実行されるとき、ip_input の入力キューにあるパケットが確認され、このプロセスが実行されるようスケジュールされます。

  4. ip_input の実行時には、RIB を参考にしてネクストホップと出力インターフェイスが決定されます。さらに、ARP キャッシュを参考にして、ネクストホップの正確な物理層レイヤのアドレスが決定されます。

  5. 次に ip_input によりパケットの MAC ヘッダーが書き換えられ、このパケットが正しい送信インターフェイスの出力キューに配置されます。

  6. パケットはアウトバウンドインターフェイスの出力キューからアウトバウンドインターフェイスの送信キューへのコピーされます; 送信に関する QOS は、この 2 つのキューの間で行われます。

  7. 出力インターフェイス プロセッサによって送信キュー上のパケットが検出され、ネットワーク メディアへパケットが送信されます。

パケット交換に、ネットワーク アドレス変換(NAT)およびポリシー ルーティングのような影響するほとんどすべての機能は、プロセス スイッチング パスのデビューをします。 それらが証明され、最適化されたら、これらの機能はかもしれるか、または、割り込み コンテキスト 切り替えに現われるためにかもしれませんでした。

割り込みコンテキスト スイッチング

割り込み コンテキスト 切り替えは Ciscoルータによって使用されるプライマリ 切り替え方法の第 2 です。 割り込み コンテキスト 切り替えとプロセス スイッチング間の主な違いは次のとおりです:

  • 現在 プロセッサで動作するプロセスはパケットを交換するために割り込まれます。 パケットは切り替えられるよりもむしろ ip_input プロセスがスケジュールすることができるときだけ、オンデマンド式で交換されます。

  • プロセッサは、いくつかのルート キャッシュの形式を使用して、パケットの交換に必要な全情報を収集する。

この図は割り込み コンテキスト 切り替えを説明します:

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20b.gif

この図を詳しく説明します。

  1. ネットワークメディア上にパケットがあることがインターフェイス プロセッサによって最初に検出され、このパケットがルータの入出力メモリ(I/Oメモリ)に転送されます。

  2. インターフェイスプロセッサは受信割り込みを生成します。 この割り込みの間に、中央処理装置はそれが IPパケットであることをどのようなパケットこれが(仮定して下さい)である判別し、次にパケットをか交換し始めます。

  3. プロセッサはもしネクスト ホップに達しなければ正常にならなければどんな MACヘッダー パケットか最終的にか、パケットの宛先が到達可能だったかどうか確認するためにルートキャッシュを、アウトプットインターフェイスがであるはずである何何この宛先の方のネクスト ホップある検索し。 プロセッサはこの情報をパケットの MACヘッダーを書き換えるのに使用します。

  4. パケットはアウトバウンドインターフェイスの送信するか出力キューに今コピーされます(さまざまなファクタによって)。 今受信割り込み戻りおよびプロセスはプロセッサで実行していた割り込みが発生した前に動作し続けます。

  5. 出力インターフェイス プロセッサによって送信キュー上のパケットが検出され、ネットワーク メディアへパケットが送信されます。

この説明を読んだ後気になることを来る最初の質問はか」。ある何がキャッシュに「あります 割り込み コンテキスト 切り替えの種類によって 3 つの可能性のある返事が、あります:

ファスト スイッチング

ファースト スイッチングは速いルックアップおよび参照用のバイナリツリーを使用して転送情報および MACヘッダーリライトストリングを格納します。 この図はバイナリツリーを説明します:

20c.gif

ファースト スイッチングでは、到着可能性情報はパケットの宛先のためのバイナリツリーのノードのプロシージャによって示されます。 各宛先のための MACヘッダーおよびアウトバウンドインターフェイスはツリー内のノードの情報の一部として保存されます。 バイナリツリーは実際に 32 のレベルがある場合があります(上記のツリーは実例の為に非常に短縮されます)。

バイナリツリーを検索するために、探して いる(バイナリ)数の左から(最上位桁と)単に開始し、その数に基づいてツリーで右か左分岐します。 たとえば、このツリーの第 4 に関連情報を探せば、最初の 2 進数字が 1.であるので、分岐権限によって始めます。 2 進数の次の桁を見ながら、最後の桁になるまでツリーを下っていきます。

ファストスイッチングの特性

ファストスイッチングは、バイナリ ツリーの構造に、ツリーのノードの一部として MAC ヘッダーの書き換え情報を保管するため、いくつかの特性があります。

  • ルーティング テーブルとファストキャッシュ コンテンツ(MACヘッダーリライト、たとえば)間に相関関係がないので、キャッシュ エントリを構築することはプロセス スイッチング パスで実行する必要があるすべての処理を含みます。 従って、ファスト キャッシュ エントリはパケットが切り替えられるプロセスであるので構築されます。

  • ARPキャッシュの MACヘッダー ARPテーブルが変更するとき(書き直しに使用する)とファストキャッシュの構造間に相関がないので、ファストキャッシュの部分は無効にする必要があります(およびパケットのプロセス スイッチングによって作り直されて)。

  • ファストキャッシュでは、ルーティング テーブルにある特定の宛先に対して、1 階層(1 プレフィクス長)にだけエントリが構築されます。

  • ((MAC1 すなわち、再帰ルートはファストキャッシュ自体の内で解決されます。

ファストスイッチングのエントリのエージング

ルーティング テーブルおよび ARPキャッシュとの同期の守り、使用されていないエントリをルータの過度に消費メモリからのファストキャッシュで保存するために損失からファースト スイッチング エントリを、ファストキャッシュの 1/20th は、ランダムに、毎分無効になります。 ルータ メモリが非常に低い透かしを下回る場合、ファスト キャッシュ エントリの 1/5th は毎分無効になります。

ファストスイッチングのプレフィクス長

全ての宛先に対して 1 プレフィクス長でのみエントリが構築できる場合、ファストスイッチングではどのようなプレフィクス長でエントリを構築するでしょうか。 ファースト スイッチングの用語の中では、宛先はルーティング テーブル内の 1つ の 到達可能な宛先、または主要なネットワークです。 ある特定のキャッシュ エントリを構築するどんなプレフィクス長でであって下さいか決定するためのルール:

  • ファースト ポリシー エントリを構築する場合は、常に /32 にキャッシュ

  • Multiprotocol over ATM virtual circuit(MPOA VC; MPOA バーチャル サーキット)のエントリを構築する場合には、常に /32 にキャッシュ

  • ネットワークがサブネット化されていない場合(メジャー ネットワークのエントリの場合):

    • 直接接続の場合は、/32 を使用

    • そうでない場合は、そのメジャー ネット マスクを使用

  • スーパーネットの場合、そのスーパーネットのマスクを使用

  • ネットワークがサブネット化されている場合:

    • 直接接続の場合は、/32 を使用

    • サブネットへの複数の経路がある場合は、/32 を使用

    • 他のすべてのケースでは、メジャー ネットでの最長のプレフィクス長を使用

ロード シェアリング

ファースト スイッチングは完全に基づく宛先です; ロード シェアリングはデスティネーションごとに発生します。 特定のデスティネーション ネットワークのための複数の等コストパスがある場合、ファストキャッシュはそのネットワークの内で到達可能各ホストのための 1 つのエントリを備えていますがあるホストに向かうすべてのトラフィックは 1 リンクに従います。

最適なスイッチング

Optimum スイッチングは 256 の方法 multiway ツリー(256 の方法 mtree)で転送情報および MAC ヘッダー リライト情報を保存します。 mtree を使用する踏む必要があるステップの数を減らしますプレフィクスを、次の図に示すように検知 するとき。

20d.gif

各オクテットが、最高で、関連する 4 ルックアップがあるか宛先をか見つけることに意味するツリーの各レベルで奪取 する 256 のブランチのどれを判別するのに使用されています。 より短いプレフィクス長に関しては、one-three ルックアップだけ必要となるかもしれません。 MAC ヘッダー リライト および 出力インターフェイスの情報はツリー ノードの一部として保存されます、従ってキャッシュ無効および次まだ老化することはファースト スイッチング行われます。

最適なスイッチングでは、ファストスイッチングと同様の方法で、各キャッシュ エントリに対するプレフィクス長を決定します。

Cisco Express Forwarding

Cisco Express Forwarding はまた、フォワーディングおよび MAC ヘッダー リライト情報を保存するのに 256 の方法データ構造を使用しますがツリーを使用しません。 Cisco Express Forwarding はのために捜される実際の情報はデータ構造にないことを意味する trie を使用します、; その代り、データは別々のデータ構造で保存され、trie はそれを単に指します。 すなわち、ツリー内のアウトバウンドインターフェイスおよび MACヘッダーリライト自体を保存してよりもむしろ、Cisco Express Forwarding は隣接テーブルと呼ばれる別々のデータ構造でこの情報を保存します。

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20e.gif

到達可能性に関する情報(CEF テーブル)とフォワーディング情報(隣接関係テーブル)を分けることによる利点がいくつかあります。

  • 隣接関係テーブルは CEF テーブルとは別に構築できるため、パケットをプロセススイッチングすることなく両方を構築できます。

  • パケットを転送するのに使用される MACヘッダーリライトが MACヘッダーリライトストリングでキャッシュ エントリで、そう変更します必要としませんキャッシュ エントリの無効を保存されません。

  • recursed ネクスト ホップをよりもむしろ転送情報を再帰ルートを解決するために直接、指すことができます。

基本的に、すべてのキャッシュ エージングは除去され、キャッシュはルーティング テーブルおよび ARPキャッシュに含まれている情報に基づいて事前につくられって います。 キャッシュ エントリを構築するためにスイッチを処理する必要性があらゆるパケットありません。

隣接関係テーブルのその他のエントリ

隣接テーブルは MACヘッダーリライトストリングおよびアウトバウンドインターフェイス情報以外エントリが含まれている場合があります。 いくつかの隣接テーブルに置くことができるエントリのさまざまな型は下記のものを含んでいます:

  • cache —特定の隣接したホストかルータに達するのに使用される MACヘッダーリライトストリングおよびアウトバウンドインターフェイス。

  • この IP アドレスに向かう受信パケットはルータによって受信する必要があります。 これにはルータ自体で設定されるブロードキャスト アドレスおよびアドレスが含まれています。

  • drop —この IP アドレスに向かうパケットは廃棄する必要があります。 これはアクセス リストによって拒否されるか、または 0インターフェイスにルーティングされたトラフィックに使用できます。

  • パント— Cisco Express Forwarding はこのパケットを交換できません; 次の最適なスイッチング方式(一般的にはファストスイッチング)で処理されるように転送する。

  • グリーニング—ネクスト ホップは直接接続されますが、現在利用できる MACヘッダーリライトストリングがありません。

グリーニング隣接関係

グリーニング隣接関係 エントリは特定のネクスト ホップが直接接続する必要があるが利用可能 な MAC ヘッダー リライト情報がありませんことを示します。 これらはどのように構築され、使用されて得るか。 次の図で示すように、CEF を実行し、ブロードキャスト ネットワークに接続されたルータは、デフォルトでいくつかの隣接関係テーブルを構築しています。

http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20f.gif

デフォルトで作成される 4 つの隣接関係テーブルのエントリは次のとおりです。

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.255/32, version 5, receive

ここでは、4 つのエントリがあることに注意してください。 3 つは、1 グリーニング受け取り。 各レシーブ エントリはグリーニング エントリは付属のネットワークのアドレス スペースの残りを表すがルータで設定されるブロードキャスト アドレスかアドレスを示します。 パケットがホスト 10.1.1.50 のために受信される場合、ルータはそれを切り替えるように試みそれをこのグリーニング隣接関係に解決されて見つけます。 Cisco Express Forwarding はそれから ARPキャッシュエントリが 10.1.1.50 のために必要であることに、ARPプロセス 送信 します ARPパケットを信号を送り、適切な隣接テーブル項目は新しい ARPキャッシュ 情報から構築されます。 このステップが完了する後、隣接テーブルに 10.1.1.50 のためのエントリがあります。

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.50/32, version 12, cached adjacency 208.0.3.2
0 packets, 0 bytes
  via 208.0.3.2, Ethernet2/0, 1 dependency
    next hop 208.0.3.2, Ethernet2/0
    valid cached adjacency
10.1.1.255/32, version 5, receive

次にルータが受信する 10.1.1.50 宛のパケットは、この新しい隣接関係を使って交換されます。

ロード シェアリング

Cisco Express Forwarding はまた他のどの割り込み コンテキスト 切り替え モードもよりロード シェアリングのよい形式を提供するのに Cisco Express Forwarding 表と隣接テーブル間の分離を利用します。 ロードシェアテーブルはこの図に示すように Cisco Express Forwarding 表と隣接テーブルの間で、挿入されます:

20g.gif

Cisco Express Forwarding 表は利用可能 な パラレルパスのためのさまざまな隣接テーブル項目にポインタが含まれているこのロードシェアテーブルを指します。 送信元 および 宛先アドレスはハッシュ アルゴリズムを通して各パケットかのために使用するべきどのロードシェアテーブルエントリを判別するために渡されます。 パケット ロード共有 1 基あたりに各パケットが別のロードシェアテーブルエントリを使用すれば設定することができます。

各ロードシェアテーブルに利用可能 なパスがルーティング テーブルのトラフィックシェア カウンタに基づいて分けられる 16 のエントリがあります。 ルーティング テーブルのトラフィックシェア カウンタがオール 1 (複数の等コストパスの場合にはように)なら、各々の可能性のある ネクスト ホップはロードシェアテーブルからポインタの等しい 番号を受け取ります。 (16 のロードシェアテーブルエントリがあるので)使用可能なパスの数が 16 で均等に割れない場合、いくつかのパスは他より More エントリを備えています。

Cisco IOS ソフトウェア リリース 12.0 で始まって、ロードシェアテーブルのエントリの数はある特定の各パスを作るために持っていますロードシェアテーブルエントリの比例した番号を減ります。 たとえば、ルーティング テーブルに 3 つの等コスト パスがある場合、15 のロードシェアテーブルエントリだけが使用されます。

どのスイッチングパスが最適か

それがプロセス レベル 切り替えよりファーストの少なくとも順序大きさであるので可能な限り、ルータに割り込みコンテキストで切り替えてほしいです。 Cisco Express Forwarding スイッチングは確定的にファースト他のどの切り替えモードもよりよくであり。 実行している IOS およびプロトコルがそれをサポートする場合使用 Cisco Express Forwarding 推奨します。 これはトラフィックが共有されるロードであるはずであるいくつかのパラレル リンクがある場合特に本当です。 どの IOS を CEF サポートのために必要とするか判別するために Cisco Feature Navigator登録ユーザのみ)ページにアクセスして下さい。


関連情報


Document ID: 13706