Beziehung zwischen der Routing-Tabelle und der Netzwerkschicht der Weiterleitungstabelle

722
calveeen

Bei bestimmten Routing-Algorithmen wie dem Distanzvektor-Algorithmus wird der kürzeste Pfad zum nächsten Router bestimmt.

Auf der anderen Seite zeigt die Weiterleitungstabelle an, an welche Router-Schnittstelle weitergeleitet werden soll, und zwar basierend auf der Übereinstimmung der IP-Adresse mit der längsten Präfix-Schnittstelle.

Da in den Routing-Tabellen jedes Routers die Distanzvektoren enthalten sind, die uns die kürzeste Entfernung zu allen anderen Routern im Netzwerk angeben (stabiler Zustand).

Darauf basierend habe ich einige Fragen.

1) Da die Routing-Tabellen den kürzesten Abstand zum nächsten Hop-Router enthalten, warum muss eine Weiterleitungstabelle angegeben werden, an welche Router-Schnittstelle weitergeleitet werden soll? Wie lassen sich die beiden Konzepte miteinander in Einklang bringen? oder vermisse ich etwas

2) Routing-Algorithmen müssen die kürzeste Route für ein Paket von einem Client ermitteln, um beispielsweise einen Server zu erreichen. Bedeutet dies, dass jedes Mal, wenn eine TCP-Verbindung zu verschiedenen Servern hergestellt wird, die kürzeste Route anhand der Routingtabelle des Routers ermittelt wird. Wie genau passiert das? Mir ist nur bekannt, dass Router die Distanzvektoren aller Router im Netzwerk speichern, die die kürzeste Entfernung zu allen Routern in diesem Netzwerk ist. Wie verwenden sie diese Informationen, um den kürzesten Pfad für das Paket zu ermitteln?

Hoffe meine Frage ist klar.

0

2 Antworten auf die Frage

1
harrymc

Sie behalten definitiv nicht die gleichen Informationen.

Routing-Tabelle ist eine Layer-3-Tabelle, die besagt, dass für X.X.X.X/YIP-Ziele ein z.z.z.zRouter durchlaufen wird .
Die Weiterleitungstabelle ist eine Schicht-2-Tabelle, die für die Kommunikation mit dem z.z.z.zRouter angibt, Pakete an die MAC-Adresse zu senden aa:bb:cc:dd:ee:ff.

Beispielsweise könnte die Weiterleitungstabelle sagen, dass ein an ein Ziel gebundenes Paket 192.168.1.0/24aus dem physischen Port Ethernet1 / 2 gesendet werden sollte.

In Ihrem lokalen Netzwerk verwenden Sie die Weiterleitungstabelle, um die MAC-Adressen der anderen Hosts abzurufen und ihnen die Pakete zu senden. Ihr Netzwerkgerät sendet ein arp whohas ip z.z.z.zPaket auf Layer 2, um die entsprechende MAC-Adresse zu erhalten.

Um mit einem Host in einem anderen Subnetz zu kommunizieren, sollten Sie ihn über einen Router in Ihrem lokalen Netzwerk leiten. Die Routing-Tabelle gibt an, über welche IP-Adresse dieser Router verfügt. Welcher Router Sie erreichen, wird über den Weiterleitungsmechanismus durchgeführt.

Mit anderen Worten, die Routingtabelle enthält alle Routen, die ein Knoten beibehalten möchte, und die dort verwendeten Informationen werden von den Routingprotokollen verwendet. Die Weiterleitungstabelle wird von der Hardware verwendet, um die Pakete physisch in die Schnittstellen hinein und aus ihnen heraus zu verschieben. Die Hardware kann basierend auf den Weiterleitungsinhalten weiterleiten, während die Routingtabelle noch aktualisiert wird.

1
grawity

Es gibt zwei Dinge, die als "Weiterleitungstabellen" bezeichnet werden können: Die Zuordnung von MAC → Ports eines L2-Switches und die FIB eines L3-Routers. Basierend auf dem Rest Ihrer Frage gehe ich davon aus, dass Sie tatsächlich nach letzterem fragen. (Wenn Sie das erstere wirklich gemeint haben, lesen Sie stattdessen @ harrymc's Antwort.)

1) Da die Routing-Tabellen den kürzesten Abstand zum nächsten Hop-Router enthalten, warum muss eine Weiterleitungstabelle angegeben werden, an welche Router-Schnittstelle weitergeleitet werden soll? Wie lassen sich die beiden Konzepte miteinander in Einklang bringen? oder vermisse ich etwas

Routing-Protokolle werden normalerweise mit zwei Datenbanken beschrieben:

  • Die 'RIB' (Routing Information Base) enthält Eingaben, die vom Routing-Protokoll zur Entscheidungsfindung verwendet werden, z. B. alle möglichen Routen, Distanzvektoren, Verbindungszustände oder was auch immer. In BGP würde es alle Routenanzeigen enthalten, die von anderen BGP-Peers empfangen wurden. RIB-Einträge verfügen möglicherweise noch nicht über direkte Zuordnungen zwischen einer Route und ihrer Schnittstelle.

  • Die "FIB" (Weiterleitungsinformationsbasis) ist das Ergebnis der Entscheidungen des Routing-Algorithmus. Es hat nur die spezifischen Routen, die der Algorithmus gewählt hat, zusammen mit den aufgelösten Gateway-Adressen und Geräten. Im Grunde ist es die "Routing-Tabelle", die Sie von Linux / BSD kennen.

Die RIB wird intern von den Routing-Protokoll-Daemons aufbewahrt, während die FIB in die Routingtabelle des Betriebssystems (oder in hardwarebeschleunigte Routing- / Weiterleitungschips) exportiert wird. Mit anderen Worten, was Sie unter ip routeLinux sehen, ist eigentlich die FIB.

Die Trennung existiert als Optimierung, da die Bestimmung des besten Pfads nicht schnell ist. Es kann ziemlich viel CPU und Arbeitsspeicher erfordern (und es ist nicht so einfach wie immer auf dem "kürzesten" Pfad).

Anstatt zu versuchen, die kürzeste Route für jedes Paket zu berechnen, muss dies nur getan werden, wenn sich der Inhalt der RIB tatsächlich ändert. Daher werden die Routen vorberechnet und in die FIB eingefügt, wodurch nur der letzte letzte Suchschritt ausgeführt werden muss das längste übereinstimmende Präfix für jedes Paket.

2) Routing-Algorithmen müssen die kürzeste Route für ein Paket von einem Client ermitteln, um beispielsweise einen Server zu erreichen. Bedeutet dies, dass jedes Mal, wenn eine TCP-Verbindung zu verschiedenen Servern hergestellt wird, die kürzeste Route anhand der Routingtabelle des Routers ermittelt wird.

Nein. Wie bereits erwähnt, werden die "besten" Routen immer dann berechnet, wenn die Netzwerktopologie geändert wird. Sie werden dann in die FIB geladen, so dass einzelne Verbindungen nur eine schnelle Suche nach dem "längsten Präfix" durchführen müssen.

Das Internet ist ein paketvermitteltes Netzwerk. Dies bedeutet, dass die Routensuche nicht nur beim Herstellen einer TCP-Verbindung durchgeführt wird, sondern auch für jedes einzelne Paket später. (Und ja, das bedeutet, dass sogar bestehende TCP-Verbindungen plötzlich einen anderen Pfad als zuvor einschlagen können.) Dies steht im Gegensatz zu leitungsvermittelten Netzwerken.

Wie genau passiert das? Mir ist nur bekannt, dass Router die Distanzvektoren aller Router im Netzwerk speichern, die die kürzeste Entfernung zu allen Routern in diesem Netzwerk ist. Wie verwenden sie diese Informationen, um den kürzesten Pfad für das Paket zu ermitteln?

Für die Mechanismen, die den kürzesten Weg im Allgemeinen bestimmen, ist der Algorithmus von Dijkstra ein guter Anfang. Es ist die Basis von OSPF und einigen anderen Protokollen.

Das heißt, jedes Routing-Protokoll macht es anders. BGP hat eigene Regeln, OSPF und IS-IS haben eigene, RIP und Babel haben eigene. (Einige Protokolle sind Distanzvektoren, einige sind Verbindungsstatus, einige sind beide gleichzeitig. OSPF ist beispielsweise Verbindungsstatus innerhalb eines Bereichs, aber Distanzvektor zwischen Bereichen.) Ein Router verfügt sogar über globale Regeln, die dies angeben Bevorzugen Sie OSPF-Routen gegenüber RIP, RIP gegenüber BGP usw.

Beachten Sie, dass nicht alle Router überhaupt ein automatisches Routing-Protokoll ausführen. Es ist durchaus möglich, dass alle Routen in der FIB manuell vom Administrator eingegeben werden.

"Anstatt jedoch zu versuchen, die kürzeste Route für jedes Paket zu berechnen, muss dies nur getan werden, wenn sich der Inhalt der RIB tatsächlich ändert. Daher werden die Routen vorberechnet und in die FIB geschrieben, was nur den letzten Schritt von Suchen Sie nach dem längsten übereinstimmenden Präfix für jedes Paket. " Kann ich mein Verständnis dazu überprüfen? Wenn ein IP-Paket den Standard-Gateway-Router erreicht, weiß es alle Router, auf die es bereits springen wird? Oder kennt es nur den nächsten Hop-Router für jeden Router, den es erreicht? Ich denke es ist das letztere? calveeen vor 5 Jahren 0
Da es so viele Server im Internet gibt, ist das Routing und alles für diese Server bereits vorberechnet? calveeen vor 5 Jahren 0
@calveeen: Einfache IP-Router wählen nur den nächsten nächsten Hop und können nichts steuern, was darüber hinausgeht. (Es gibt Ausnahmen wie MPLS-Netzwerke, aber das ist nicht mehr wirklich IP.) grawity vor 5 Jahren 0
Okay, der Austausch von Distanzvektoren (Routing-Protokollen), die in der RIB enthalten sind, helfen dabei, die FIB zu bestimmen, die im Grunde die längste Präfixübereinstimmung ist. Und die Routen zu allen Servern sind bereits vorberechnet, sodass die Router nur auf der Basis der IP-Adresse des IP-Pakets an den nächsten Router weiterleiten müssen. calveeen vor 5 Jahren 0
Vielen Dank für die Beantwortung meiner Frage und auch für die Art und Weise, wie Sie Ihre Antwort organisiert haben calveeen vor 5 Jahren 0
@calveeen: Ja, aber die Routen sind zusammengefasst: ISP A kümmert sich nicht um jedes einzelne Gerät, das ISP B möglicherweise hat. Idealerweise hat es nur eine einzige Route für das gesamte Netzwerkpräfix von ISP B. (Nun, in der Praxis besitzen viele ISPs mehrere Präfixe, insbesondere mit IPv4 ... zum Beispiel [hier ist, was XS4ALL über BGP ankündigt] (https://bgp.he.net/AS3265#_prefixes).) Normalerweise wird die Aggregation intern durchgeführt - Router X hat nur Routen für ganze Subnetze, die von Routern Y oder Z (oder sogar von Subnetzenblöcken) verwaltet werden, anstatt einzelner Adressen. grawity vor 5 Jahren 0