Das Routing Information Protocol ( RIP ) ist eines der ältesten Distanzvektor-Routingprotokolle und verwendet die Hop-Anzahl als Routingmetrik . RIP verhindert Routingschleifen , indem es die Anzahl der Hops auf einem Pfad von der Quelle zum Ziel begrenzt. Die maximale Hop-Anzahl für RIP beträgt 15, was die Größe der von RIP unterstützten Netzwerke einschränkt.

RIP implementiert die Split-Horizon- , Route-Poisoning- und Holddown- Mechanismen, um zu verhindern, dass falsche Routing-Informationen weitergegeben werden.

Bei RIPv1 senden Router alle 30 Sekunden Aktualisierungen ihrer Routing-Tabelle. In den ersten Implementierungen waren die Routing-Tabellen so klein, dass der Datenverkehr unbedeutend war. Mit zunehmender Netzwerkgröße wurde jedoch deutlich, dass es alle 30 Sekunden zu massiven Datenverkehrsspitzen kommen konnte, selbst wenn die Router zu beliebigen Zeitpunkten initialisiert worden waren.

In den meisten Netzwerkumgebungen ist RIP nicht das bevorzugte Routing-Protokoll , da seine Konvergenzzeit und Skalierbarkeit im Vergleich zu EIGRP , OSPF oder IS-IS schlecht sind . Es ist jedoch einfach zu konfigurieren, da RIP im Gegensatz zu anderen Protokollen keine Parameter benötigt.

RIP verwendet das User Datagram Protocol (UDP) als Transportprotokoll und ist die reservierte Portnummer 520 zugewiesen. [ 1 ]

Entwicklung des Distanzvektor-Routings

Basierend auf dem Bellman-Ford-Algorithmus und dem Ford-Fulkerson-Algorithmus wurden ab 1969 Distanzvektor-Routingprotokolle in Datennetzen wie dem ARPANET und CYCLADES implementiert. Der Vorgänger von RIP war das Gateway Information Protocol (GWINFO), das Mitte der 1970er-Jahre von Xerox für das Routing seines experimentellen Netzwerks entwickelt wurde . Als Teil der Xerox Network Systems (XNS)-Protokollsuite wurde GWINFO zum XNS Routing Information Protocol weiterentwickelt. Dieses XNS RIP bildete wiederum die Grundlage für frühe Routingprotokolle wie Novells IPX RIP, AppleTalks Routing Table Maintenance Protocol (RTMP) und IP RIP. Die Berkeley Software Distribution ( BSD) von UNIX aus dem Jahr 1982 implementierte RIP im routed- Daemon . Die Version 4.2BSD erwies sich als populär und bildete die Basis für nachfolgende UNIX-Versionen, die RIP im routed- oder gated -Daemon implementierten. Letztendlich wurde RIP bereits umfassend eingesetzt [ 2 ], bevor der von Charles Hedrick verfasste Standard 1988 als RIPv1 verabschiedet wurde. [ 3 ]

Die RIP-Hop-Zählung

Die von RIP verwendete Routing-Metrik zählt die Anzahl der Router, die durchlaufen werden müssen, um ein Ziel-IP-Netzwerk zu erreichen. Der Wert 0 bedeutet, dass das Netzwerk direkt mit dem Router verbunden ist. 16 Hops bedeuten, dass das Netzwerk gemäß dem RIP-Hop-Limit nicht erreichbar ist. [ 4 ]

Versionen

Es gibt drei standardisierte Versionen des Routing Information Protocol: RIPv1 und RIPv2 für IPv4 und RIPng für IPv6 .

RIP Version 1

Die ursprüngliche Spezifikation von RIP wurde 1988 veröffentlicht. [ 3 ] Beim Start und anschließend alle 30 Sekunden sendet ein Router mit RIPv1-Implementierung eine Anfragenachricht über jede RIPv1-fähige Schnittstelle an die Adresse 255.255.255.255 . Benachbarte Router, die die Anfragenachricht empfangen, antworten mit einem RIPv1-Segment, das ihre Routing-Tabelle enthält . Der anfragende Router aktualisiert seine eigene Routing-Tabelle mit der erreichbaren IP-Netzwerkadresse, der Hop-Anzahl und dem nächsten Hop, d. h. der Router-Schnittstellen-IP-Adresse, von der die RIPv1-Antwort gesendet wurde. Da der anfragende Router Aktualisierungen von verschiedenen benachbarten Routern empfängt, aktualisiert er die erreichbaren Netzwerke in seiner Routing-Tabelle nur dann, wenn er Informationen über ein erreichbares Netzwerk erhält, das noch nicht in seiner Routing-Tabelle vorhanden ist, oder wenn er die Information erhält, dass ein bereits in seiner Routing-Tabelle vorhandenes Netzwerk mit einer geringeren Hop-Anzahl erreichbar ist. Daher hat ein RIPv1-Router in den meisten Fällen nur einen Eintrag für ein erreichbares Netzwerk, nämlich das mit der geringsten Hop-Anzahl. Empfängt ein Router von zwei verschiedenen benachbarten Routern die Information, dass dasselbe Netzwerk mit derselben Anzahl an Hops, aber über zwei verschiedene Routen erreichbar ist, wird das Netzwerk zweimal mit unterschiedlichen Next-Hop-Routern in die Routing-Tabelle eingetragen. Der RIPv1-fähige Router führt dann ein sogenanntes Equal-Cost-Load-Balancing für IP-Pakete durch. [ 4 ]

RIPv1-fähige Router fragen nicht nur alle 30 Sekunden die Routing-Tabellen anderer Router ab, sondern empfangen auch Anfragen von benachbarten Routern und senden ihrerseits ihre eigene Routing-Tabelle. RIPv1-Routing-Tabellen werden daher alle 25 bis 35 Sekunden aktualisiert. [ 4 ] Das RIPv1-Protokoll fügt der Aktualisierungszeit eine kleine Zufallsvariable hinzu, um eine Synchronisierung der Routing-Tabellen in einem LAN zu vermeiden. [ 5 ] Man ging davon aus, dass sich die Routing-Aktualisierungen aufgrund der zufälligen Initialisierung zeitlich verteilen würden, was sich jedoch in der Praxis als falsch erwies. Sally Floyd und Van Jacobson zeigten 1994, dass sich die Timer auch ohne eine leichte Randomisierung des Aktualisierungstimers im Laufe der Zeit synchronisieren. [ 6 ]

RIPv1 kann in den Silent-Modus konfiguriert werden, sodass ein Router die Routingtabellen benachbarter Router anfordert und verarbeitet und seine eigene Routingtabelle sowie die Hop-Anzahl für erreichbare Netzwerke aktuell hält, aber seine eigene Routingtabelle nicht unnötigerweise an das Netzwerk sendet. Der Silent-Modus wird üblicherweise für Hosts implementiert. [ 7 ]

RIPv1 verwendet klassenbasiertes Routing. Die periodischen Routing-Updates enthalten keine Subnetzinformationen und unterstützen daher keine Subnetzmasken variabler Länge (VLSM). Diese Einschränkung verhindert, dass innerhalb derselben Netzwerkklasse Subnetze unterschiedlicher Größe existieren . Anders ausgedrückt: Alle Subnetze einer Netzwerkklasse müssen die gleiche Größe haben. Zudem wird keine Router-Authentifizierung unterstützt, wodurch RIP anfällig für verschiedene Angriffe ist.

RIP Version 2

Aufgrund der Mängel der ursprünglichen RIP-Spezifikation wurde 1993 RIP Version 2 (RIPv2) entwickelt [ 4 ] , 1994 veröffentlicht [ 8 ] und 1998 als Internetstandard 56 deklariert [ 9 ] . RIPv2 ermöglichte die Übertragung von Subnetzinformationen und unterstützte somit Classless Inter-Domain Routing (CIDR). Um die Abwärtskompatibilität zu gewährleisten , blieb die Hop-Anzahlbegrenzung auf 15 erhalten. RIPv2 bietet die Möglichkeit zur vollständigen Interoperabilität mit der Vorgängerspezifikation, sofern alle „ Must Be Zero“ -Protokollfelder in den RIPv1-Nachrichten korrekt spezifiziert sind. Zusätzlich ermöglicht eine Kompatibilitätsschalterfunktion [ 9 ] detaillierte Anpassungen der Interoperabilität.

Um unnötige Lasten auf Hosts zu vermeiden, die nicht am Routing beteiligt sind, sendet RIPv2 die gesamte Routing-Tabelle per Multicast an alle benachbarten Router unter der Adresse 224.0.0.9 , im Gegensatz zu RIPv1, das Broadcast verwendet . Unicast- Adressierung ist für spezielle Anwendungen weiterhin zulässig.

Die ( MD5- )Authentifizierung für RIP wurde 1997 eingeführt. [ 10 ] [ 11 ]

In RIP Version 2 wurden außerdem Routen-Tags hinzugefügt. Diese Funktionalität ermöglicht die Unterscheidung zwischen Routen, die vom RIP-Protokoll gelernt wurden, und Routen, die von anderen Protokollen gelernt wurden.

RIPng

RIPng (RIP Next Generation) ist eine Erweiterung von RIPv2 zur Unterstützung von IPv6 , dem Internetprotokoll der nächsten Generation . [ 12 ] Die Hauptunterschiede zwischen RIPv2 und RIPng sind:

  • Unterstützung von IPv6-Netzwerken.
  • Während RIPv2 die Authentifizierung von RIPv1-Updates unterstützt, ist dies bei RIPng nicht der Fall. IPv6-Router sollten damals IPsec zur Authentifizierung verwenden.
  • RIPv2 kodiert den nächsten Hop in jeden Routeneintrag, RIPng erfordert eine spezifische Kodierung des nächsten Hops für eine Gruppe von Routeneinträgen.

RIPng sendet Aktualisierungen über den UDP-Port 521 mithilfe der Multicast-Gruppe ff02::9 .

RIP-Nachrichten zwischen Routern

RIP-Nachrichten verwenden das User Datagram Protocol auf Port 520, und alle zwischen Routern ausgetauschten RIP-Nachrichten werden in einem UDP-Datagramm gekapselt. [ 4 ]

RIPv1-Nachrichten

RIP definierte zwei Arten von Nachrichten:

Anfragenachricht
Einen benachbarten RIPv1-fähigen Router bitten, seine Routing-Tabelle zu senden.
Antwortnachricht
Enthält die Routingtabelle eines Routers.

Timer

Das Routing-Informationsprotokoll verwendet im Rahmen seiner Funktionsweise die folgenden Timer: [ 13 ]

Timer aktualisieren
Steuert das Intervall zwischen zwei unaufgeforderten Antwortnachrichten. Der Standardwert beträgt 30 Sekunden. Die Antwortnachricht wird an alle RIP-fähigen Schnittstellen gesendet. [ 13 ]
Ungültiger Timer
Der ungültige Timer legt fest, wie lange ein Routing-Eintrag in der Routing-Tabelle ohne Aktualisierung verbleiben kann. Dieser Wert wird auch als Ablauf-Timer bezeichnet. Standardmäßig beträgt er 180 Sekunden. Nach Ablauf des Timers wird die Hop-Anzahl des Routing-Eintrags auf 16 gesetzt, wodurch das Ziel als nicht erreichbar markiert wird. [ 13 ]
Spülzeitgeber
Der Flush-Timer steuert die Zeitspanne zwischen der Ungültigmachung oder Markierung einer Route als nicht erreichbar und dem Entfernen des Eintrags aus der Routing-Tabelle. Standardmäßig beträgt der Wert 240 Sekunden. Dies ist 60 Sekunden länger als der Invalid-Timer. Daher informiert der Router 60 Sekunden lang alle seine Nachbarn über diese nicht erreichbare Route. Dieser Timer muss auf einen höheren Wert als der Invalid-Timer eingestellt werden. [ 13 ]
Haltezeit
Der Hold-Down-Timer wird pro Routeneintrag gestartet, sobald sich die Hop-Anzahl von einem niedrigeren auf einen höheren Wert ändert. Dadurch kann sich die Route stabilisieren. Während dieser Zeit können keine Aktualisierungen an diesem Routeneintrag vorgenommen werden. Dies ist nicht Teil von RFC 1058, sondern eine Cisco- Implementierung. Der Standardwert dieses Timers beträgt 180 Sekunden. [ 13 ]

Einschränkungen

  • Die Anzahl der Hops darf 15 nicht überschreiten, andernfalls werden die Routen verworfen.
  • Variable Length Subnet Masks werden von RIP Version 1 (die veraltet ist) nicht unterstützt.
  • RIP hat langsame Konvergenz und Probleme mit der Zählung bis unendlich . [ 14 ]

Implementierungen

  • Cisco IOS , Software, die in Cisco-Routern verwendet wird (unterstützt Version 1, Version 2 und RIPng)
  • Cisco NX-OS Software, die in Cisco Nexus Rechenzentrumsswitches verwendet wird (unterstützt nur RIPv2 [ 15 ] ).
  • Junos -Software, die in Routern, Switches und Firewalls von Juniper verwendet wird (unterstützt RIPv1 und RIPv2)
  • Routing und RAS (Remote Access), eine Funktion von Windows Server , beinhaltet RIP-Unterstützung.
  • Quagga ist eine kostenlose Open-Source-Software -Routing-Suite, die auf GNU Zebra basiert.
  • BIRD , eine kostenlose Open-Source-Software -Routing-Suite
  • Zeroshell , eine kostenlose Open-Source-Software -Routing-Suite
  • Eine erstmals in 4.2BSD eingeführte RIP-Implementierung , geroutet, ist in mehreren seiner Nachfolger erhalten geblieben, darunter FreeBSD [ 16 ] und NetBSD [ 17 ] .
  • OpenBSD führte in Version 4.1 eine neue Implementierung, ripd, ein [ 18 ] und stellte routed in Version 4.4 ein.
  • Netgear -Router bieten üblicherweise zwei RIPv2-Implementierungen zur Auswahl [ 19 ] : RIP_2M und RIP_2B. RIP_2M ist die Standard-RIPv2-Implementierung mit Multicasting, die voraussetzt, dass alle Router im Netzwerk RIPv2 und Multicasting unterstützen. RIP_2B hingegen sendet RIPv2-Pakete per Subnetz-Broadcasting und ist dadurch besser mit Routern kompatibel, die kein Multicasting unterstützen, einschließlich RIPv1-Routern.
  • Die Huawei HG633 ADSL/VDSL-Router unterstützen passives und aktives Routing mit RIP v1 & v2 auf der LAN- und WAN-Seite.

Ähnliche Protokolle

Ciscos proprietäres Interior Gateway Routing Protocol (IGRP) war ein etwas leistungsfähigeres Protokoll als RIP. Es gehört zur selben grundlegenden Familie der Distanzvektor-Routing-Protokolle .

Cisco hat die Unterstützung und den Vertrieb von IGRP in seiner Router-Software eingestellt. Es wurde durch das Enhanced Interior Gateway Routing Protocol (EIGRP) ersetzt, das ein völlig neues Design aufweist. Obwohl EIGRP weiterhin ein Distanzvektormodell verwendet, besteht die einzige Gemeinsamkeit mit IGRP in der Verwendung derselben zusammengesetzten Routing-Metrik. Sowohl IGRP als auch EIGRP berechneten für jede Route eine einzige zusammengesetzte Metrik anhand einer Formel mit fünf Variablen: Bandbreite , Verzögerung , Zuverlässigkeit , Auslastung und MTU . Bei Cisco-Routern werden standardmäßig jedoch nur Bandbreite und Verzögerung in diese Berechnung einbezogen.

Siehe auch

Referenzen

  1. ^ „Service Name and Transport Protocol Port Number Registry“ . www.iana.org . The Internet Assigned Numbers Authority (IANA). S. 10. Abgerufen am 25. Februar 2022 .
  2. ^ Jeff Doyle; Jennifer Carroll (2005). CCIE Professional Development: Routing TCP/IP Volume I, Second Edition . ciscopress.com. S. 169. ISBN 9781587052026Die
  3. ^ a b C. Hedrick (Juni 1988). Routing Information Protocol . Network Working Group. doi : 10.17487/RFC1058 . RFC 1058 .Historisch. Aktualisiert durch RFC  1388 und 1723 .
  4. ^ a b c d e Jeff Doyle; Jennifer Carroll (2005). CCIE Professional Development: Routing TCP/IP Volume I, Second Edition . ciscopress.com. S. 170. ISBN 9781587052026Die
  5. ^ Jeff Doyle; Jennifer Carroll (2005). CCIE Professional Development: Routing TCP/IP Volume I, Second Edition . ciscopress.com. S. 171. ISBN 9781587052026Die
  6. ^ Die Synchronisierung periodischer Routing-Nachrichten , S. Floyd & V. Jacobson, April 1994
  7. ^ Jeff Doyle; Jennifer Carroll (2005). CCIE Professional Development: Routing TCP/IP Volume I, Second Edition . ciscopress.com. S. 175. ISBN 9781587052026Die
  8. ^ G. Malkin (November 1994). RIP Version 2 - Carrying Additional Information . Network Working Group. doi : 10.17487/RFC1723 . RFC 1723 .Veraltet. Ersetzt durch RFC  2453. Ersetzt RFC  1388. Aktualisiert RFC  1058 .
  9. ^ a b G. Malkin (November 1998). RIP Version 2 . Network Working Group. doi : 10.17487/RFC2453 . STD 53. RFC 2453 .Internetstandard 53. Ersetzt RFC  1723 und 1388. Aktualisiert durch RFC  4822 .
  10. ^ F. Baker ; R. Atkinson (Januar 1997). RIP-2 MD5-Authentifizierung . Network Working Group. doi : 10.17487/RFC2082 . RFC 2082 .Veraltet. Durch RFC  4822 ersetzt .
  11. ^ R. Atkinson; M. Fanto (Februar 2007). RIPv2 Cryptographic Authentication . Network Working Group. doi : 10.17487/RFC4822 . RFC 4822 .Vorgeschlagener Standard. Ersetzt RFC  2082. Aktualisiert RFC  2453 .
  12. ^ G. Malkin; R. Minnear (Januar 1997). RIPng für IPv6 . Network Working Group. doi : 10.17487/RFC2080 . RFC 2080 .Vorgeschlagener Standard.
  13. ^ a b c d e Balchunas, Aaron. „Routing Information Protocol (RIP v1.03)“ (PDF) . routeralley.com. Archiviert (PDF) vom Original am 10. Oktober 2022. Abgerufen am 25. April 2014 .
  14. ^ C. Hendrik (Juni 1988). „RFC 1058 Abschnitt 2.2“ . Routing Information Protocol . The Internet Society. doi : 10.17487/RFC1058 .
  15. ^ "Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide, Release 6.x - Configuring RIP [Cisco Nexus 9000 Series Switches]" .
  16. ^ "routed, rdisc – Netzwerk-RIP und Router-Erkennungs-Routing-Daemon" . FreeBSD-Handbuchseiten .
  17. ^ "routed, rdisc – Netzwerk-RIP und Router-Erkennungs-Routing-Daemon" . NetBSD-Handbuchseiten .
  18. ^ "ripd – Routing Information Protocol Daemon" . OpenBSD-Handbuchseiten .
  19. ^ "Wie ändere ich die LAN-TCP/IP-Einstellungen an meinem Nighthawk-Router?" . Netgear-Supportseiten .

Weiterführende Literatur

  • Malkin, Gary Scott (2000). RIP: Ein Intra-Domain-Routing-Protokoll . Addison-Wesley Longman. ISBN 0-201-43320-6Die
  • Edward A. Taft, Gateway Information Protocol (überarbeitet) (Xerox Parc, Palo Alto, Mai 1979)
  • Xerox System Integration Standard - Internet Transport Protocols (Xerox, Stamford, 1981)