- Routing Information Protocol
-
RIP im TCP/IP‑Protokollstapel: Anwendung RIP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token
BusToken
RingFDDI …
Das Routing Information Protocol (RIP) ist ein Routing-Protokoll auf Basis des Distanzvektoralgorithmus, das innerhalb eines autonomen Systems (z.B. LAN) eingesetzt wird, um die Routingtabellen von Routern automatisch zu erstellen. Es gehört zur Klasse der Interior Gateway Protocols (IGP).RIP wurde zuerst in RFC 1058 (1988) definiert. Das Protokoll wurde seitdem mehrfach erweitert und liegt nun als RIP Version 2 (RFC 2453) vor.
Beide Versionen werden noch heute eingesetzt, jedoch werden sie als technisch veraltet betrachtet und sind durch neuere Protokolle wie Open Shortest Path First (OSPF) oder das OSI Protokoll IS-IS abgelöst worden.
RIP wird in den Protokollen IP und IPX benutzt und wurde unter dem Namen RIPng (RIP next generation) im RFC 2080 (1997) erweitert um auch IPv6 zu unterstützen.
Inhaltsverzeichnis
Beim Starten eines Routers kennt dieser nur seine direkt angeschlossenen Netzwerke und sendet diese Routingtabelle an die benachbarten Router. Mit diesen Informationen ergänzt dieser Router seine Routingtabelle (es werden jedoch nur Einträge aktualisiert, die besser sind, gleichwertige neuere Routen werden nicht aktualisiert) und lernt somit, welche Netzwerke jeweils über welchen Router aus erreicht werden können und welche Kosten damit verbunden sind.Um Änderungen im Netzwerk (Ausfall oder Start eines Routers) zu erkennen, wird das Senden der Routingtabellen – das sogenannte Advertisement – regelmäßig (alle 30 Sekunden bei IP) wiederholt, dabei wird stets die gesamte Routingtabelle jedoch nur an alle direkten Nachbarn gesendet. Die Routinginformationen breiten sich damit relativ langsam im Netz aus, bei einer maximalen Ausdehnung des Netzes von 15 Hops beträgt sie bereits sieben Minuten. Zudem ist nicht garantiert, dass die Informationen bei den benachbarten Routern ankommen, da die Advertisements über UDP versendet werden, die Übertragung also nicht zuverlässig ist.
Die Kosten (auch Metrik) bezeichnen den Aufwand, um ein bestimmtes Netz zu erreichen. Beim Protokoll IP wird dazu allein der Hop Count verwendet; er bezeichnet die Anzahl der Router, die entlang eines Pfades bis zum Zielnetz durchlaufen werden müssen. Beim Protokoll IPX wird zusätzlich noch der Tick Count benutzt; er bezeichnet die Verzögerung eines Paketes durch alle Router bis zum Zielnetz.
Im Gegensatz zu OSPF und NLSP kennt ein RIP-Router immer nur seine direkten Nachbarn. Bei Änderungen im Netzwerk dauert es eine gewisse Zeit, bis alle Router wieder eine einheitliche Sicht auf das Netzwerk haben. Mit Erreichen dieses Zustandes spricht man von Konvergenz.
Die nur direkte Bekanntschaft seiner Nachbarn ist auch das größte Problem von RIP. Zum einen ergeben sich hohe Konvergenzzeiten und das Count-to-Infinity-Problem. Infinität bezeichnet die Unerreichbarkeit eines Ziels und wird bei RIP mit dem Hop-Count 16 angegeben.
Beispiel
Netz 1 – Router A ------- Router B ------- Router C
Das Netz 1 wird somit erreicht von:
- Router A mit dem Hop 1
- Router B mit Hop 2 über Router A
- Router C mit Hop 3 über Router B und Router A.
Fällt Router A aus, teilt Router B beim nächsten periodischen Update an Router C den Hopcount 16 mit: Infinität (nicht Erreichbarkeit). Trifft nun bei Router B ein Paket eines anderen Routers ein, der Netz 1 noch erreichen kann, ist dessen Hopcount geringer und Router B wird seine Routingtabelle entsprechend aktualisieren.
Problemfälle
Ist Netz 1 ausgefallen und sendet Router C seine Routingtabelle an Router B bevor die Nachricht von der Nicht-Erreichbarkeit des Netzes durch das Netz propagiert wurde, erhält Router B nach dem Update von Router A die Information, das Netz 1 noch über Router C mit Hopcount 3 erreichen zu können. Router C hat seine Routingtabelle ja noch nicht aktualisiert und sendet diese veraltete Information weiterhin an seine Nachbarn, bis er von dort den Hopcount 16 erfährt. Damit übernimmt Router B dann die Route in das Netz 1 mit Hopcount 4.
Router B würde beim nächsten Austausch Hop 4 an Router C senden, dieser übernimmt diese Information und trägt Hop 5 in seine Routingtabelle ein, da er bisher bereits Netz 1 über Router B erreicht. Somit schaukeln sich beide Router nach und nach bis auf Hop 16 auf - mit der entsprechenden Zeitlichen Verzögerung bis zur Konvergenz.
Mechanismen zur Vermeidung spezieller Fälle dieses Problems sind Split Horizon, Triggered Updates und (bei RIP mit IP) Split Horizon with Poisoned Reverse. Mit dem Erweiterungsalgorithmus RIP-MTI lassen sich Routing-Loops sogar vollständig erkennen und das Count-to-Infinity Problem tritt überhaupt nicht mehr auf.
RIP erlaubt deshalb nur Netze mit einer maximalen Länge von 15 Routern (d. h. der längste Pfad darf maximal über 15 Router gehen). Außerdem hat es je nach Version noch weitere Nachteile: Lange Konvergenzzeit, nur kleine bis mittlere Netze, Flutung des Netzes durch Austausch der Routingtabellen bei RIPv1 (alle 30 Sekunden bei IP, alle 60 Sekunden bei IPX) über Broadcast, keine Subnetz-Unterstützung und keine Authentifizierung. RIP wird mehr und mehr von OSPF abgelöst.
Versionen
Es existieren drei Versionen von RIP: RIP(v1), RIPv2 und RIPng.
Der dem RIP-Protokoll zu Grunde liegende Bellman-Ford-Algorithmus wurde im Jahr 1967 das erste Mal in einem Computernetzwerk als erstes Routingprotokoll für das ARPANET verwendet.
RIPv1
Die ursprüngliche Spezifikation von RIP in RFC 1058 benutzt noch kein CIDR. Die regelmäßig versendeten Routinginformationen enthalten keine Informationen über die verwendeten Subnetze, so dass alle Netze die gleiche Größe haben müssen. Des Weiteren ist in RIPv1 keine Möglichkeit zur Authentifizierung vorgesehen, so dass verschiedene Angriffe auf das Routing eines Netzes erfolgen können. RIPv1 begrenzt zudem die Anzahl der möglichen HOPs zwischen Routern auf 16 (0-15).
RIPv2
Mit der Version RIPv2 wurden 1993 einige Einschränkungen beseitigt. Neben der möglichen Authentifizierung und der Übermittlung der RIP-Pakete per Multicast ist vor allem die Unterstützung von Subnetzen und CIDR gegeben.
Da bei RIPv1 keine Netzmasken zwischen den Routern ausgetauscht werden, konnten nur Netze mit gleichen Netzmasken verbunden werden. Bei RIPv2 werden die Netzmasken übermittelt, somit sind beliebige Netzmasken verwendbar (Variable Length Subnet Mask, VLSM).
Zudem wurden Triggered updates und Request Messages eingeführt, um die Zeit bis zum Erreichen der Konvergenz des Netzes zu verkürzen.
RIPng
RIPng ist in RFC 2080 definiert und enthält Erweiterungen zur Unterstützung von IPv6.
Paketformate
RIP v1
command version must be zero address family identifier (of net 1) must be zero IP address (of net 1) must be zero must be zero metric (distance to net 1) address family identifier (of net 2) must be zero IP address (of net 2) must be zero must be zero metric (distance to net 2) … address family identifier (of net 25) must be zero IP address (of net 25) must be zero must be zero metric (distance to net 25) Die Tabelle ist 4 Bytes breit, Blöcke über net2–net25 sind optional.
RIP v2
command version must be zero RIP-Eintrag (20 Bytes) Die Tabellen sind 4 Bytes breit.
Abhängig vom Eintrag im Feld version besteht ein RIP-Eintrag aus einem RIPv1-Eintrag (AFI etc), einem RIPv2-Eintrag (s. u.) oder einem Authentifizierungs-Eintrag (s. u.). Mehr Details stehen in RFC 2453.
Beispiele eines RIP-Eintrags
1. RIP-Eintrag mit Subnet Mask (version muss auf 2 gesetzt sein)
address family identifier route tag IP Address Subnet Mask Next Hop Metric 2. RIP-Eintrag mit Authentifizierung (version muss auf 2 gesetzt sein)
0xFFFF Authentication Type Authentication (16 Bytes) Siehe auch
Weblinks
- RFC 1058 – RIP
- RFC 2453 – RIPv2
- RFC 2080 – RIPng
- irvtool – Ein RIP-/OSPF-Visualisierungstool (Java/GPL)
Kategorie:- Netzwerkprotokoll auf Anwendungsschicht
Wikimedia Foundation.