Ich bin mir nicht sicher, woher Ihre Design- und Routing-Tabelle stammt. In einer Umgebung wie Ihrer werden die Routen zu den Remote-Netzwerken normalerweise über Routing-Protokolle (dh dynamisches Routing) definiert. Die Verwendung statischer Routen (vom Benutzer / Administrator definiert) mit allen redundanten Pfaden, die Sie haben, führt schließlich zu Routing-Schleifen oder schwarzen Löchern.
Mit anderen Worten, jedes Subnetz Ihres Diagramms kann tatsächlich über jede Schnittstelle von R8 erreicht werden, abhängig von der Konfiguration der anderen Router.
Zum Beispiel: Wenn Sie die Schnittstelle 1 von R8 als nächsten Hop für 14.0.0.0 definieren (was bedeutet, dass Pakete, die an eine IP des 14.0.0.0 /? Subnetzes gerichtet sind, über die Schnittstelle 1 gesendet werden), und wenn R4 (die tatsächliche Der nächste Sprung von Schnittstelle 1 von R8) hat eine weitere statische Aufladung von 14.0.0.0 bis R1. Ihr Paket wird R8-> R4-> R1-> Ziel kreuzen. Wenn Sie in diesem Beispiel Ihr Paket für 14.0.0.0 weiterhin an R4 senden, R4 jedoch mit einer anderen statischen Anweisung für 14.0.0.0 konfiguriert ist, die auf R8 verweist, haben Sie eine Routing-Schleife, und Ihr Paket springt zwischen diesen R8 und R4 bis zum Ablauf der TTL.
Die gleiche Theorie gilt für jedes andere entfernte Netzwerk wie 12.0.0.0, bei dem es weniger offensichtlich ist, ob R8 sein Paket an R2 oder R4 weiterleiten soll.
Das Wichtigste ist, dass IP-Pakete keinen Speicher haben. Sie werden lediglich durch Auswertung ihres Ziels weitergeleitet (dh Router kümmern sich nicht um die Schnittstelle, von der das Paket empfangen wurde - es sei denn, Sie verwenden Dinge wie Quell- Routing, aber das ist hier nicht der Fall).
In der von Ihnen veröffentlichten Tabelle wird nicht angezeigt, ob statisches oder dynamisches Routing verwendet wird (es fehlt auch das Subnetz dieser Netzwerke). Wenn dies jedoch keine bestimmte theoretische Übung ist, benötigen Sie dynamisches Routing.
Dynamisches Routing kann den besten Pfad von einem Router zu einem Zielnetzwerk definieren, indem verschiedene Parameter wie Anzahl der Sprünge, Bandbreite, Latenz usw. verwendet werden (abhängig vom spezifischen dynamischen Routing-Protokoll). Außerdem können sie Fehler redundanter Verbindungen ordnungsgemäß verwalten.
Wenn Sie sich für ein anderes Beispiel für 12.0.0.0 entscheiden, das auf Abstürze des R3- und R3-Routers hinweist, leiten Sie weiterhin Pakete, die beispielsweise für 12.0.0.5 bestimmt sind, an ein Schwarzes Loch weiter. Wenn Sie sich für den Lastausgleich auf 12.0.0.0 mit 2 Routen (mit derselben Metrik) durch R3 und R4 entscheiden, wenn R4 ausfällt (oder eine seiner Schnittstellen defekt ist), leitet R8 das Paket 1 weiter an R3, das Paket, weiter 2 bis R4, das Paket 3 bis R3 und so weiter. Dies führt zu scheinbar zufälligen Dingen, denn wenn die Pakete TCP verwenden, werden die fehlenden erneut übertragen, wodurch weniger offensichtlich wird, dass die Hälfte Ihres Datenverkehrs in den Papierkorb verschoben wird (z. B. zeitweiliger Leitungsverlust einiger Dienste, Langsamkeit usw.).
Wenn Sie Linux verwenden, kann Quagga die Software für dynamisches Routing sein. Es wird jedoch davon ausgegangen, dass andere Router ein dynamisches Routing-Protokoll ausführen.
Wenn Ihr Ziel jedoch darin besteht, eine statische Route festzulegen, sollten diese Befehle funktionieren (ich gehe von / 24 aus, aber wenn es klasse ist, könnte es eine / 8 sein):
ip route add 14.0.0.0/24 dev eth3
gleich von:
ip route add 14.0.0.0/24 via 13.0.0.2
Auf jeden Fall wird die zweite normalerweise in einem Multiaccess-Netzwerk bevorzugt (kein Multicast- / Broadcast-Verkehr erforderlich, keine Tonnen von ARP-Anforderungen usw.).