Schicht 2: Internet

Die Transport-Schicht hat die Daten in einzelne Teile zerlegt und nummeriert. Nun müssen diese Pakete irgendwie ans Ziel kommen. Dabei ist egal was im Paket drin ist und wo das Paket durchgeht.

IP-Adresse
z.B. 86.118.137.202 oder 192.168.12.54

Internet Protocol (IP)

Das Internetprotokoll (IP) ist auf der Internetschicht angesiedelt. Seine Hauptaufgabe ist es, wie der Name andeutet, Datenpakete zwischen verschiedenen Rechnernetzen zu vermitteln, also Daten über unterschiedliche Rechnernetze hinweg weiterzuleiten.

Heute basiert das Internet auf der vierten Version des Internetprotokolls (IPv4). Es sind jedoch Bestrebungen im Gang, das gesamte Internet auf die Version 6 (IPv6) umzustellen. Wir betrachten nur IPv4.

IP-Adressen

Im noch gebräuchlichen IPv4-Format besteht eine IP-Adresse aus insgesamt 32 Bit, unterteilt in vier 8-Bit-Zahlen, die in der Dezimaldarstellung durch einen Punkt getrennt werden.

\[ \mathtt{130.32.1.215}\]

Jede IP-Adresse besteht aus einem Netzwerkteil, der die Adresse des Rechnernetzes angibt und einem Geräteteil, welcher die Adresse des Geräts innerhalb des Rechnernetzes beschreibt. Durch die sogenannte Netzmaske wird angegeben, wie eine IP-Adresse in Netzwerk- und Geräteteil aufgeteilt wird.

Netzmaske

Die Netzmaske (engl. netmask) schreibt man wie eine normale IP-Adresse. Allerdings muss ihre Binärdarstellung mit Einsen beginnen und mit Nullen enden, wobei nur einmal von 1 auf 0 gewechselt wird: 1111 1111 1111 1111 1111 1110 0000 0000 steht also für 255.255.254.0 und ist eine gültige Netzmaske. 127.2.145.234 ist keine gültige Netzmaske, da die Nullen und Einsen der Binärdarstellung nicht absteigend sortiert sind.

Die oberhalb bereits verwendete Netzmaske

\[ \mathtt{255.255.254.0}\]

bedeutet, dass die ersten 23 Bits einer IP-Adresse zum Netzwerkteil und die 9 letzten Bits zum Geräteteil gehören. Mit Hilfe von logischen Operationen auf den einzelnen Bits können aus IP-Adresse und Netzmaske die beiden Teile berechnet werden. Es gilt:

\[ \text{Netzwerkteil} = \text{IP-Adresse } \mathtt{ AND } \text{ Netzmaske}\]

\[ \text{Ger}\ddot{\text{a}}\text{teteil} = \text{IP-Adresse } \mathtt{ AND } \text{ } \mathtt{ NOT } \text{ Netzmaske}\]

Aus der IP-Adresse 192.168.211.1 und der Netzmaske 255.255.254.0 können die beiden Teile folgendermassen berechnet werden:

IP-Adresse \(\mathtt{192.168.211.1}\) 11000000 10101000 11010011 00000001
\(\mathtt{AND}\) Netzmaske \(\mathtt{255.255.254.0}\) 11111111 11111111 11111110 00000000
Netzwerkteil \(\mathtt{192.168.210.0}\) 11000000 10101000 11010010 00000000
IP-Adresse \(\mathtt{192.168.211.1}\) 11000000 10101000 11010011 00000001
\(\mathtt{AND}\) \(\mathtt{NOT}\) Netzmaske \(\mathtt{255.255.254.0}\) 11111111 11111111 11111110 00000000
Geräteteil \(\mathtt{0.0.1.1}\) 00000000 00000000 00000001 00000001

Eine Telefonnummer besteht aus einer Ländervorwahl und einem nationalen Teil:
+41 31 123 45 67
Die Vorwahl +41 bezeichnet dabei das nationale Telefonnetz und entspricht in etwa dem Netzwerkteil der IP-Adresse. Ist man bereits in der Schweiz, so kann man die Ländervorwahl weglassen und erreicht die Nummer unter 031 123 45 67 (was in etwa dem Geräteteil der IP-Adresse entspricht)

Subnetz

Als Subnetz wird ein zusammenhängendes Teilnetz eines Rechnernetzes bezeichnet. Es fasst mehrere aufeinanderfolgende IP-Adressen mittels einer Netzmaske zusammen.

Es existieren zwei verschiedene Schreibweisen zur Angabe eines Subnetzes. Beide Schreibweisen beginnen mit der IP-Adresse des Subnetzes. Bei der Maskenschreibweise gibt man zusätzlich die Netzmaske an. Bei der Längenschreibweise gibt man die Anzahl Bits an, die alle IP-Adressen des Subnetzes gemeinsam haben.

Maskenschreibweise Längenschreibweise
1) \(\mathtt{192.168.1.0/255.255.255.0}\) \(\mathtt{192.168.1.0/24}\)
2) \(\mathtt{172.16.4.0/255.255.252.0}\) \(\mathtt{172.16.4.0/22}\)
3) \(\mathtt{195.16.85.80/255.255.255.248}\) \(\mathtt{195.16.85.80/29}\)

Beispiel 3 in Binärdarstellung:

Mit den drei freien Bits lassen sich \(2^3 = 8\) verschiedene Zahlen darstellen. Von diesen 8 möglichen IP-Adressen stehen 6 für Clients zur Verfügung (Die tiefste, die sogenannte Netzwerk-IP 195.16.85.80 fällt weg. Ebenso die höchste IP-Adresse 195.16.85.87; diese wird als Broadcast-Adresse verwendet.) Das Subnetz besteht also aus allen IP-Adressen 195.16.85.81, 195.16.85.83, 195.16.85.84, 195.16.85.85 und 195.16.85.86.

Ein Rechner hat die IP-Adresse 154.14.53.0 und die Subnetzmaske 255.255.224.0:

  • Handelt es sich um korrekte Angaben? Begründe deine Antwort.
  • Gib das Subnetz in der Längenschreibweise an.
  • Wie viele IP-Adressen können in diesem Subnetz für Clients verwendet werden?
  • Gib die kleinste und die grösste Client-IP, sowie die Broadcast-IP an.

Finde die folgenden IP-Adressen und Subnetzmasken und notiere sie. Finde jeweils die Anzahl möglicher Clients im Subnet:

  • Der Kinet-Rechner an dem du momentan arbeitest (über die Windows-Kommandozeile und den Befehl ipconfig)
  • Dein Smartphone, falls du eines dabei hast (irgendwo im Einstellungs-Menu sollte die IP-Adresse sichtbar sein. Ev. muss man die Stelle googeln)
  • Die externe IP deines Kinet-Rechners (verfügbar über Web-Dienste wie whatsmyip)

Routing

Will ein Gerät ein IP-Paket versenden, werden die Netzwerkteile der Quell-IP-Adresse und Ziel-IP-Adresse verglichen. Stimmen sie überein, befindet sich der Ziel-Host im selben Netz und das Paket wird direkt an den Empfänger gesendet.

Stimmen die Netzwerkteile dagegen nicht überein, so wird über eine Routingtabelle1 die IP-Adresse eines Routers (next hop) gesucht und das Paket an diesen Router gesendet. Der Standard-Weg geht über die IP des Gateways welche beim Gerät gesetzt sein muss. Dieser hat über eine oder mehrere Schnittstellen Kontakt zu anderen Netzen und routet das Paket mit demselben Verfahren weiter – er konsultiert dazu seinerseits seine eigene Routingtabelle und sendet das Paket gegebenenfalls an den nächsten Router oder an das Ziel. Bis zum Endgerät kann das Paket viele Netze und Router durchlaufen. Das Durchlaufen eines Routers wird auch Hop (Sprung) genannt, das Routingverfahren Next Hop Routing.

Ein Router hat dabei für jede seiner Schnittstellen eine eigene IP-Adresse und Netzmaske, die zum jeweiligen Netz gehört. Jedes IP-Paket wird einzeln geroutet. Die Quell- und Zieladresse im IP-Header werden vom Sender gesetzt und bleiben während des gesamten Weges unverändert.
Die Routing-Tabelle beinhaltet für jedes dem Router bekannte Subnetz eine Zeile mit den folgenden Angaben:

Netzadresse
IP-Adresse des Zielrechnernetzes

Netzmaske
Die Netzmaske ergibt zusammen mit der Netzadresse das Ziel-Subnetz

Gateway
Nächste IP-Adresse, an welche das Paket verschickt werden muss, damit es ans Ziel gelangt.

Schnittstelle
Die IP-Adresse der lokalen Schnittstelle über die das Paket verschickt werden muss. Diese IP-Adresse muss im selben Subnetz wie der Gateway liegen.

Metrik (Hops)
Hier werden die Weiterleitungskosten (Anzahl Router auf dem Weg zum Ziel) abgelegt. Die Metrik kommt dann zum Zug, wenn für die Ziel-IP-Adresse mehrere Routen existieren.

Gegeben sei ein LAN mit drei Subnetzen und einem Zugang ins Internet2. Um die Netze miteinander verbinden zu können, werden drei Router eingesetzt:

Die Routingtabelle bei Router 2 sieht folgendermassen aus:

Ziel Netzmaske Gateway Schnittstelle Metrik (Hops)
\(\mathtt{192.168.0.0}\) \(\mathtt{255.255.255.0}\) \(\mathtt{192.168.1.1}\) \(\mathtt{192.168.1.2}\) 2
\(\mathtt{192.168.1.0}\) \(\mathtt{255.255.255.0}\) \(\mathtt{192.168.1.2}\) \(\mathtt{192.168.1.2}\) 1
\(\mathtt{192.168.2.0}\) \(\mathtt{255.255.255.0}\) \(\mathtt{192.168.2.1}\) \(\mathtt{192.168.2.1}\) 1
\(\mathtt{0.0.0.0}\) \(\mathtt{0.0.0.0}\) \(\mathtt{192.168.1.1}\) \(\mathtt{192.168.1.2}\) 3
  • Welchen Zweck verfolgt die letzte Zeile in der Routingtabelle? Wann tritt diese Regel in Kraft?
  • Erstelle Routingtabellen für Router 1 und Router 3.

Gegeben sei der im Diagramm dargestellte Verbund von Firmennetzen. Die einzelnen Netze sind durch Router miteinander und mit dem Internet (Provider TELONET) verbunden. Alle Router sind korrekt konfiguriert, d.h. ihre Routingtabellen beinhalten keine Fehler. Beschreibe die genauen Schritte für die Zustellung eines IP-Pakets:

a) Ausgangs-Adresse: 10.43.3.32, Ziel-Adresse: 10.43.3.19

b) Ausgangs-Adresse: 10.43.3.32, Ziel-Adresse: 192.168.0.9

c) Ausgangs-Adresse: 10.43.3.32, Ziel-Adresse: 10.43.4.2

d) Erstelle Routing-Tabellen für den grünen (10.43.5.1) den braunen (10.43.3.1) sowie den grauen Router (10.43.250.2).

Das Kommandozeilen-Tool traceroute3 versucht die Route eines IP-Paket herauszufinden. Dabei werden die Zwischenstationen (hops), also dort wo das Paket geroutet wird, aufgelistet. Versuche damit die Routen zu den Webservern von wikipedia.de und 20min.ch herauszufinden:

  • Starte den traceroute-Befehl für die beiden Domains und inspiziere den Output
  • Versuche zu den hops Zusatzinformation herauszufinden und festzuhalten (am Besten kopierst du den Output traceroute-Befehls in eine Excel-Tabelle):
  • Durch die IP-Adresse und eine whois-Abfrage z.B. über who.is
  • Durch Top-Level-Domains bei aufgelösten IP-Adressen (z.B. edu, de, net)
  • Durch Testen ob die Domains der aufgelösten IP-Adressen Webseiten haben (Eingabe der Domain im Browser als URL)
  • Durch Herausfinden wo sich die IPs befinden mit Tools wie IP-Mapper oder Geo2IP

NAT

Der Router zu Hause (Cable-Modem oder ADSL-Router) verbindet das Heim-Netz mit dem Internet. Ruft man eine Webseite auf, so weiss der Computer, dass die IP nicht im eigenen Heim-Netz liegt und wendet sich an seinen Standard-Gateway, also an den Internet-Router. Dieser leitet die Anfrage in seinem Namen ans Internet weiter. Dabei merkt er sich, von welchem internen Gerät die Anfrage kommt, damit er die Antwort dann korrekt weiterleiten kann. Die Geräte im Heim-Netz haben ja eine „private“ IP-Adresse. Für den kontaktierten Web-Server sieht es aus, also ob ihn der Internet-Router kontaktieren würde. Er schickt die Antwort also an ebendiesen. Der Router muss jetzt selbst wissen, an wen er das Paket im Heim-Netz zustellen soll.

Wie kann aber jemand von ausserhalb auf ein Gerät im Heim-Netz zugreifen?4

Zwei Dinge müssen gewährleistet sein:

  1. Die externe IP-Adresse des Routers muss bekannt sein
  2. Der Router muss die Anfrage an das gewünschte Gerät weiterleiten. Denn mit der externen IP kommt man nur bis zum Router – auf die IPs des Heimnetzes hat man keinen Zugriff.

Die IP-Adresse lässt sich in den Einstellungen des Routers anzeigen, oder man besucht von zu Hause eine Seite à la «What’s my IP» um diese herauszufinden. Da die externe IP von Zeit zu Zeit wechselt, unterstützen viele Router sogenannte «Dynamische DNS-Dienste». Dort erhält man eine eigene Subdomain die auf die externe IP des Routers verweist und von diesem automatisch aktualisiert wird.

Damit der Router die Anfragen an ein Gerät weiterleiten kann, muss auf ihm mittels NAT (network address translation) eine Weiterleitungsadresse konfiguriert werden.

Meist lässt sich wählen, ob man alle externen Anfragen an eine bestimmte IP weiterleiten möchte. Diese Einstellung ist allerdings nur in den seltensten Fällen zu empfehlen, da man so nur ein Gerät von ausserhalb des Heimnetzes erreicht und dieses dann sämtliche Anfragen (erwünschte und unerwünschte) erhält.

Die Alternative ist das sogenannte «Port Mapping», auch NAPT (network address and port translation) oder PAT (port address translation) genannt. Dabei kann für jeden Port eine interne IP definiert werden. So werden einerseits nur Anfragen auf den entsprechenden Port weitergeleitet, andererseits können durch verschiedene Ports auch unterschiedliche Geräte im Heim-Netz angesprochen werden.

Ein weiterer Vorteil ist, dass so ein externer Port (z.B. Standard-Port für HTTP, also Port 80) auf einen anderen internen Port weitergeleitet werden kann, z.B. auf ein Gerät wo auf Webserver mit XAMPP läuft, also auf Port 8080.

Einige Beispiele wo man NAT verwendet:

NAS
Man betreibt zu Hause ein NAS (network attached storage). Meist handelt es sich bei diesen Netz-Speichern um vollständige Computer, die über ein Webinterface erreichbar sind. So kann man z.B. von überall auf die Dateien zu Hause zugreifen. Zudem bieten moderne NAS viele weitere Webdienste an, die durch NAT auch von ausserhalb des Heimnetzes verfügbar sind.

Filesharing
Gewisse P2P-Filesharing-Clients funktionieren nur, oder besser, wenn der Computer auf dem sie gestartet sind, von extern zugänglich ist. Hier sollte man also ein Port Mapping einrichten.

Secure Shell
Zugriff von ausserhalb auf einen heimischen Linux-Rechner über SSH. Hier muss ein Port Mapping auf den SSH-Port (Port 22) eingerichtet werden.

Games
Diverse Online-Games kann man mit Port Mapping betreiben. Ist der Server online im Internet, hat man meist keine Probleme, weil die Verbindung vom Heim-Netz zum Server aufgebaut wird. Möchte man aber einen Server selbst im eigenen Netz betreiben, kann man mittels NAT externen Mitspielern Zugriff gewähren.


  1. Auch der Computer legt eine Routingtabelle an. Diese kann mit netstat -r angezeigt werden. Der sogenannte «Default-Gateway», also der Router für alle IPs im Internet, wird meist per DHCP gesetzt und lässt sich mit dem Befehl ipconfig abrufen. 

  2. Quelle: http://de.wikipedia.org/wiki/Routingtabelle 

  3. Mehr Infos unter: https://de.wikipedia.org/wiki/Traceroute 

  4. Oft ist dies gar nicht gewünscht – der Internet-Router stellt also eine einfache Barriere (Firewall) zwischen Heim-Netz und Internet dar. Anfragen auf die externe IP werden nicht weitergeleitet.