Routing

Aus Foxwiki

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 ZieladressmusterAusgabeschnittstelle.

  • 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

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/Protokolle

Anhang

Siehe auch

Sicherheit

Dokumentation

RFC
Man-Pages
Info-Pages

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Routing
  2. https://curlie.org/World/Deutsch/Computer/Netzwerk/Router_und_Routing/
  3. Übersicht über Routing-Metriken
  4. http://www.microhowto.info/howto/enable_forwarding_of_ipv4_packets.html
  5. https://unix.stackexchange.com/questions/527012/routing-problems-when-activating-ip-forwarding
  6. https://www.reddit.com/r/linuxquestions/comments/6vu4em/ip_forwarding_not_working/
  7. https://serverfault.com/questions/596641/linux-ip-forwarding-trouble
  8. https://lartc.org/howto/lartc.kernel.html