CEF-Operationen auf dem L3-Switch gegen den Router

21

Ich verstehe, dass L3-Switches CEF für eine schnellere Paketweiterleitung verwenden. CEF funktioniert jedoch nicht für Pakete, die NAT durchlaufen müssen. Bedeutet dies, dass die CEF nicht von Edge-Routern und Edge-L3-Switches verwendet wird? Beschränkt sich der Nutzen von CEF auf das LAN?

Michael May
quelle

Antworten:

8

NAT kann natürlich CEF verwenden. Dies ist von Ciscos eigenem Handbuch hier zu finden: 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

Größere Plattformen unter IOS-XR, auf denen die FIB auf die Line Cards verteilt wird, unterstützen auch NAT der Carrier-Klasse, sodass ihre Nützlichkeit nicht nur auf das LAN beschränkt ist.

Viele L3-Switches von Cisco bieten auch überhaupt kein NAT an

ausgereift
quelle
2
Technisch gesehen haben Sie auf dem CEF-Pfad von Eingang zu Ausgang Einfügepunkte für Features (wie NAT). Wenn diese Einfügemarke vorhanden ist, funktioniert die Funktion mit aktiviertem CEF. Anders als bei der L3-Suche sind bei dieser Funktion möglicherweise keine Leistungssteigerungen zu verzeichnen, da CEF lediglich Daten für die Funktion angibt und die Funktion selbst nicht ändert. Aber meistens handelt es sich hierbei um unwichtige Details. Wichtig ist, dass CEF aktiviert bleibt.
Ytti
18

CEF ist das Wort von Cisco für ihre FIB. Wenn in L3 Schalter Sie tun 'sh ip CEF, keine dieser Informationen tatsächlich verwendet wird , um die Pakete überhaupt zu drücken, dann ist dies nur Software trie , die verwendet wird , um die Hardware-ASIC zu füllen.

CEF ist nur ein Begriff, den Cisco verwendet, um den Code für die Optimierung von Datenspeicherung und -abruf zu beschreiben. Es handelt sich nicht um eine bestimmte Technologie mit einer bestimmten Funktion.

In den meisten HW-Plattformen können Sie die Box nicht einfach ohne CEF ausführen, da die CEF-Datenstruktur zum Kompilieren der HW-spezifischen Informationen erforderlich ist.
Einige Funktionen wie MPLS hängen auch von der CEF-Datenstruktur ab und funktionieren daher nicht ohne diese.

LAN (L2) -Switching wird nicht über CEF abstrahiert, daher ist es überhaupt nicht von CEF abhängig.

Ich empfehle dieses Buch, um aktuelle Informationen über CEF zu erhalten (es wurde nach einer umfassenden CEF-Umschreibung um 12.2S geschrieben).

Wenn Sie die CEF-Definition von IP Trie FIB einschränken, kann dies offensichtlich nicht für NAPT verwendet werden, da Sie nicht im Voraus bestimmen können, was und wo nattiert ist. Wie bereits erläutert, handelt es sich bei CEF nicht um eine spezifische Technologie, sondern um ein umfassenderes Konzept. Daher ist es fraglich, ob es sich bei CEF um eine NAT-Funktion handelt oder nicht.

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

Ich würde niemals etwas ohne CEF laufen lassen und es ist wahrscheinlich nur aus althergebrachten Gründen die Wahl, es überhaupt zu deaktivieren, vorhanden. Betrachten Sie Juniper, sie haben keinen spezifischen Begriff, mit dem sie dasselbe Konzept beschreiben, da sie es nicht von einer alternativen Methode unterscheiden müssen, da eine solche minderwertige Alternative nicht existiert.

ytti
quelle
5
Nur um dies zu ergänzen - CEF ist ein Vermittlungspfad, ein Informationsbaum zum Weiterleiten der Informationen und so weiter. Der Name "CEF" kann daher auf vielfältige Weise verwendet werden und trägt zur Verwirrung bei. Tatsächlich wird NAT im CEF-Pfad unterstützt (ebenso wie Tausende anderer Funktionen), aber CEF-erstellte Tabellen enthalten nicht einige der Informationen, die zum reinen Umschalten von Paketen erforderlich sind, da sie, wie bereits erwähnt, verwendet werden. Zusätzliche Einträge müssen konsultiert werden (Sie werden von NAT-Code erstellt und verwaltet.) Wie auch immer, wenn das Paket im CEF-Pfad umgeschaltet werden kann, ohne auf die Prozessumschaltung zurückzugreifen, wird es weiterhin von CEF unterstützt.
Łukasz Bromirski
9

Bedeutet dies, dass die CEF nicht von Edge-Routern und Edge-L3-Switches verwendet wird? Beschränkt sich der Nutzen von CEF auf das LAN?

CEF ist nützlich, da es einem Router ermöglicht, die Layer2-Informationen während Layer3-Weiterleitungsvorgängen schnell neu zu schreiben. WAN-Router müssen Layer2-Header-Informationen genau wie LAN-Switches neu schreiben ... CEF ist für beide Routertypen äußerst nützlich.

Auf hoher Ebene erfüllt CEF zwei Funktionen:

  • Enthält eine Schattenkopie der Routingtabelle, die das geroutete Präfix einem nächsten Hop zuordnet
  • Enthält einen Verweis auf eine Layer2-Adjazenztabelle, die zwischengespeicherte Informationen zu Layer2-Headern enthält, die zum erneuten Schreiben des IP-Pakets über den im ersten Aufzählungszeichen genannten Egress-Next-Hop erforderlich sind.

Beispiel:

Betrachten Sie diesen Router, der eine WAN HDLC-Verbindung auf Serial1 / 0 und eine LAN-Verbindung über FastEthernet0 / 0 hat ...

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

Angenommen, ein IPv4-Paket, das zu 192.0.2.1 wechselt, gelangt von FastEthernet0 / 0 im LAN in den Router und muss Serial1 / 0 im WAN beenden (die Tatsache, dass es Serial1 / 0 verlässt, ist in der CEF-Tabelle zu finden ... und in der CEF Tabelle verweist auf die Nachbarschaftstabelle).

Wenn der Router das IPv4-Paket von FastEthernet0 / 0 empfängt, muss der Router den Ethernet-Header entfernen und dem HDLC-Header voranstellen , 0F000800da es sich um ein IPv4-Ziel handelt ( 0x0800gibt es einen HDLC-"Typ" -Wert für den nächsten Header) IPv4).

Wenn CEF die (trivialen) Informationen zum erneuten Schreiben des Headers für Serial1 / 0 nicht zwischengespeichert hat, müssen die Informationen auf der Prozessschalterebene (die sehr langsam ist) manuell nachgeschlagen werden. Diese Werte in der Adjazenztabelle ändern sich nicht, solange sich die Kapselung in Serial1 / 0 nicht ändert. Aus diesem Grund speichert Cisco IOS die Informationen zum Neuschreiben der Adjazenz in der Adjazenztabelle zwischen.

Die Informationen zum erneuten Schreiben werden beim Betrachten von Frame-Relay- oder ATM-PVCs umfassender.

Dieses Dokument zu CCO (Dokument-ID: 17812) kann die Dinge besser erklären, als ich es könnte, indem ich viel CCO-Inhalt erneut aufbereite

Mike Pennington
quelle
Werden Layer-2-Operationen nicht nur von der CAM konsultiert? Layer-3-Operationen konsultieren die FIB, in der CEF arbeitet, und wenn auf Layer 3 eine eingehendere Paketprüfung erforderlich ist (im Falle eines Pakets, das NAT durchlaufen muss), macht CEF dann nicht für WAN-Router unbrauchbar?
Michael 2.
1
CEF wird speziell nicht für / cache / adjacency- oder l3-Lookups verwendet. Dies ist eine schnelle Umschaltung (die überhaupt nicht mehr unterstützt wird). CEF ist vorab erstellt, sodass alle Daten, die Sie jemals für die Nachbarschafts- oder L3-Suche benötigen, bereits in einer Struktur vorliegen, die für die Suche mit den von der jeweiligen Plattform festgelegten Einschränkungen optimal ist.
Ytti
@ytti, es tut mir leid, aber CEF stellt Informationen zur Cache-Adjazenz zur Verfügung. Ich glaube, Sie sind verwirrt darüber, wie der Cache gefüllt ist Der wesentliche Unterschied zwischen CEF und den anderen Vermittlungsmethoden (wie fast-switching) besteht darin, dass CEF vorberechnet wird. CEF muss die Informationen jedoch immer noch zwischenspeichern, da sie sonst auf Prozessschalterebene nachgeschlagen werden müssen ... sehr langsam und aus dem Grund, dass wir CEF sowohl für LAN- als auch für WAN-Schnittstellen benötigen.
Mike Pennington
Ich denke, wir sind uns nicht einig darüber, was "Caching" bedeutet, aber der entscheidende Punkt ist, dass es vorab erstellt wurde und dass für viele Features (wie MPLS) nur Datenstrukturen vorhanden sind und kein "Prozesswechsel" -Speicher verfügbar ist zu.
Ytti
@ChristianDelapena, Sie verwechseln die Hardwareimplementierungen einer Hardware-Lookup-Tabelle (CAM-Speicher) mit dem IOS-Softwareprozess, der Hardware-Lookup-Tabellen (dh CEF) auffüllt. CEF ist vorhanden, sodass Sie einen Layer3-Präfixeintrag den erforderlichen Protokollumschreibinformationen in Layer2 zuordnen können. Layer2 kann jedoch aus vielen verschiedenen Protokollen bestehen, z. B. Frame-Relay, ATM, Packet-Over-Sonet, HDLC, PPP oder Ethernet. .. Alle diese Protokolle können IPv4 übertragen, benötigen jedoch bestimmte Felder in ihren Headern, bevor Sie das IP-Paket aufnehmen und es für den nächsten zu verarbeitenden WAN-Router kapseln können
Mike Pennington,