Routing
Routing - Vermittlung von Datagrammen zwischen Netzwerken auf OSI-Layer 3
Beschreibung
Routing ist der Prozess, bei dem ein Pfad über ein oder mehrere Netzwerke ausgewählt wird, um Daten zu versenden.
- In Netzwerken, die Pakete vermitteln, wählt das Routing die Pfade aus, auf denen die Internet-Protokoll-Pakete (IP-Pakete) von ihrem Ursprung zu ihrem Ziel gelangen.
Routing [Vorlage:IPA] (BE) / [Vorlage:IPA], aber auch [Vorlage:IPA] (AE) (engl. „Vermittlung“, „Leitweglenkung“, „Streckenführung“, „Verkehrsführung“ sowie „leiten“, „senden“, „steuern“) ist in der Telekommunikation der Anglizismus für das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung in Rechnernetzen.
- Insbesondere in paketvermittelten Datennetzen ist hierbei zwischen den beiden verschiedenen Prozessen Routing und Forwarding zu unterscheiden: Das Routing bestimmt den gesamten Weg eines Nachrichtenstroms durch das Netzwerk; das Forwarding beschreibt hingegen den Entscheidungsprozess eines einzelnen Netzknotens, über welchen seiner Nachbarn er eine vorliegende Nachricht weiterleiten soll.
Häufig werden jedoch Routing und Forwarding unter dem Begriff „Routing“ miteinander vermengt; in diesem Fall bezeichnet Routing ganz allgemein die Übermittlung von Nachrichten über Nachrichtennetze.
- Im Unterschied zu Verteilern (Hubs und Switches) arbeitet das Routing ohne Einschränkungen auch in vermaschten Netzen.
Die Vermittlungstechnik bezeichnet mit dem Begriff Verkehrslenkung (engl.: routing) die Auswahl der Wegeabschnitte beim Aufbau von Nachrichtenverbindungen, die unter Berücksichtigung von Kriterien, wie bspw. der kürzesten Entfernung, erfolgen kann.
- Handelt es sich um eine leitungsvermittelte Verbindung, wird ein Übertragungskanal für die gesamte Zeit der Verbindung ausgewählt, und alle Nachrichten werden über denselben Weg geleitet.
- Handelt es sich dagegen um eine paketvermittelte Datenübertragung, wird der Weg für jedes Paket von jedem Netzknoten neu bestimmt.
- Herangehensweisen
Routing von Paketen
Beim paketvermittelten Routing, wie es z. B. im Internet stattfindet, wird dafür gesorgt, dass logisch adressierte Datenpakete aus dem Ursprungsnetz herauskommen und in Richtung ihres Zielnetzes weitergeleitet werden.
- Routing ist die Basis des Internets – ohne Routing würde das Internet nicht existieren, und alle Netze wären autonom.
- Die Datenpakete können dabei viele verschiedene Zwischennetze auf dem Weg zu ihrem Ziel passieren.
- Im Internet wird das Routing (üblicherweise) auf der IP-Schicht durchgeführt.
- Im ISO/OSI-Modell ist Routing eine der wesentlichen Aufgaben der dritten Schicht.
Hubs und Switches leiten Daten nur im lokalen Netz weiter, wohingegen der Router auch benachbarte Netze kennt.
- Dieser Artikel beschreibt Routing auf eine hardwareunabhängige Art.
- Für Informationen über Router selbst siehe den Router-Artikel.
Um zu wissen, wohin Pakete gesendet werden sollen, muss man die Struktur des Netzes kennen.
- In kleinen Netzen kann das Routing sehr einfach sein und wird oft per Hand konfiguriert.
- Man spricht dann auch von statischem Routing.
- Große Netze können eine komplexe Topologie haben, die sich möglicherweise häufig ändert, was unter anderem das Routing zu einer komplexen Angelegenheit macht.
- Hier wird in der Regel ein dynamisches Routing angewandt.
Da Router die besten Routen im Verhältnis zur Anzahl der zu bewegenden Pakete nur sehr langsam bestimmen können, merken sie sich in einer oder mehreren Routingtabellen die bestmöglichen, teilweise auch weitere Routen zu bestimmten Netzen und die dazugehörigen Routing-Metriken.
- Der bestmögliche Weg ist oftmals der kürzeste Weg; er kann zum Beispiel mit dem Algorithmus von Dijkstra gefunden werden.
Basierend auf den Einträgen in der oder den Routingtabelle(n) berechnet ein Router eine sogenannte Forwardingtabelle; sie enthält Einträge der Form Zieladressmuster→Ausgabeschnittstelle.
- In seiner Forwardingtabelle schlägt ein Router dann für jedes neu eingetroffene Paket nach, über welche Schnittstelle er das Paket weiterleiten muss.
Funktionsweise
7 | 7 | ||||
6 | 6 | ||||
5 | 5 | ||||
4 | 4 | ||||
3 | 3 | 3 | |||
2 | 2 | 2 | 2 | ||
1 | 1 | 1 | 1 |
- Router arbeiten auf Schicht 3 (Vermittlungsschicht/Vorlage:Lang) des OSI-Referenzmodells.
- Ein Router besitzt mindestens eine Schnittstelle (), die Netze anbindet.
- Schnittstellen können auch virtuell sein, wenn diese z. B. zum Vermitteln von Daten zwischen virtuellen Netzen (VLAN) verwendet werden.
- Beim Eintreffen von Datenpaketen muss ein Router anhand der OSI-Schicht-3-Zieladresse (z. B. dem Netzanteil der IP-Adresse) den besten Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind.
- Dazu bedient er sich einer lokal vorhandenen Routingtabelle, die angibt, über welchen Anschluss des Routers oder welchen lokalen oder entfernten Router welches Netz erreichbar ist.
- Router können Wege auf drei verschiedene Arten lernen und mit diesem Wissen die Routingtabelleneinträge erzeugen.
- direkt mit der Schnittstelle verbundene Netze: Sie werden automatisch in eine Routingtabelle übernommen, wenn ein Interface mit einer IP-Adresse konfiguriert wird und dieses Interface aktiv ist ("link up").
- statische Routen: Diese Wege werden durch einen Administrator eingetragen.
- Sie dienen zum einen der Sicherheit, sind andererseits nur verwaltbar, wenn ihre Zahl begrenzt ist.
- Die Skalierbarkeit ist für diese Methode ein limitierender Faktor.
- dynamische Routen: In diesem Fall lernen Router erreichbare Netze durch ein Routingprotokoll, das Informationen über das Netzwerk und seine Teilnehmer sammelt und an die Mitglieder verteilt.
- Routingtabelle
Die Routingtabelle ist in ihrer Funktion einem Adressbuch vergleichbar, in dem nachgeschlagen wird, ob ein Ziel-IP-Netz bekannt ist, also ob ein Weg zu diesem Netz existiert und, wenn ja, welche lokale Schnittstelle der Router zur Vermittlung der Daten zu diesem verwenden soll.
- Die Routing-Entscheidung erfolgt üblicherweise nach der Signifikanz der Einträge; spezifischere Einträge werden vor weniger spezifischen gewählt.
- Eine vorhandene Default-Route stellt dabei die am wenigsten spezifische Route dar, welche dann genutzt wird, wenn zuvor kein spezifischer Eintrag für das Ziel(-Netz) existiert.
- Bei einem Bezug der gesamten Internet-Routing-Tabelle im Rahmen des Inter-AS-Routing ist es üblich, keine Default-Route vorzuhalten.
- Policy-basiertes Routing
Einige Router beherrschen Policy-basiertes Routing (für strategiebasiertes Routing).
- Dabei wird die Routingentscheidung nicht notwendigerweise auf Basis der Zieladresse (OSI-Layer 3) getroffen, sondern es können auch andere Kriterien des Datenpaketes berücksichtigt werden.
- Hierzu zählen beispielsweise die Quell-IP-Adresse, Qualitätsanforderungen oder Parameter aus höheren Schichten wie TCP oder UDP.
- So können zum Beispiel Pakete, die HTTP-Inhalte (Web) transportieren, einen anderen Weg nehmen als Pakete mit SMTP-Inhalten (Mail).
- Protokolle
Router können nur für Routing geeignete Datenpakete, also von routingfähigen Protokollen, wie IP (IPv4 oder IPv6) oder IPX/SPX, verarbeiten.
- Andere Protokolle, wie die ursprünglich von MS-DOS und MS-Windows benutzten NetBIOS und NetBEUI, die nur für kleine Netze gedacht waren und von ihrem Design her nicht routingfähig sind, werden von einem Router standardmäßig nicht weitergeleitet.
- Es besteht jedoch die Möglichkeit, solche Daten über Tunnel und entsprechende Funktionen, wie Datalink Switching (DLSw), an entfernte Router zu vermitteln und dort dem Ziel zuzustellen.
- Pakete aus diesen Protokollfamilien werden in aller Regel durch Systeme, die auf Schicht 2 arbeiten, also Bridges oder Switches, verarbeitet.
- Professionelle Router können bei Bedarf diese Bridge-Funktionen wahrnehmen und werden Layer-3-Switch genannt.
- Als Schicht-3-System enden am Router alle Schicht-2-Funktionen, darunter die Broadcastdomäne.
- Das ist insbesondere in großen lokalen Netzen wichtig, um das Broadcast-Aufkommen für die einzelnen Teilnehmer eines Subnetzes gering zu halten.
- Sollen allerdings Broadcast-basierte Dienste, wie beispielsweise DHCP, über den Router hinweg funktionieren, muss der Router Funktionen bereitstellen, die diese Broadcasts empfangen, auswerten und gezielt einem anderen System zur Verarbeitung zuführen können (Relay-Agent-Funktion).
- Multiprotokoll-Router
Außerdem sind Ein- und Mehrprotokoll-Router (auch Multiprotokoll-Router) zu unterscheiden.
- Einprotokoll-Router sind nur für ein Netzwerkprotokoll wie IPv4 geeignet und können daher nur in homogenen Umgebungen eingesetzt werden.
- Multiprotokoll-Router beherrschen den gleichzeitigen Umgang mit mehreren Protokollfamilien, wie DECnet, IPX/SPX, SNA, IP und anderen.
- Heute dominieren IP-Router das Feld, da praktisch alle anderen Netzwerkprotokolle nur noch eine untergeordnete Bedeutung haben und, falls sie zum Einsatz kommen, oft auch gekapselt werden können (NetBIOS over TCP/IP, IP-encapsulated IPX).
- Früher hatten Mehrprotokoll-Router in größeren Umgebungen eine wesentliche Bedeutung, damals verwendeten viele Hersteller unterschiedliche Protokollfamilien, daher kam es unbedingt darauf an, dass vom Router mehrere Protokoll-Stacks unterstützt wurden.
- Multiprotokoll-Router finden sich fast ausschließlich in Weitverkehrs- oder ATM-Netzen.
- 'Gerouteten Protokolle' und 'Routing-Protokolle'
Wichtig ist die Unterscheidung zwischen den gerouteten Protokollen (wie Internet Protocol oder IPX) und Routing-Protokollen.
- Routing-Protokolle dienen der Verwaltung des Routing-Vorgangs und der Kommunikation zwischen den Routern, die so ihre Routing-Tabellen austauschen (beispielsweise BGP, RIP oder OSPF).
- Geroutete Protokolle hingegen sind die Protokolle, die den Datenpaketen, die der Router transportiert, zugrunde liegen.
Beispiel
- Wann wird ein Router benötigt?
- Sobald Daten mit einem anderen IP-Netzwerk ausgetauscht werden sollen, wird ein Router benötigt.
- Vorgang
- PC hat ein IP-Adresse + Subnetzmaske
- PC fuhrt mit IP + Subnetzmaske und Vergleich durch
- Ebenfalls und Vergleich von IP + Subnetz des Ziel-Computerts
- Unterschiedliches Ergebnis = Netzübergreifende Kommunikation = Router notwendig
Computer 1
- IP: 192.168.2.28
- Subnetzmaske: 255.255.255.224
AND Vergleich:
11000000.10101000.00000010.00011100 11111111.11111111.11111111.11100000 11000000.10101000.00000010.00000000 = > 192.168.2.0
Computer 2
- IP: 192.168.1.60
- SN: 255.255.255.192
AND Vergleich
11000000.10101000.00000010.00011100 11111111.11111111.11111111.11000000 11000000.10101000.00000001.00000000 = > 192.168.2.1
= > AND Vergleich fehlgeschlagen = > netzübergreifende Kommunikation = >Router benötigt
Routing-Tabelle
Source Routing
In lokalen Netzen wird häufig Source Routing verwendet.
- In diesem Fall ist der sendenden Station der vollständige Pfad zur Zielstation bekannt.
- Die sendende Station trägt die Adresse des nächsten Netzknotens in den Kopf der Nachricht ein.
- Jeder folgende Netzknoten adressiert den nächsten Knoten entlang der bereits festgelegten Route, direkt im Kopf der Nachricht.
- Dieses Verfahren wird z. B. im Usenet Mail Service verwendet.
Ein beliebtes Beispiel ist das Dynamic Source Routing; hierbei erfährt die sendende Station durch die Route Discovery eine gültige Route zur Zielstation.
- Diese Route wird in den Header eines jeden Paketes zur Zielstation eingetragen und jeder Zwischenknoten ist verpflichtet, das Paket entlang dieser Route weiterzuleiten.
- Die korrekte Weiterleitung kann in bidirektionalen drahtlosen Netzen auch durch den vorigen Hop-Knoten kontrolliert werden (mithören).
Routing-Protokolle
Routing im Internet
Prinzipiell unterscheidet man im Internet je nach Zweck zwei verschiedene Arten von Routing:
- Intradomain-Routing findet innerhalb eines autonomen Systems („AS“) statt;
- Interdomain-Routing bezeichnet das Routing zwischen autonomen Systemen.
Hierbei bezieht sich der Namensbestandteil „Domain“ auf das autonome System; er hat also nichts mit den „DNS-Domains“ beispielsweise bei Web-Adressen zu tun.
Intradomain-Routing
Intradomain-Routing verwendet Interior Gateway-Protokolle (IGP).
- Der Fokus beim Intradomain-Routing liegt in den meisten Fällen auf einer technisch effizienten Nutzung des Netzwerks; ihm liegt typischerweise eine Wegewahl entlang kürzester Pfade zugrunde.
Der Administrator versucht, durch geschicktes Konfigurieren des Routings das durch das Netzwerk übertragbare Datenvolumen zu maximieren.
- Dieses Optimieren des Routings unter Berücksichtigung des real vorhandenen Datenübertragungsbedarfs zwischen verschiedenen Teilen des Netzwerks nennt man Traffic Engineering.
Interdomain-Routing
Interdomain-Routing verwendet sogenannte Exterior Gateway-Protokolle (EGP), und zwar (fast) immer BGP.
- Da Interdomain-Routing das Routing zwischen verschiedenen Providern regelt, liegt der Fokus beim Interdomain-Routing normalerweise auf einer finanziell effizienten (profitorientierten) Nutzung des Netzwerks.
- Die zugrundeliegende Idee hierbei ist die, dass ein autonomes System nicht allen seinen Nachbarn die gleichen Informationen (Routen) zukommen lässt.
- Welche Informationen ausgetauscht werden und welche nicht, wird zunächst in Verträgen festgelegt und dann in den Routern einkonfiguriert; man spricht in diesem Zusammenhang von Policy-basiertem Routing.
IP-Routing
Einfache Protokolle wie z. B. natives NETBIOS kennen kein Routing; hier identifizieren sich zwei Stationen ausschließlich durch die MAC-Adressen ihrer Netzwerkkarten.
- Das ist auch bei IP-Kommunikation innerhalb eines gemeinsamen Netzes (ohne Routing) so – zumindest, nachdem per ARP bzw. NDP die zur IP-Adresse gehörende MAC-Adresse ermittelt wurde.
- Dann enthält jedes Paket die MAC- und IP-Adresse des Empfängers so wie die MAC- und IP-Adresse des Absenders sowie optionale Nutzdaten.
Liegen Absender und Empfänger in verschiedenen Netzen, ist ein Router erforderlich.
- Möchte eine über Router angebundene Station ein Paket an einen Empfänger außerhalb ihres Netzes senden, beispielsweise an einen Telnet-Server, so funktioniert der Kommunikationsprozess (vereinfacht dargestellt) wie folgt: Zuerst ermittelt die Station den für das gewünschte Ziel nächstgelegenen Router (siehe Routingtabelle), ermittelt per ARP dessen MAC-Adresse und baut ein Paket wie folgt zusammen: Es erhält als Ziel-MAC-Adresse die MAC-Adresse des nächstgelegenen Routers, die Ziel-IP-Adresse des Empfängers, die Ziel-Portadresse 23 für den Telnet-Server sowie die MAC- und IP-Adresse des Absenders und einen Absenderport (irgendein gerade freier Port, z. B. 5387) für die gerade anfragende Telnet-Sitzung sowie andere erforderliche Daten.
- Der Router empfängt und verarbeitet das Paket, weil es an seine MAC-Adresse gerichtet ist.
- Bei der Verarbeitung im Router wird das Paket in leicht abgeänderter Form weitergeleitet: Der Router ermittelt den nächsten Router, ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um: Es erhält nun abweichend als Ziel-MAC-Adresse die MAC-Adresse des nächsten Routers sowie als Quell-MAC-Adresse die eigene MAC-Adresse.
- Die IP-Adresse des Empfängers, Ziel-Port 23 sowie die IP-Adresse des Absenders, Absender-Port 5387 und die Nutzdaten hingegen bleiben gleich.
- Das bedeutet: Auf Schicht 3 (IP) wird das Paket nicht verändert.
- Dieser Vorgang wiederholt sich, bis ein letzter Router die Zielstation in einem direkt angeschlossenen Netz findet; dann setzt sich das Paket wie folgt zusammen: es enthält die MAC-Adresse der Zielstation, die MAC-Adresse des letzten Routers – also die Daten der letzten Schicht-2-Verbindung (Ethernet) – sowie die IP-Adresse des Empfängers (= Zielstation), Ziel-Port 23 sowie die IP-Adresse des Absenders, Absender-Port 5387 und natürlich Nutzdaten.
Nach erfolgreicher Verarbeitung durch den Telnet-Server wird die Rückantwort dann wie folgt zusammengestellt: MAC-Adresse des für den Rückweg zuständigen Routers (wobei Hin- und Rückroute nicht unbedingt identisch sein müssen), die IP-Adresse des anfragenden Rechners (vormals Absender), die Ziel-Portadresse 5387 (vormals Absender-Port) sowie die MAC- und IP-Adresse des Telnet-Servers und dessen Absenderport, sowie Antwort-Daten.
- Nachdem alle Router durchlaufen wurden, wird daraus im letzten Router: MAC-Adresse und IP-Adresse des anfragenden Rechners, die MAC-Adresse des letzten Routers, die Ziel-Portadresse 5387 sowie die IP-Adresse des Telnet-Servers und dessen Absenderport, sowie Antwort-Daten.
- Wird diese Telnet-Sitzung beendet, wird auch Port 5387 wieder freigegeben.
Zusammenwirken von Protokollen
Abhängig davon, ob ein Router Teil eines autonomen Systems ist oder gar dessen Grenze bildet, verwendet er oftmals gleichzeitig Routing-Protokolle aus verschiedenen Klassen:
- Interior Gateway Protocols (IGPs) tauschen Routing-Informationen in einem einzelnen autonomen System aus.
- Häufig verwendet werden:
- Exterior Gateway Protocols (EGPs) regeln das Routing zwischen verschiedenen autonomen Systemen.
- Dazu gehören:
- Es ist inzwischen veraltet.)
- Ad hoc Routing-Protokolle werden in Netzen mit wenig oder keiner Infrastruktur verwendet.
Dabei können Routingprotokolle auch miteinander interagieren.
- Beispielsweise können neue Routen aus dem IGP zum EGP exportiert werden.
- Auch andere Fälle sind denkbar: Ändert sich, z. B. durch den Ausfall eines Links, die IGP-Metrik für einen Pfad a⇝b innerhalb des AS X, so kann X die Metrikänderung auf alle EGP-Pfade a⇝b⇝Y, a⇝b⇝Z usw. übertragen.
- Es ist auch denkbar, dass sich einige Routen, welche ein Router von verschiedenen Routingprotokollen gelernt hat, gegenseitig widersprechen; in solchen Fällen regelt eine vorher definierte Priorisierung (Administrative Distanz) die letztendliche Entscheidung des Routers.
Routing-Protokolle
Routing- Protokoll |
Routing- Algorithmus |
Shortest-Path- Algorithmus |
Einsatz | Metrik | Anmerkungen |
---|---|---|---|---|---|
BGP | Path-Vector | Bellman-Ford | EGP | Policies | De-facto-Standard, verhindert Schleifen |
RIP | DV | Bellman-Ford | IGP | Hop-Count | Count-to-Infinity-Problem |
OSPF | LS | Dijkstra | IGP | * | hierarchisches Routing |
IS-IS | LS | Dijkstra | IGP | * | ISO-Standard, vglb. mit OSPF |
EIGRP | DV | DUAL | IGP | * | Cisco-Standard |
* verschiedene (teilweise kombinierbare) Metriken
Anhang
Siehe auch
- Multi-Path Routing
- Ad-hoc On-demand Distance Vector (AODV)
- Classless Inter-Domain Routing (CIDR)
- Dijkstra-Algorithmus
- eXtensible Open Router Platform (XORP)
- Multiprotocol Label Switching (MPLS)
- Network Address Translation (NAT)
- Optimized Link State Routing (OLSR)
- Routing Information Protocol (RIP)
- Topology Dissemination Based on Reverse-Path Forwarding (TBRPF)
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Links
Projekt
Weblinks
- https://de.wikipedia.org/wiki/Routing
- https://curlie.org/World/Deutsch/Computer/Netzwerk/Router_und_Routing/
- Übersicht über Routing-Metriken
- http://www.microhowto.info/howto/enable_forwarding_of_ipv4_packets.html
- https://unix.stackexchange.com/questions/527012/routing-problems-when-activating-ip-forwarding
- https://www.reddit.com/r/linuxquestions/comments/6vu4em/ip_forwarding_not_working/
- https://serverfault.com/questions/596641/linux-ip-forwarding-trouble
- https://lartc.org/howto/lartc.kernel.html