Routing: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 177: Zeile 177:
== Routing-Protokolle ==
== Routing-Protokolle ==
[[Routing/Protokolle]]
[[Routing/Protokolle]]
== Routing im Internet ==
Prinzipiell unterscheidet man im [[Internet]] je nach Zweck zwei verschiedene Arten von Routing:
* Int''ra''domain-Routing findet innerhalb eines [[Autonomes System|autonomen Systems]] („AS“) statt;
* Int''er''domain-Routing bezeichnet das Routing zwischen autonomen Systemen.
Hierbei bezieht sich der Namensbestandteil „Domain“ auf das autonome System; er hat also ''nichts'' mit den „[[Domain Name System|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 [[Border Gateway Protocol|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-basiertes Routing|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-Adresse]]n ihrer Netzwerkkarten.
* Das ist auch bei [[Internet Protocol|IP]]-Kommunikation innerhalb eines gemeinsamen Netzes (ohne Routing) so – zumindest, nachdem per [[Address Resolution Protocol|ARP]] bzw. [[Neighbor Discovery Protocol|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-[[Port (Protokoll)|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 ([[Internet Protocol|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 [[Autonomes System|autonomen Systems]] ist oder gar dessen Grenze bildet, verwendet er oftmals gleichzeitig Routing-Protokolle aus verschiedenen Klassen:
* '''Interior Gateway Protocols''' ('''IGP'''s) tauschen Routing-Informationen in einem einzelnen autonomen System aus.
* Häufig verwendet werden:
** [[Interior Gateway Routing Protocol|IGRP]]/[[EIGRP]] (Interior Gateway Routing Protocol/ Enhanced IGRP)
** [[Open Shortest Path First|OSPF]] (Open Shortest Path First)
** [[IS-IS]] (Intermediate System to Intermediate System)
** [[Routing Information Protocol|RIP]] (Routing Information Protocol)
** [[R-SMLT]] Routing [[Split Multi-Link Trunking|SMLT]]
* '''Exterior Gateway Protocols''' ('''EGP'''s) regeln das Routing zwischen verschiedenen autonomen Systemen.
* Dazu gehören:
** [[Border Gateway Protocol|BGP]] (Border Gateway Protocol: seit [[2002]] in der Version BGP4) ist heute weltweit der De-facto-Standard.
** [[Exterior-Gateway-Protokoll|EGP]] (mit dem alten Exterior Gateway Protocol wurden früher die Internet-Backbones verbunden.
* Es ist inzwischen veraltet.)
* '''[[Ad-hoc-Netz#Routing-Protokolle|Ad hoc Routing-Protokolle]]''' werden in Netzen mit wenig oder keiner Infrastruktur verwendet.
** [[Optimized Link State Routing|OLSR]] findet meist Verwendung im mobilen Bereich.
** [[AODV]] findet in kleineren Netzen mit hauptsächlich statischem Traffic Verwendung.
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 ===
{| class="wikitable"
|- class="hintergrundfarbe6"
! Routing-<br />Protokoll || Routing-<br />Algorithmus || Shortest-Path-<br />Algorithmus
! Einsatz || Metrik || Anmerkungen
|-
| [[Border Gateway Protocol|BGP]] || [[Pfadvektorprotokoll|Path-Vector]] || [[Bellman-Ford-Algorithmus|Bellman-Ford]]
| EGP || Policies || De-facto-Standard, verhindert Schleifen
|-
| [[Routing Information Protocol|RIP]] || [[Distanzvektoralgorithmus|DV]] || Bellman-Ford
| IGP || Hop-Count || Count-to-Infinity-Problem
|-
| [[Open Shortest Path First|OSPF]] || [[Link-State|LS]] || [[Algorithmus von Dijkstra|Dijkstra]]
| IGP || * || hierarchisches Routing
|-
| [[IS-IS]] || LS || Dijkstra
| IGP || * || ISO-Standard, vglb. mit OSPF
|-
| [[EIGRP]] || DV || [[Diffusing Update Algorithm|DUAL]]
| IGP || * || Cisco-Standard
|}
<nowiki>*</nowiki> verschiedene (teilweise kombinierbare) Metriken


== Anhang ==
== Anhang ==

Version vom 15. Mai 2023, 22:47 Uhr

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

Projekt
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