IPv4 und IPv6


IPv4 und IPv6

Im Header des IP-Protokolls finden wir Quelladresse und Zieladresse mit jeweils 4 Byte

IP-Adressen beschreiben Endgeräte

IP-Adressen dienen der Weiterleitung von Daten (routing)

 

IP-Adresse von IPv4 ist kürzer als die von IPv6

4Byte (IPv4)  vs.  16Byte (IPv6)

 

Adressraum IPv4

256 * 256 * 256 *256  (theoretisch) ~ 4,294 Mrd. Adressen

Warum theoretisch? -> einige Adressen sind bereits reserviert

à private Adressen für LANs (10.x.x.x, 192.168.x.x, 172.16.0.0 – 172.31.255.255)

à broadcast-Adressen

127.0.0.1 = local host

APIPA 169.254.x.x (automatic private ip adressà Windows-PCs)

3.707.764.736 Adressen verfügbar

Wikipedia:
Seit Mitte 2011 werden in Deutschland Ortsnetzrufnummern (mit ONKz, aber ohne Verkehrsausscheidungsziffer) grundsätzlich mit elf Ziffern vergeben, eine Ausnahme bilden Einzelrufnummern in den Ortsnetzen Berlin, Hamburg, Frankfurt und München mit zehn Ziffern. Im nationalen Verkehr können jedoch mehr als 15 Ziffern verwendet werden, dies gilt insbesondere für Sonderrufnummern.

 

IP-Adresse(32bit) =  Netz-Adresse + Host-Adresse   (Host = Endsystem)

 

Ähnlich wie Telefonnummern=  Vorwahl + Rufnummer
040
0201
02327

Netz bündelt Hosts, die in einem Netz zusammen gehören.

Subnetz-Maske dient dazu, die Netzadresse von der Host-Adresse zu unterscheiden

Notation:   z.B. 255.255.255.0

 

 

Es sei 192.168.17. 43 die IP-Adresse eines Hosts

In welchem Teilnetz befindet er sich? à nicht eindeutig klärbar ohne Subnetzmaske

 

Subnetzmaske:

Bits mit Wert 1 sind Netzanteil
Bits mit Wert 0 sind Hostanteil

255.255.255.0 à 1111 1111 1111 1111 1111 1111 0000 0000

„dotted decimal notation“ – durch Punkte getrennte Dezimalzahlen
Veraltet: Subnetze in Klassen eingeteilt, besser ist das Einteilen „bitweise“ mit CIDR-Notation

192.168.17.43/24  ß Schrägstrich plus Anzahl Bits des Subnetzes

IP Einstellungen

IP Einstellungen

Gelegentlich findet man noch die alte Einteilung in Klassen

Klasse Netzmaskenlänge
A 0.0.0.0 – 127.255.255.255 8
255.0.0.0
Globale und lokale Adresse
B 16
255.255.0.0
C 24
255.255.255.0
D 224.0.0.0 – 239.255.255.255 Multicast
E 240.0.0.0 – 255.255.255.255 reserviert

 

B: 128    1000 0000

C: 192    1100 0000

D: 224    1110 0000

E: 240    1111 0000

 

Nachteil dieser groben Aufteilung wurde schnell deutlich mit immer weniger freien IP-Adressen

 

Vergabe der IP-Adressen

IANA = internet assigned numbers authority

 

ANIC = African network information center

APNIC=Asia Pacific network information center

ARIN = American registry for internet numbers

LACNIC = Latin American and Caribbean internet addresses registry

RIPE NCC = Réseaux IP Européens(fr.) network coordination center

DENIC

Provider

 

IPv6

  • Begrenzter, verbrauchter Adressraum in IPv4
  • Aufteilung ungeschickt unter IPv4
  • Konfiguration der Hosts leichter mit CIDR
  • Verbessertes Routing durch veränderten Header / fehlendes Broadcast

 

Anzahl Adressen: 3,4 x10E38 = 340.282.366.920.938.463.463.374.607.431.768.211.456

 

Header IPv6

VITS: 1.4.2.1

VITS: 1.4.2.9

 

  1. Was ist der TCP/IP Stack?
  2. Wie sind IP Adressen aufgebaut?
  3. Worin unterscheiden sich IPv4 + IPv6 Adressen?
  4. Welcher Standard bezeichnet TCP/IP?
  5. Was sind stateless und stateful address-configuration bei IPv6?

 

VITS: 1.4.2.1

VITS: 1.4.2.6

 

Bevor wir uns die Funktionsweise von Routern verdeutlichen, müssen wir zunächst auf die verschiedenen Arten der Sendung eingehen:

Unicast (unique = einzigartig)

Unicast

Unicast

Ziel ist genau ein Host

 

Broadcast

broadcast

Broadcast

“an alle”

MAC-Adresse: ff:ff:ff:ff:ff:ff ARP(address resolution protocol)

Auch bei DHCP(dynamic host configuration protocol)

Oder Wake-on-LAN

IPv6 unterstützt keine Broadcasts mehr, es werden stattdessen Multicasts verwendet.

 

Anycast

Anycast

Anycast

Einer(aber nicht mehrere) aus einer Gruppe ist das Ziel.

Beispiel: es wird ein Weg gesucht, die erste Meldung à kürzester Weg

    • gleichartige Server auf
      räumlich getrennten IP-Netzen

 

Vorteile von Anycast sind

    • Lastverteilung und
    • kürzere Zugriffszeiten.
    • Skalierbar

 

-> VoIP, DNS-Rootserver

 

Multicast

Multicast

Multicast

 

Aussendung an eine abgegrenzte Gruppe

Multicast Adresse

Multicast Adresse

 

Geocast

Geocast

Geocast

 

Multicast mit IP-Adressbereich auf kontinentaler Ebene

1. Erläutern Sie UNI-, MULTI- und Broadcast.

2. Nennen Sie die Privaten Adressbereiche IPv4.

3. Warum wurden priv. Adressbereiche eingeführt?

 

 

SLAAC – Stateless Address Autoconfiguration (IPv6)

 

Die Stateless Address Autoconfiguration (SLAAC) ist ein Verfahren zur zustandslosen und automatischen Konfiguration von IPv6-Adressen an einem Netzwerk-Interface. Mit “stateless” bzw. “zustandslos” ist gemeint, dass die jeweilige IPv6-Adresse nicht zentral vergeben und gespeichert wird. Demnach erzeugt sich der Host seine IPv6-Adresse unter Zuhilfenahme zusätzlicher Informationen selbst. SLAAC ist die Weiterentwicklung von Verfahren für die klassische IP-Autokonfiguration unter IPv6. Anders als bei IPv4 übernehmen IPv6-Router dabei eine aktive Rolle.

Man unterscheidet grob gesehen zwischen globalen IPv6-Adressen (Global Scope) und link-lokalen IPv6-Adressen (Local Scope). Mit der Stateless Address Autoconfiguration kann sich ein IPv6-Host sowohl eine link-lokale, wie auch auf eine globale IPv6-Adresse erzeugen.
Damit bietet IPv6 den gleichen Komfort wie beim Betrieb eines sehr einfach gehaltenen DHCP-Servers. Nur das ein dediziertenr DHCP-Server für derartige Informationen nicht bereitgestellt werden muss.

Das Ziel von SLAAC ist, dass in jedem Fall eine Verbindung innerhalb des lokalen Netzwerks möglich ist.

 

SLAAC für eine link-lokale IPv6-Adresse

Router - Client Host

Router – Client Host

Eine IPv6-Adresse besteht aus insgesamt 128 Bit. Eine link-lokale IPv6-Adresse wird aus einem Präfix (64 Bit) und einem Suffix (64 Bit) gebildet. Der Präfix für alle link-lokalen IPv6-Adressen ist immer “fe80:0000:0000:0000”. Das Suffix (Interface Identifier) ist der EUI-64-Identifier oder IEEE-Identifier, der aus der MAC-Adresse (Hardware-Adresse des Netzwerkadapters) gebildet wird. In der Mitte der 48-Bit-MAC-Adresse (zwischen dem dritten und dem vierten Byte) werden mit “ff:fe” zwei feste Bytes eingefügt, damit es 64 Bit werden. Zusätzlich wird noch das zweite Bit im ersten Byte der MAC-Adresse invertiert. Das heißt, aus “1” wird “0” und aus “0” wird “1”.
Warum? Als man den Adressraum für MAC-Adressen festgelegt hat, hat man vorausschauend einen Adressbereich festgelegt, den man sich selber ausdenken kann. Die also nicht zugewiesen werden. Im zweiten Bit vom ersten Byte steckt ein Indikator drin, der diese Information enthält, ob die MAC-Adresse von der IEEE zugewiesen wurde oder ob sie selber ausgedacht ist. Wenn das Bit auf “0” ist, dann handelt es sich um eine MAC-Adresse, die von der IEEE zugewiesen wurde. Ist das Bit auf “1”, dann ist es eine Phantasie-Adresse.
Wenn man sich jetzt die IPv6-Adresse bildet, dann können die Bits beliebig sein. Wenn man sich die MAC-Adresse ausgedacht hat, dann wird bei einer EUI-64 das Bit in der Regel zur “0” gedreht.

Auf diese Weise wird zum Beispiel die MAC-Adresse “00:0C:F1:8E:C1:D8” zum Interface Identifier “020c:f1ff:fe8e:c1d8”. Und der Host bildet sich so die link-lokale Adresse “fe80:0000:0000:0000:020c:f1ff:fe8e:c1d8”.

Bevor ein Host diese link-lokale Adresse nutzen kann muss er eine Duplicate Address Detection (DAD) durchführen, um festzustellen ob die Adresse im lokalen Netz womöglich existiert.

 

DAD – Duplicate Address Detection

Um Adresskollisionen zu vermeiden sollte der Host bei einer neu generierten IPv6-Adresse eine Duplicate Address Detection (DAD) durchführen.

  1. Neighbor Solicitation: Dazu schickt der Host eine Anfrage an die generierte Adresse ins lokale Netz. Als Antwort-Adresse dient eine Multicast-Adresse.
  2. Neighbor Advertisement: Falls eine andere Station die IPv6-Adresse bereits nutzt, kommt eine Antwort zurück.

Erst wenn keine Antwort von dieser Adresse zurückkommt bindet sich das Interface an diese Adresse und kann sie für die Kommunikation nutzen.

Weil es keine Pflicht gibt eine DAD durchzuführen, sind Adresskollisionen trotzdem möglich. Aufgrund des sehr großzügigen Adressraums und der weltweit eindeutigen MAC-Adressen aber eher unwahrscheinlich.
Sollte es doch einmal zu einer Kollision kommen und die IPv6-Adresse tatsächlich schon existieren, dann muss die IPv6-Adresse vom Anwender manuell geändert werden.
Dann sollte man gleich das ganze Netzwerk überprüfen. Es könnte dann sein, dass jemand eine MAC-Adresse gekapert hat und per MAC-Spoofing ins Netzwerk eingedrungen ist.

 

SLAAC für eine globale IPv6-Adresse (ohne Privacy Extensions)

Router Client Host

Router Client Host

 

Mit seiner link-lokalen IPv6-Adresse kann der Host nur im lokalen Netzwerk kommunizieren. Für das Internet braucht er eine zusätzliche IPv6-Adresse, die er sich ebenfalls selber generiert. Dazu muss der Host beim Standard-Gateway (nächster Router) nachfragen, was der Präfix des globalen Adressblocks ist. Dabei handelt es sich um den Adressraum, den man vom Netzzugangsprovider (ISP) zugeteilt bekommen hat. Der Präfix ist in der Regel 64 Bit lang.
Diesen Präfix gibt der Router in regelmäßigen Abständen per Router Advertisement bekannt. Sofern der Client oder Host diesen noch nicht erhalten hat, kann er den Präfix auch per Solicitation Message (Router Solicitation) anfordern. Als Antwort kommt ein oder auch mehrere Router Advertisements mit dem globalen Präfix zurück.

  1. Router Solicitation (Solicitation Message): Mit seiner link-lokalen IPv6-Adresse bittet der Host auf der Multicast-Adresse “ff02::2” um den globalen Präfix (optional).
  2. Router Advertisement (Advertisement Message): Der Router schickt daraufhin eine Nachricht mit dem globalen Präfix für dieses Netzwerk, der MTU (Größe der IP-Pakete) und dem Flag “autonomous”.

Aus dem per Router Advertisement erhaltenen Präfix und dem Interface Identifier der link-lokalen Adresse wird dann die globale IPv6-Adresse gebildet. Danach prüft der Host, ob diese Adresse im lokalen Netzwerk schon vergeben ist (Duplicate Address Detection, DAD). Wenn sie frei ist, weist er die globale Adresse seiner Netzwerkschnittstelle zu.

 

SLAAC für eine globale IPv6-Adresse mit Privacy Extensions (Lösung des Datenschutz-Problems)

Der Hostanteil bzw. Interface Identifier einer per SLAAC erzeugten globalen IPv6-Adresse ist weltweit eindeutig, sofern die dafür verwendete MAC-Adresse weltweit eindeutig ist. Das bedeutet, am Interface Identifier kann man einen Host identifizieren. Unabhängig in welchem Netz (Präfix) er sich befindet. Da alle Computer und Computer-ähnlichen Geräte über eine oder mehrere Hardware-Adressen verfügen ist jeder Host über seinen Interface Identifier identifizierbar.
Da viel Hosts, zum Beispiel Smartphones und Tablets, nur von einer Person genutzt werden, sind IPv6-Adressen mit einem auf eine MAC-Adresse bezogenen Interface Identifier personenbezogene Daten. Somit wäre jeder Nutzer jederzeit identifizierbar. Mit der Einführung von IPv6 ist damit die Angst um den Verlust der Privatsphäre gestiegen.

Deshalb gibt es aus Gründen des Datenschutzes die Erweiterung “Privacy Extensions”, die standardmäßig in allen IPv6-Clients aktiviert sein sollte. Statt die eindeutige MAC-Adresse für den Interface Identifier zu verwenden, generiert der Host für den Interface Identifier einen pseudozufälligen Hash-Wert.
Ein anderes Verfahren erzeugt Cryptographically Generated Addresses (CGAs). Auch CGN verhindert die Identifizierung eines Hosts anhand seiner IPv6-Adresse.

Aus dem pseudozufälligen Interface Identifier wird eine temporäre globale IPv6-Adresse gebildet. Temporär deshalb, weil nach einer bestimmten Zeit eine neue temporäre Adresse erzeugt wird und die bisherigen auf “deprecated” gesetzt werden. “Deprecated” IPv6-Adressen werden nur noch für eingehende und bestehende Verbindungen genutzt. Neue Verbindungen nutzen die neue temporäre Adresse. Irgendwann, spätestens mit dem Neustart werden die “deprecated” Adressen gelöscht.

 

Unvollständige Autokonfiguration

Leider fehlt in manchen Betriebssystemen eine vollständige Unterstützung von IPv6. Das betrifft Windows 7 und 8, sowie das veraltete Windows XP. Auch ältere Linux-Distributionen und mobile Betriebssysteme sind nur eingeschränkt IPv6-tauglich.

 

SLAAC bei Servern und Routern

Jeder IPv6-Client richtet automatisch eine eigene link-lokale und globale IPv6-Adressen ein. Für die meisten Endgeräte ist das eine praktische Lösung. Doch bei einem Server oder Router sollten sich die IP-Adressen nicht ändern. Insbesondere dann nicht, wenn dem Server per DNS ein Host- oder Domain-Name zugeordnet ist. Und fürs IP-Routing muss ein Router zwangsläufig eine feste IP-Adresse haben. Hier sollte man die IPv6-Adresse manuell zuweisen oder zentral per DHCPv6 eine statische IP-Adresse vergeben.
Bei Servern empfiehlt es sich daher, die Autokonfiguration (SLAAC) zu deaktivieren bzw. serverseitig zu ignorieren und eine statische IPv6-Adressen nach dem Zufallsprinzip zu erzeugen und nicht durchnummeriert vergeben.

 

DHCPv6 (Stateful Address Configuration)

DHCP ist ein Protokoll, um die IP-Konfiguration in einem TCP/IP-Netzwerk zu verwalten und an die Hosts zu verteilen. Mit DHCP ist jede Netzwerk-Station in der Lage sich selber vollautomatisch zu konfigurieren.

Bei IPv6 benötigt die IP-Konfiguration eigentlich keinen DHCP-Dienst. Dafür gibt es die Stateless Address Autoconfiguration (SLAAC). Doch nicht alle IPv6-Clients können den DNS-Server auf diese Weise entgegennehmen (RDNSS-Option). DHCPv6 ist im Prinzip das einzige Verfahren, welches diese und weitere Angaben innerhalb der Autokonfiguration ergänzen kann. Um wie bei IPv4 mit DHCPv4 die gleichen Funktionalitäten für IPv6 zu ermöglichen, wurde DHCPv6 definiert.
Weil bei DHCPv6 die IP-Konfiguration zentral vergeben und gespeichert wird, spricht man von “Stateful” Address Configuration.

In der Praxis sieht die IP-Autokonfiguration häufig so aus: Per Router-Advertisement werden die IP-Grundparameter verteilt und mit DHCPv6 alles weitere. Die Autokonfiguration bleibt dabei “stateless”. Anders sieht es aus, wenn auch DHCPv6 der Präfix verteilt wird. Dann ist die Autokonfiguration “stateful”.

Hinweis: Auch bei einer “stateful” IPv6-Konfiguration muss das Router-Advertisement aktiviert sein. Nur so kann jeder Host seine link-lokale IPv6-Adresse erzeugen. Dann allerdings ohne den globalen Netzpräfix für die globale IPv6-Adresse. Der globale Präfix ist in diesem Fall im DHCPv6-Server konfiguriert (stateful). Der generiert daraus die 128 Bit lange IPv6-Adresse für die anfragenden Clients. Welchen Hostanteil (Interface Identifier) der Server aus dem möglichen Adressraum verwendet, hängt dabei von der Implementierung ab.

Ablauf von DHCPv6

Ablauf von DHCPv6

 

Der eigentliche Ablauf von DHCPv6 erfolgt in 4 Schritten (Schritt 3 bis 6). In der folgenden Beschreibung ist die vorhergehende Autokonfiguration der globalen IPv6-Adresse über SLAAC berücksichtigt (Schritt 1 und 2). Wobei das Router Advertisement (Schritt 2) der Router Solicitation (Schritt 1) zuvorkommen kann.

  1. Der Client bzw. Host sendet eine Router Solicitation (RS) an die Multicast-Adresse “ff02::2”. Damit bittet der Client um einen Präfix für die globale IPv6-Adresse.
  2. Der zuständige Router antwortet mit einem Router Advertisement (RA). Die Nachricht enthält die MTU (Größe der IP-Pakete) und den globalen Präfix für das Netzwerk (stateless) oder das Flag “managed” (stateful).
  3. Dann sendet der Client eine DHCP-Solicitation-Nachricht an die DHCPv6-Multicast-Adresse “ff02::1:2” (alle DHCPv6-Server).
  4. Die erreichbaren DHCPv6-Server antworten mit einer DHCP-Advertisement-Nachricht, die die Parameter (DNS-Server, NTP-Server etc.) zur Vervollständigung der IP-Konfiguration enthält (bei stateful auch den globalen Präfix).
  5. Der Client wählt eine IP-Konfiguration aus und fordert sie beim jeweiligen DHCPv6-Server mit einem DHCPv6-Request explizit an.
  6. Der DHCPv6-Server speichert die IP-Konfiguration mit der Client-ID (Stateful Address Configuration) und bestätigt dem Client die IP-Konfiguration per DHCPv6-Reply. Alle anderen DHCPv6-Server, die keine Anforderung des Clients erhalten haben, geben ihre angebotene IPv6-Adresse wieder frei.

Der Client konfiguriert sich nach Erhalt der Bestätigung und kann anschließend im Netz mit einer globalen IPv6-Adresse kommunizieren.

 

DHCPv6 vs. Router Advertisment

Ob man DHCPv6 ODER Router Advertisement für die IPv6-Autokonfiguration verwendet, darüber kann man gar nicht entscheiden. Grundsätzlich kommt man ohne Router Advertisements nicht aus. Auch wenn man keine “stateless” IPv6-Adressen haben möchte, sind Router Advertisements nötig. Der zuständige Router verteilt seine Router Advertisements mit dem Flag “managed”, woran ein Host erkennt, dass er sich die globale IPv6-Adresse per DHCPv6 holen muss. Das heißt, ohne RA ist kein DHCPv6 möglich.

DHCPv6 hat noch einen weiteren Makel, wegen dem RAs unverzichtbar sind. Die ursprüngliche Spezifikation von DHCPv6 sah die Konfiguration eines Standard-Gateways nicht vor. Hierzu gibt es nur den Vorschlag “DHCPv6 Route Options”, womit sich die Adresse des Default-Gateways über DHCPv6 konfigurieren lässt, wie es bei DHCPv4 üblich ist. “DHCPv6 Route Options” würde es erlauben, DHCPv6 ohne Router-Advertisements zu betreiben. Allerdings ist es fraglich, ob das jemals so zum Einsatz kommen wird.
Deshalb gilt, dass jede vollständige Autokonfiguration immer mit Router-Advertisements erfolgen muss.