L3スイッチとルーターのCEF操作


21

L3スイッチはCEFを使用してパケット転送を高速化することを理解しています。ただし、CEFはNATを実行する必要があるパケットには機能しません。これは、エッジルータおよびエッジL3スイッチでCEFが使用されないことを意味しますか?CEFの有用性はLANに限定されていますか?

回答:


8

NATはもちろんCEF​​を使用できます。これはここにあるCisco自身のガイドからです:http : //www.cisco.com/en/US/tech/tk648/tk361/technologies_q_and_a_item09186a00800e523b.shtml

Q. What kind of routing performance can be expected when using Cisco IOS NAT?

    A. Cisco IOS NAT supports Cisco Express Forwarding switching, fast switching, and process switching. For 12.4T release and later, fast-switching path is no longer supported. For Cat6k platform, the switching order is Netflow (HW switching path), CEF, process path.

    Performance depends on several factors:

        The type of application and its type of traffic

        Whether IP addresses are embedded

        Exchange and inspection of multiple messages

        Source port required

        The number of translations

        Other applications running at the time

        The type of hardware and processor

FIBがラインカードに分配されるIOS-XRを実行するより大きなプラットフォームは、キャリアグレードNATもサポートするため、有用性はLANだけに限定されません。

また、CiscoのL3スイッチの多くは、NATをまったく実行していません


2
技術的には、入力から出力へのCEFパス上に、機能(NATなど)の挿入ポイントがあります。この挿入ポイントが存在する場合、機能はCEFを有効にして機能します。ただし、L3ルックアップとは異なり、CEFは機能自体を変更するのではなく、機能のデータを単に提供するため、この機能のパフォーマンスの向上は見られない場合があります。しかし、ほとんどこれは重要ではない詳細であり、重要な詳細は、CEFを有効にしておくことです。
ytti

18

CEFは、FIBに対するシスコの言葉です。L3スイッチで「sh ip cef」を実行すると、この情報はパケットをプッシュするために実際に使用されません。これは、ハードウェアASICに入力するために使用されるソフトウェア試行です。

CEFは、最適化されたデータストレージ/検索コードを記述するためにシスコが使用する用語であり、特定の機能を備えた特定のテクノロジーではありません。

ほとんどのハードウェアプラットフォームでは、ハードウェア固有の情報をコンパイルするにはCEFデータ構造が必要であるため、CEFなしでボックスを単純に実行することはできません。
MPLSなどの一部の機能もCEFデータ構造に依存しているため、これがないと機能しません。

LAN(L2)スイッチングはCEFを介して抽象化されないため、CEFにまったく依存しません。

CEFに関する非常に最新の情報については、この本をお勧めします(12.2Sを中心とした主要なCEFの書き換え後に書かれています)

IP Trie FIBのCEF定義を制約すると、NAPTに使用できないことは明らかです。これは、何がどこにあるかを事前に決定できないためです。しかし、説明したように、CEFは特定のテクノロジーではなく、より広い概念です。したがって、CEFがNAT機能であるかどうかは議論の余地があります。

bu.ip.fi#sh cef features global  | b Local
  Global Local features not attached to a specific interface:
     NAT
bu.ip.fi#

私はCEFなしでは何も実行しません。それはおそらく、それを無効にするという選択肢が存在するという従来の理由によるものです。ジュニパーを考えてみてください。同じ概念を説明するために使用する特定の用語はありません。下位の代替手段が存在しないため、他の方法と区別する必要はありません。


5
これに追加するだけです-CEFはパス、情報を転送するための情報ツリーなどを切り替えているため、「CEF」という名前はさまざまな方法で使用され、混乱を招きます。実際、NATはCEFパスでサポートされています(他の数千の機能と同様)が、CEFで作成されたテーブルには、yttiが指摘したように純粋にパケットを使用することでパケットを切り替えるために必要な情報の一部が含まれていないため、追加のエントリを参照する必要があります(これらはNATコードによって構築および保守されます)。とにかく、パケットがプロセススイッチングにフォールバックせずにCEFパスでスイッチングできる場合でも、CEFでサポートされる機能です。
ルカシュBromirski

9

これは、エッジルータおよびエッジL3スイッチでCEFが使用されないことを意味しますか?CEFの有用性はLANに限定されていますか?

CEFは、ルーターがLayer3転送操作中にLayer2情報を迅速に書き換えることができるため便利です。WANルーターは、LANスイッチと同様にレイヤー2ヘッダー情報を書き換える必要があります... CEFは、両方のタイプのルーターに非常に役立ちます。

高レベルで、CEFは2つの機能を実行します。

  • ルーティングされたプレフィックスをネクストホップにマッピングするルーティングテーブルのシャドウコピーが含まれています
  • レイヤー2隣接テーブルへの参照が含まれます。このテーブルは、最初の箇条書きで述べた出力ネクストホップを介してIPパケットを書き換えるのに必要なレイヤー2ヘッダーに関するキャッシュ情報を提供します。

例:

Serial1 / 0にWAN HDLCリンクがあり、FastEthernet0 / 0経由のLAN接続があるこのルーターを検討してください。

R1#show adjacency internal
Protocol Interface                 Address
IP       Serial1/0                 point2point(5)
                                   0 packets, 0 bytes
                                   0F000800             <--------- HDLC Header rewrite info
                                   CEF   expires: 00:02:17
                                         refresh: 00:00:17
                                   Epoch: 0
                                   Fast adjacency disabled
                                   IP redirect enabled
                                   IP mtu 1500 (0x0)
                                   Fixup disabled
                                   Adjacency pointer 0x6663D3E0, refCount 5
                                   Connection Id 0x000000
                                   Bucket 6

192.0.2.1に向かうIPv4パケットがLANのFastEthernet0 / 0からルーターに入り、WANのSerial1 / 0を終了する必要があると仮定します(Serial1 / 0を終了するという事実はCEFテーブルにあります...およびCEFテーブルは隣接テーブルを参照します)。

ルーターがFastEthernet0 / 0からIPv4パケットを受信すると、ルーターはイーサネットヘッダーを取り除き、HDLCヘッダーを追加する必要があります。これは0F000800、IPv4宛先0x0800であるためです(次のヘッダーがHDLC "type"値として存在するため) IPv4)。

CEFがSerial1 / 0の(簡単な)ヘッダー書き換え情報をキャッシュしていない場合、プロセススイッチレベルで情報を手動で検索する必要があります(非常に遅い)。Serial1 / 0のカプセル化が変更されない限り、これらの隣接テーブルの値は変更されません。したがって、Cisco IOSは隣接テーブルの隣接書き換え情報をキャッシュします。

書き換え情報は、フレームリレーまたはATM PVCを見るとより複雑になります。

CCOに関するこのドキュメント(ドキュメントID:17812)は、多くのCCOコンテンツを再ハッシュすることで、私ができるよりも良いことを説明するかもしれません


レイヤー2の操作はCAMのみによって相談されませんか?レイヤ3オペレーションは、CEFが動作するFIBを参照します。レイヤ3でより詳細なパケット検査が必要な場合(パケットをNAT処理する必要がある場合)、CEFはWANルーターに役に立たないでしょうか?
マイケル5月

1
CEFは特に/ cache /隣接関係またはl3ルックアップには使用されません。これは「高速切り替え」です(これはまったくサポートされていません)。CEFは事前に構築されているため、隣接関係やl3ルックアップに必要となる可能性のあるすべてのデータは、特定のプラットフォームで設定された制約で検索するのに最適な構造に既になっています。
ytti

@ytti、申し訳ありませんが、CEFは隣接情報をキャッシュします、キャッシュがどのように読み込まれるかについて混乱していると思います(パケットをキャッシュするにはパントする必要があると仮定していますが、これは真実ではありません)... CEFと他の切り替え方法(などfast-switching)の実質的な違いは、CEFが事前に計算されていることです。ただし、CEFは引き続き情報をキャッシュする必要があります。そうでない場合は、プロセススイッチレベルで検索する必要があります。非常に遅く、LANインターフェイスとWANインターフェイスの両方にCEFが必要な理由です。
マイクペニントン

「キャッシング」の意味については意見が分かれていると思いますが、重要な点は、ビルド前であり、多くの機能(MPLSなど)ではデータの構造にすぎず、フォールバックする「プロセススイッチング」ストレージがないことですに。
-ytti

@ChristianDelapena、ハードウェアルックアップテーブル(CAMメモリ)のハードウェア実装と、ハードウェアルックアップテーブル(CEF)を生成するIOSソフトウェアプロセスを混同しています。CEFが存在するため、layer3プレフィックスエントリをlayer2で必要なプロトコル書き換え情報にマッピングできます。ただし、layer2は、frame-relay、atm、packet-over-sonet、hdlc、ppp、またはethernetなど、さまざまなプロトコルにすることができます。 。これらのプロトコルのすべてがIPv4を運ぶことができますが、彼らはあなたがそのIPパケットを取得し、プロセスに次のWANルータのためにそれをカプセル化することができます前に、彼らのヘッダーに満たされた特定のフィールドを必要とする
マイク・ペニントン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.