Split Horizon und Poison Reverse sind Verfahren der Computer-Netzwerktechnik und werden bei bestimmten Routing-Protokollen verwendet, um beim Informationsaustausch zwischen Routern Routingschleifen zu vermeiden.
Split-Horizon-Verfahren finden in den Protokollen RIP, EIGRP, IGRP und VPLS Anwendung.
Hintergrund
Bei der Kommunikation im Internet werden Datenpakete über Netzwerkverbindungen jeweils von einem Computer zum nächsten geleitet. Routing bezeichnet das Festlegen von Wegen bei der Nachrichtenübermittlung in Rechnernetzen. Routing-Protokolle sorgen für den Austausch von Routing-Informationen zwischen den Netzen und erlauben es den Routern, ihre Routing-Tabellen dynamisch aufzubauen.
Funktionsweise
Bei Split Horizon werden in der Routingtabelle für jedes Zielnetz die Anzahl der Hops und der Zwischenrouter dorthin gespeichert sowie die Information darüber, von welchem Router die Informationen empfangen wurden. Updates für ein Zielnetz werden zu diesem Router nicht gesendet, da die Informationen von diesem Router ja (womöglich) selbst zur Berechnung des Updates beigetragen haben und daher nicht "besser" sein können als die dort schon vorliegende Routing-Information (und tatsächlich "schlechter", wie man am folgenden Beispiel sieht).
Beispiel
Router C „weiß“ von Router B, dass das Netzwerk N0 über Router A zu erreichen ist.
Normalzustand:
Netz N0 → Router A ↔ Router B ↔ Router C
Ausfall eines Routers: Router A nicht zu erreichen
Netz N0 → Router A ←X X→ Router B ↔ Router C
Ohne Split Horizon
- Router B lernt beim nächsten Update von Router C, dass Router A über ihn in 2 Hops zu erreichen wäre. Router B würde das im Normalfall nicht interessieren, da er eine kürzere Strecke kennen würde, wenn Router A keinen Ausfall hätte.
- Durch den Ausfall entfernt Router B die Strecke über A aus seiner Routingtabelle und trägt stattdessen ein, dass es wohl eine Route von 3 Hops über C gibt: Die 2-Hop-Route, über die ihn C informiert hat, mit einem zusätzlichen Hop B nach C.
- Router C lernt beim nächsten Update von Router B, dass von dort keine 1-Hop-Route mehr nach A vorhanden ist, sondern nur mehr eine 3-Hop-Route. Er korrigiert also die ihm bekannte 2-Hop-Route nun zu einer 4-Hop-Route.
- Im nächsten Update lernt Router B von C, dass es statt der 2-Hop- nun nur mehr eine 4-Hop-Route über C gäbe, er trägt daher bei sich eine 5-Hop-Route ein.
- usw.usf.
Damit ist eine Routingschleife entstanden, die bis zu 16 Hops, der maximal möglichen Anzahl von Zwischenstationen bei RIP, hochzählt. Erst dann wird die Route zu Router A als unerreichbar markiert. Da Updates alle 30 Sekunden ausgetauscht werden, kann es also bis zu 15 mal 30 Sekunden, also über sieben Minuten dauern, bis der Ausfall eines Routers erkannt und die Verbindung zu ihm als unerreichbar markiert wird.
Mit Split Horizon
- Router C versendet keine Updates von dem Netz auf das Interface, von welchem er das Netz gelernt hat, und vermeidet somit Routingschleifen.
Poison Reverse
Beim Poison Reverse (mit blockierter Rückroute) werden alle über diese Schnittstelle gelernten/empfangenen Routen als „nicht erreichbar“ gekennzeichnet und zurückgesendet, indem die Anzahl der Hops direkt auf 16 (bei RIPv2) gesetzt wird, so dass diese Route nicht mehr von anderen Routern berücksichtigt wird, da jeder weiterer Hop unweigerlich "unendlich" (16) bedeuten würde.