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
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
- Was ist der TCP/IP Stack?
- Wie sind IP Adressen aufgebaut?
- Worin unterscheiden sich IPv4 + IPv6 Adressen?
- Welcher Standard bezeichnet TCP/IP?
- 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)
Ziel ist genau ein Host
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
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
Aussendung an eine abgegrenzte Gruppe
Geocast
Multicast mit IP-Adressbereich auf kontinentaler Ebene
- Erläutern Sie UNI-, MULTI- und Broadcast.
-
Nennen Sie die Privaten Adressbereiche IPv4.
-
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
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.
- Neighbor Solicitation: Dazu schickt der Host eine Anfrage an die generierte Adresse ins lokale Netz. Als Antwort-Adresse dient eine Multicast-Adresse.
- 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)
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.
- 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).
- 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.
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.
- 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.
- 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).
- Dann sendet der Client eine DHCP-Solicitation-Nachricht an die DHCPv6-Multicast-Adresse „ff02::1:2“ (alle DHCPv6-Server).
- 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).
- Der Client wählt eine IP-Konfiguration aus und fordert sie beim jeweiligen DHCPv6-Server mit einem DHCPv6-Request explizit an.
- 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.