Wo ist die Adjazenztabelle von Cisco Hardware dCEF gespeichert?

8

Bei Cisco Hardware dCEF wird basierend auf einigen auf der Cisco-Website veröffentlichten Dokumenten auf der Eingangsleitungskarte / -schnittstelle konzeptionell die FIB mit der dst-IP-Adresse nachgeschlagen und ein Zeiger auf einen Eintrag in der Adjazenztabelle abgerufen, in dem L2-Umschreibinformationen gespeichert sind. zB Nexthop Mac usw.

Was mich jedoch verwirrt, ist, dass das Umschreiben von L2 nicht auf der Karte / Schnittstelle der Ausgangsleitung erfolgt. Wenn ja, warum wird diese Adjazenztabelle dann beim Eingang gespeichert? Oder wo findet die Adjazenztabelle statt? Ein- oder Ausstieg? Wenn dies eingeht, werden die L2-Umschreibinformationen von der Eingangskarte auf die Ausgangsleitungskarte übertragen? Wäre das nicht eine Verschwendung von Fabric-Bandbreite?

wei
quelle
1
Denken Sie darüber nach: Wie kann ein Paket an die Ausgangsschnittstelle weitergeleitet werden, wenn die Eingangsschnittstelle keine Nachbarschaft hat?
Ricky Beam
Nun, Sie müssen nicht die Who-Adjazenz-Tabelle speichern, Sie können eine Art Ajacency-ID speichern, und beim Ausstieg können Sie diese Adjazenz-ID verwenden, um die Adjazenztabelle nachzuschlagen und die L2-Umschreibinformationen abzurufen. Wenn diese Adjazenztabelle auf Ingress Asic gespeichert ist, müssen Sie die Adjazenzinformationen jeder Egress Line Card auf der Ingress Line Card speichern. Wäre das nicht eine große Verschwendung von Mem?
Wei

Antworten:

9

Was mich jedoch verwirrt, ist, dass das Umschreiben von L2 nicht auf der Karte / Schnittstelle der Ausgangsleitung erfolgt.

Nicht wirklich, die Forward / Drop-Entscheidung, die L2-Adjazenzsuche, die Dekrement-TTL, die IP-Prüfsummenberechnung usw. erfolgen alle auf der Ingress- Linecard.

Konzeptionell können Sie den Informationsfluss auch innerhalb des Router-Gehäuses in eine Steuerebene und eine Datenebene aufteilen. Es scheint, dass sich der größte Teil Ihrer Verwirrung um die Funktionsweise der Steuerebene dreht. Dies ist ein kurzes Diagramm, das ich zur Veranschaulichung gehackt habe.

IPC und CEF

  • Der Routenprozessor erstellt die CEF-Tabelle aus Informationen zur Schicht-2-Nachbarschaft (einschließlich Ethernet, PPP, Sonett usw.) sowie allen bevorzugten Routen
  • Die gesamten Informationen zur CEF- und Adjazenztabelle werden in IPC-Nachrichten gepackt, die zwischen dem Routenprozessor und allen Linecards gesendet werden. Einzelne CEF-Einträge werden als XDRs in der IPC-Nachricht gerendert. Ein XDR ist nur eine Cisco-spezifische Methode zum Schreiben von CEF-Einträgen in eine IPC-Nachricht.
  • Einzelne Linecards entpacken die XDRs aus den IPC-Nachrichten und erstellen (was sollte) eine exakte Kopie der CEF- und Adjazenztabelle des Routenprozessors auf der Linecard.
  • Nachdem die Linecard die Überarbeitungen der CEF- und Adjazenztabellen abgeschlossen hat, wird auf der Linecard ein plattformspezifischer Prozess ausgeführt, um die Datenstrukturen zu berechnen, die für die Hardware der Plattform erforderlich sind, um Pakete auf der Linecard selbst weiterzuleiten und neu zu schreiben.

Synchronisierter IPC ist für den Betrieb von dCEF sehr wichtig. Wenn Sie die Nachrichten nicht zwischen allen Linecards synchronisieren, können Präfixinkonsistenzen auftreten .

Die Funktionsweise des Routers ist plattformspezifisch. Daher verweise ich auf die Plattform, die ich am besten kenne: Catalyst 6500 mit Supervisor720 / Supervisor2T. Die Weiterleitungs- und Umschreibe-Engine auf einer Catalyst 6500 dCEF-Linecard ist eigentlich eine Miniaturkopie des Supervisors selbst. Der gesamte IP-Weiterleitungs- und Vermittlungsprozess wird so ausgeführt, als ob das Paket zentral auf dem Supervisor weitergeleitet worden wäre. Die Ingress-dCEF-Linecard sucht die erforderlichen Informationen in der CAM / CEF-Tabelle und erstellt dann einen Header, den sie an das Paket anfügt.

Die Ausgangsleitungskarte betrachtet den Header und verwendet die darin enthaltenen Adjazenzinformationen, um das Paket auf die Leitung zu schreiben.

Warum wird diese Adjazenztabelle beim Eintritt gespeichert?

So können Sie die gesamte Weiterleitungsentscheidung beim Eingang treffen.

Wenn dies eingeht, werden die L2-Umschreibinformationen von der Eingangskarte auf die Ausgangsleitungskarte übertragen?

Ja

Wäre das nicht eine Verschwendung von Fabric-Bandbreite?

Ich glaube nicht, aber andererseits könnte ich voreingenommen sein :-)

Mike Pennington
quelle
Vielen Dank für die ausführliche Antwort! Ich gehe grundsätzlich davon aus, dass Linecard Fib mit RP synchronisiert ist. Meine Verwirrung liegt tatsächlich in der Datenebene, da ich weiß, dass einige Nicht-Cisco-Produkte beim Ausstieg eine Adjazenztabellensuche durchführen. Daher versuche ich herauszufinden, ob Cisco dies wirklich beim Ingress tut und warum dies für mich Speicher verschwendet und Fabric-Bandbreite.
Wei
Abfall ist subjektiv. Sie müssen die Suche irgendwo durchführen; Man könnte argumentieren, dass eine Suche nach dem Ausgang Ressourcen verschwendet und das Produkt teurer macht. Die Debatte könnte noch lange dauern und Steine ​​in die verschiedenen Winkel des Objekts werfen, das Sie nicht mögen. Unter dem Strich verwendet Cisco eine bescheidene Menge an Speicher für die Ingress-Linecard, und die Adjazenzinformationen werden ohnehin nicht über die Fabric des Catalyst6500 gesendet. Adjazenzergebnisse werden über einen dedizierten RBUS an die Egress Linecard gesendet.
Mike Pennington
Weitere Informationen zum RBUS: Sup720-Architekturpapier
Mike Pennington,
3

Wenn die verteilte Cisco Express-Weiterleitung aktiviert ist, behalten Leitungskarten wie die VIP-Leitungskarten oder die Internet Router-Leitungskarten der Cisco 12000-Serie eine identische Kopie der FIB- und Adjazenztabellen bei. Die Leitungskarten führen eine Expressweiterleitung zwischen Portadaptern durch, wodurch die RP von der Beteiligung am Vermittlungsvorgang entlastet wird. Die verteilte Cisco Express-Weiterleitung verwendet einen IPC-Mechanismus (Interprocess Communication), um die Synchronisation von FIB-Tabellen und Adjazenztabellen auf den RP- und Leitungskarten sicherzustellen. - Cisco

Das RP (das verschiedene Routing-Protokollprozesse ausführt) erstellt die FIB und veröffentlicht sie auf allen Linecards. Es gibt eine FIB, die jedoch auf jeder Linecard repliziert wird. (Ja, manchmal sind sie nicht mehr synchron.)

Ricky Beam
quelle
Ja, diesen Teil verstehe ich. Der Teil, über den ich verwirrt bin, ist, dass alle von Cisco veröffentlichten Dokumente zu implizieren scheinen, dass L2-Umschreibinformationen beim Eintritt nachgeschlagen werden, was für mich nicht viel Sinn macht.
Wei