6  End-zu-End Kommunikation

Ab ins kalte Wasser! Wie funktioniert nun eine Kommunikation in einem einfachen Netzwerk? In diesem Kapitel fokussieren wir uns auf den Weg durchs Netzwerk und die dabei genutzten Adressen.

7 Logische und physikalische Adressen

Heutige Netzwerke basieren auf der Paketvermittlung (Siehe Figure 7.1). Das bedeutet, dass ein Datenstrom in einzelne Pakete unterteilt wird, worin jedes Paket seine Quelle und Ziel kennen muss. Dabei ist nicht mal sichergestellt, dass jedes Paket den gleichen Weg zum Ziel nimmt, abhängig von Netzwerklast und Verfügbarkeit. Diesen Layer der Kommunikation entspricht im OSI-Modell Layer 3, was auch als logische End-zu-End Kommunikation bekannt ist. In der Regel wird dafür die IP-Adresse eingesetzt und ein Router (Vermittlungsstelle) entscheidet anhand der Ziel-IP wie das Paket weitergeleitet werden muss (Siehe Figure 7.1). Die Adresse gilt als logisch, weil ihre Zusammenstellung alles für die Weiterleitung beinhaltet und sich auf den ganzen Quelle/Ziel Kommunikationspfad fokussiert. Die eigentliche Übertragung zwischen den Vermittlungsstellen, der physikalischen Ebene, passiert aber auf Layer 2 und nutzt, bei Netzwerktechnologien wie Ethernet, Wireless, die MAC-Adresse zur Adressierung. Zusammengefasst kann man festhalten, dass Layer 3 die Richtung vorgibt und Layer 2 die physikalische Übertragung zwischen den Vermittlungsstellen.

Figure 7.1: Paketvermittlung von A nach B
NoteSinnbild Paketvermittlung

Ich möchte von Windisch nach Zürich. Dies ist mein Layer 3 und gibt Quelle und Ziel vor. Meine Routenplanung zeigt als besten Weg folgende Teilschritte:

  1. Von Windisch nach Brugg mit dem Fahrrad
  2. Mit dem Zug von Brugg nach Zürich

Für die Fahrradetappe muss ich sicherstellen, dass das Fahrrad verkehrstüchtig ist und auf der Strecke kein Stau herrscht. Genauso muss ich in der Zugetappe, das richtige Billet kaufen und einen Platz in einem Zug ergattern. Abhängig meiner Etappe, greifen andere Regelwerke, um mein Übergeordnetes Ziel Windisch/Zürich zu ermöglichen.

7.1 Verbindung zwischen MAC und IP

Wie vorher betrachtet wurde, benötigt es die IP und die MAC Adresse, um eine Kommunikation im Netzwerk zu ermöglichen. Wir halten nochmals fest:

  1. IP Adresse für End-zu-End Kommunikation (Quelle und Endziel)
  2. MAC Adresse für physische Kommunikation zwischen zwei Vermittlungsstellen (Router) basierend auf Ethernet/Wifi

Während der Kommunikation bleibt somit in der Regel die IP erhalten und die MAC Adresse wechselt von Broadcastdomäne zu Broadcastdomäne.

Wie aber erhält ein Teilnehmer die physische Adresse eines anderen? Die Lösung heisst bei IPv4 - Address Resolution Protocol (Kurz ARP).

7.1.1 ARP Request auf IPv4

Jeder Teilnehmer egal ob Computer oder Router führt eine ARP Table. Die ARP Table funktioniert wie eine Lookup Table für MAC Adressen und zugehörige IP Adressen. Der Inhalt der Tabelle wird durch ARP Requests verwaltet. Das Address Resolution Protocol beinhaltet einen Mechanismus, um die MAC Adresse von IP Adressen zu ermitteln.s

  1. Ein Teilnehmer mit der IP 192.168.10.5 und MAC Adresse AA möchte ein Paket an 192.168.10.7 mit MAC Adresse BB schicken
  2. Die L3 Adressen sind somit bekannt, wie auch die eigene MAC Adresse des Senders. Was fehlt ist die MAC Adresse des Ziels.
  3. Der Sender prüft seine ARP Table ob ein Eintrag für die IP 192.168.10.7 vorhanden ist
  4. Falls kein Eintrag vorhanden ist wird ein ARP Request an Alle gestellt “Who has 192.168.10.7? Tell 192.168.10.5”
  5. Ist der Teilnehmer verfügbar, wird per Unicast an den ursprünglichen Sender geantwortet “192.168.10.7 is at BB”
  6. Eintrag wird in der ARP Tabelle aktualisiert.

Note: Die ARP Tabelle wird relativ häufig durch das OS aktualisiert.

TipAnzeigen der ARP Table

Die ARP Table kann wie folgt aufgerufen werden:

OS Anzeigen Löschen
Windows arp -a arp -d (Administratorrechte benötigt)
Linux sudo arp -n arp -d oder ip -s neigh flush all
MAC sudo arp -a sudo arp -a -d

8 Schnittstellen am Computer

Ein IP Paket das an ein Ziel gehen muss verlässt den Computer an der passenden Schnittstelle, aber welche ist das? Ein heutiger Computer hat in der Regel mehr Schnittstellen als einem im ersten Moment in den Sinn kommen. Meistens wird heute eine WLAN oder falls noch vorhanden, eine Ethernet Schnittstelle verwendet. Aber oft kommt noch eine VPN Verbindung für Zugriff auf ein Schul-, Home- oder Unternehmensnetzwerk, virtuelle Adapter von virtuellen Maschinen oder auch Docker Container, wie auch einen internen Loopback Adapter hinzu. Also einer ordentlichen Anzahl an Möglichkeiten, an denen ein IP Paket weitergeleitet werden kann. Die Entscheidungsgrundlage der optimalen Schnittstelle sind nicht bei jedem OS exakt gleich, die wesentlichen sind aber nachfolgend aufgelistet.

  1. Ist die Ziel IP eine Adresse die mein Host besitzt? In diesem Fall muss das Paket den Computer nicht verlassen und wird direkt von Layer 3 an den Netzwerkstack des OS übergeben.
  2. Ist die Ziel IP aus einem direkt an meinen Host anliegenden Subnetz? Möchte man als Beispiel ein Paket an 192.168.10.10 senden, wird geprüft ob ein Subnetz mit einem passenden Bereich in dem die IP enthalten ist, vorliegt.
  3. Gibt es eine spezifische Route? Ziel ist immer den längsten Prefix zu finden (LPM = Longest Prefix Match). Wenn also mehrere Möglichkeiten vorliegen, wird versucht diese zu wählen, bei dem die Subnetzmaske am längsten ist.
  4. Gibt es eine Default Route? Je nach dem ist eine Default Route von einem Gateway verfügbar.
  5. Gibt es mehrere gleichwertige Routen wird die Metrik genutzt Eine Metrik kann man sich wie einen Kosten/Aufwands Wert vorstellen. Je tiefer der Wert desto geringer die Kosten, desto besser die Verbindung. Ist man als Beispiel in einem Firmennetz im WLAN und per Ethernet verbunden, wird Ethernet die bessere Metrik haben, da ein kabelgebundenes Medium besser als Funk bewertet wird. Genauso eine Verbindung die mit dem Internet verbunden ist, gegenüber einer ohne.
  6. Fallback - Abhängig vom OS, meist kommt nun die alphabetische Reihenfolge der Netzwerkadapter.

8.1 Subnetze am Computer und Router - IP Forwarding

Betrachtet man nur das Weiterleiten von IP Paketen und vergleicht die Funktion eines Computers und eines Routers findet man kaum einen Unterschied. Die Entscheidungsreihenfolge für das Weiterleiten sind nahezu identisch. Bei einem Computer betreffen sie einfach Pakete die der Computer selbst verschicken möchten, wogegen bei einem Router es auch eingehende Pakete von anderen Teilnehmern sein können.

Ein aber doch zentraler Unterschied basiert auf IP-Forwarding. Einem Router ist es erlaubt, eingehende Pakete auf einer Schnittstelle an eine andere weiterzuleiten, was als IP-Forwarding bekannt ist. Bei einem Computer ist dies per Default untersagt, kann aber bei Bedarf auch aktiviert werden.