Die Vermittlungsschicht im Internet verwendet IP-Adressen zur Identifizierung der Endpunkte. Jedes Gerät im Internet hat eine eindeutige Adresse, so wie jedes Gebäude auf der Welt eine eigene Post-Adresse hat 1).

Die IP-Adressen sind wie Postadressen logische Adressen, das bedeutet, dass eine IP-Adresse nur den momentanen „Ort“ im Internet bezeichnet, an dem sich ein Gerät befindet. Wenn ein Gerät „umzieht“, also beispielsweise vom WLAN der KSR ins WLAN zuhause wechselt, so ändert sich auch die IP-Adresse.

Die IP-Adresse wird einem Gerät meist zugewiesen, wenn es sich mit dem Netzwerk verbindet. Das dazugehörige Protokoll heisst DHCP. Der DHCP-Server wird mittels Broadcast (also einer Nachricht an das ganze Subnetz) angefragt und antwortet mit der IP-Adresse, der grösse des Subnetz', und dem DNS-Server.

IP-Adressen haben im IPv4-Standard 32 Bits, wobei sie meist als vier Zahlen zu je 8 bit (also von 0..255) geschrieben werden:

161.78.13.64

Mit 32 Bit lassen sich 232, also ca. 4 Milliarden verschiedene Adressen generieren, was bei weitem nicht für alle Geräte reicht. Um bis zur endgültigen Einführung von IPv6 trotzdem alle Geräte mit dem Internet zu verbinden, wird oft NAT verwendet.

Alle Geräte in einem lokalen Netz haben dasselbe Präfix, sie teilen sich also die ersten n Bits der IP-Adresse, genauso wie alle Gebäude an einer Strasse den gleichen Strassennamen und die gleiche Ortschaft in der Post-Adresse.

Alle Geräte im gleichen Subnetz können sich direkt ansprechen; alle anderen Adressen müssen via Router versendet werden → Routing

Das Subnetz wird meist mit der CIDR-Notation ausgedrückt: 161.78.13.64/24 bedeutet, dass die ersten 24 Bit (also die drei ersten Dezimal-Blöcke) das Netzwerk identifizieren. Der letzte Block identifiziert das Gerät im Subnetz; es kann also höchstens 256 Geräte im Subnetz geben.

Früher wurde das Subnetz auch als binäre Maske angegeben, die ersten drei Blöcke würden bespielsweise durch die Maske 255.255.255.0 (entspricht im Binärsystem 11111111.11111111.11111111.0) maskiert.

Übersicht über CIDR und eine Liste aller Masken findet sich auf Classless Inter-Domain Routing.

Bei der Network Address Translation (NAT) werden in einem Subnetz nicht globale IP-Adressen vergeben, sondern solche aus den folgenden privaten IP-Bereichen:

IP-Bereich CIDR-Notation Anzahl Adressen
10.0.0.0 bis 10.255.255.255 10.0.0.0/8 224 = 16.777.216
172.16.0.0 bis 172.31.255.255 172.16.0.0/12 220 = 1.048.576
192.168.0.0 bis 192.168.255.255 192.168.0.0/16 216 = 65.536

Diese Bereiche werden im Internet nicht weitergeleitet. Eigentlich bleibt die IP-Adresse eines Pakets ja für die ganze Reise durchs Internet dieselbe. Bei NAT werden die Adressen jedoch vom Router umgeschrieben: Der Router tut gegen aussen so, als ob alle Verbindungen aus seinem Subnetz von ihm selber kommen würden, er schreibt also seine eigene IP-Adresse als Absender auf die Pakete. Kommt eine Antwort zurück, stellt er fest, zu welcher Verbindung die Antwort gehört, und schreibt wieder die private IP des Geräts in seinem Subnetz darauf.

In der Post-Analogie wäre das so, als würde die Verwaltung der KSR den internen Briefkasten leeren und alle eingeworfenen Briefe in neue Umschläge verpacken, auf denen als Absender-Adresse die KSR eingetragen wäre. Antworten würden dann den ursprünglichen Absendern zugeordnet und entsprechend weiterverteilt.

Folgen:

  • Die IP-Adressen sind bei NAT nicht mehr global, die Verbindung auf der Vermittlungsschicht nicht mehr End-to-End.
  • Geräte in einen NAT-Netzwerk sind normalerweise nicht direkt von aussen erreichbar. Deshalb können Schüler-Geräte im KSR WLAN auch keinen ping von ausserhalb der Schule empfangen.
  • Es ist nicht (einfach) möglich, aus dem NAT-Netzwerk heraus einen Server zu betreiben.

Computer kommunizieren im Internet über IP-Adressen, aber im Alltag kriegen wir diese nur selten zu Gesicht. Es ist zwar möglich, im Browser direkt IP-Adressen einzugeben, z.B. http://142.250.203.99/ - aber typischerweise verwenden wir Domain-Namen, z.B. www.ksr.ch. Das Domain Name System (DNS) dient dazu, Domain-Namen in IP-Adressen zu übersetzen. Es ist also sozusagen das Telefonbuch des Internets. Bevor der Browser eine HTTP-Verbindung zum Server eröffnet, muss er den DNS-Server nach dessen IP-Adresse fragen.

Der DNS-Dienst ist ein Protokoll der Anwendungsschicht und ist normalerweise auf dem TCP-Port 53 verfügbar. Aber woher kennen wir denn die IP-Adresse des DNS-Servers? Meist wird diese vom lokalen Netzwerk zugewiesen, wenn sich ein Gerät neu mit dem Netz verbindet, zusammen mit der Adresse und der Subnetzmaske des neuen Geräts.

Ist kein lokaler DNS-Dienst verfügbar, können auch global bekannte DNS-Server von Cloudflare (1.1.1.1) oder Google (8.8.8.8) verwendet werden.

Eine Domain kann auch auf der Kommandozeile (Eingabeaufforderung) aufgelöst werden, meist mit den Befehlen nslookup, host oder dig:

$ host www.ksr.ch
www.ksr.ch is an alias for www.tg.ch.
www.tg.ch has address 161.78.13.64

Die Adresse im Browser besteht aus mehreren Teilen:

Das Scheme bestimmt, welches Protokoll benützt wird, um die Adresse zu laden, im Browser meist http oder https. Es gibt aber noch zahlreiche andere Möglichkeiten:

  • mailto identifiziert eine E-Mail-Adresse.
  • tel identifiziert eine Telefonnummer.
  • file referenziert eine lokale Datei.
  • data bedeutet, dass der Rest des URLs die Daten enthält (also kein Zugriff erfolgen muss).

Die Domain sagt, welcher Server kontaktiert werden soll. Um die richtige IP-Adresse dafür herauszufinden, kontaktiert der Browser einen DNS-Server.

Der Pfad schlussendlich wird an den Server weitergereicht und identifiziert die Ressource (z.B. eine HTML- oder CSS-Datei) auf dem Server, die geladen werden soll.

Um die Knappheit der IPv4 Adressen zu lösen, wurde ab 1999 IPv6 eingeführt, das 2128 mögliche Adressen bietet. Damit ist also nicht nur möglich, jedes Gerät mit einer Adresse zu versorgen, sondern es hat sogar genügend Adressen für jedes Atom im Universum…

IPv6-Adressen werden meist in Blöcken zu vier Hexadezimalzahlen (0-9,a-f) dargestellt: 2001:0db8:85a3:08d3:1319:8a2e:0370:7347

Beim Routing und den anderen Netzwerkschichten ändert sich nur wenig im Vergleich zu IPv4.

Routing beschreibt, wie Pakete von Router zu Router weiterversandt werden - aber wie weiss ein Gerät eigentlich innerhalb eines Subnetz, welches Gerät eine bestimmte IP-Adresse hat? Dafür dient das Adress Resolution Protocol (ARP). Innerhalb eines Subnetz kann jedes Gerät einen sogenannten Broadcast versenden, ein Paket an alle anderen Geräte im Subnetz. Das Gerät verschickt also einen APR-Broadcast und fragt „welches Gerät hat die IP-Adresse 1.2.3.4?“. Jedes Gerät im Subnetz hört den Broadcast, das richtige Gerät antwortet dann mit einer ARP-Antwort „Ich habe die IP 1.2.3.4 und meine MAC-Adresse ist ab:cd:ef:01:23“.


1)
Beides stimmt nicht ganz: zahlreiche Geräte im Internet haben keine eindeutige Adresse, sondern werden von ihrem Router hinter einer einzigen Adresse versteckt: NAT. In vielen Ländern gibt es übrigens auch keine Postadressen: Open Location Code
  • gf_informatik/web/internet/ip_adressen.1670522902.txt.gz
  • Zuletzt geändert: 2022-12-08 18:08
  • von hof