IPv6
Google's wichtigste Aussage gegenüber IPv6: "IPv6 is NOT like IPv4 but longer addresses" !!!Dieser Artikel ist noch in Bearbeitung!!!
Inhaltsverzeichnis
- 1 IPv6 Facts
- 2 IPv6 Adressen
- 3 IPv6 Subnetze (RFC6177)
- 4 IPv6 Header (RFC2460)
- 5 Mechanismen und Funktionsweise
IPv6 Facts
- IPv6 = 128 Bits (IPv4 = 32 Bits)
- 2^128 Adressen = 340,282,366,920,938,463,463,374,607,431,768,211,456 Adressen = ca. 100 Adressen pro Atom auf der Erdoberfläche (Dies sind nur hypothetische Zahlen)
IPv6 Adressen
Adress Typen (RFC4291)
Adresse | Beschreibung / Typ |
---|---|
2000::/3 |
Global unicast
|
::/128 |
Unspecified
|
::1/128 |
Loopback (localhost)
|
ff00::/8 |
Multicast (Broadcast)
|
fe80::/10 |
Link-Local unicast,
|
fc00::/7 |
Unique Local (RFC4193)
|
Multicast Adressen
Adresse | Beschreibung / Typ |
---|---|
ff02::1 | All Nodes link-local Muticast Address (Broadcast) |
ff02::2 | All Routers link-local Multicast Address (Gateway) |
ff02::5 | OSPF |
ff02::6 | OSPF Designated Routers |
ff02::1:2 | All DHCP Agents and Servers |
ff05::1:3 | All DHCP Servers (site local) |
Weitere Infos: http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml
WAs ist ein HExtet!!!
Regeln zur vereinfachten Adressdarstellung
1. Führende Nullen innerhalb eines Hextet weglassen: Beispiel: 2001:0DB8:0000:1111:0000:0000:0000:0200 -> 2001:DB8:0:1111:0:0:0:200
2. Aufeinanderfolgende Hextette mit Nullen können durch :: dargestellt werden: Beispiel: 2001:DB8:0:1111:0:0:0:200 -> 2001:DB8:0:1111::200
3. Die Buchstaben a, b ,c d, e und f in der IP müssen klein geschrieben werden.
4. Die Doppelpunkte :: dürfen nicht verwendet werden um nur ein 0-Hextet (16 Bit) zu verkürzen. Erst ab zwei 0-Hextette darf gekürzt werden. (0-Hextet = ...:0000:...)
5. Wenn mehrere 0-Hextette an unterschiedlicher Stelle der IP vorhanden sind, müssen die häufigsten aufeinanderfolgende 0-Hextette gekürzt werden. Beispiel: 2001:db8:0:1:0:0:0:1 -> 2001:db8:0:1::1
6. Wenn es gleiche viele 0-Hextette hat, werden die ersten 0-Hextette gekürzt. Beispiel: 2001:db8:0:0:1:0:0:1 -> 2001:db8::1:0:0:1
IPv6 Subnetze (RFC6177)
- Ein "Kunde" erhält ein Subnetz der Grösse /48, /56, oder /60
- Ein Subnetz ist NIEMALS kleiner als /64
Interface ID
- Die Interface ID mit den 64-Bit ist einen eminente Adressverschwendung.
- Es macht keinen Sinn mehr Hosts in einem Subnetz zu haben als vorher (~200) aus folgenden Gründen:
- Sicherheit
- Performance
- Fault Isolation
- Viele Mechanismen bauen auf der Voraussetzung der 64-Bit Interface ID auf:
- Stateless Address Autoconfiguration (SLAAC; RFC4862)
- Neighbor Discovery (ND; RFC4861)
- Secure Neighbor Discovery (SEND; RFC3971)
- Privacy extensions (RFC4941)
- Teile von Mobile IPv6
- Teile von Multicast Routing
- Einzelne Transitionmechnanismen
- Falls die MAC-Adressen ausgehen, das die neuen MAC-Adressen "/64" innerhalb der Interface ID platziert werden.
IPv6 Header (RFC2460)
IPv6 Extensions-Headers
Order | Header Type | Next Header Code |
---|---|---|
1 | Basic IPv6 Header | |
2 | Hop-by-Hop Options | 0 |
3 | Destination Options (with Routing Options) | 60 |
4 | Routing Header | 43 |
5 | Fragment Header | 44 |
6 | Authentication Header | 51 |
7 | Encapsulation Security Payload Header | 50 |
8 | Destination Options | 60 |
9 | Mobility HEader | 135 |
No next Header | 59 | |
Upper Layer | TCP | 6 |
Upper Layer | UDP | 17 |
Upper Layer | ICMPv6 | 58 |
Mechanismen und Funktionsweise
ICMPv6
ICMPv6 kann nicht mehr grundsätzlich gesperrt werden um Pings zu verhindern, da man sonst zu viele andere Dinge noch sperren würde. Somit sollten nur gewisse ICMPv6-Types gesperrt werden.
- Die bisherigen Funktionen von ICMP bleiben vorhanden.
- Viele neue Funktionalitäten:
- MLD / MRD – Multicast Listener/Router Discovery (IPv4: IGMP)
- SLAAC – Stateless Adress Autoconfiguration (IPv4: DHCP)
- Mobile IP (IPv4: Mobile IP RFC3344)
- ND – Neighbor Discovery (IPv4: ARP)
Stateless Address Autoconfiguration (SLAAC)
Mittels SLAAC kann sich ein IPv6 Host selbst eine globale Adresse zulegen.
- Der Host macht sich eine Link-lokale Adresse auf dem link-local unicast Prefix (fe80) mit seiner Ethernet MAC Adresse in der Interface ID Beispiel: fe80::a693:4cff:febc:3582
- Nun fragt der Host auf der All Router link-local unicast Adresse (fe02::2) nach Routern (ICMPv6: Router Solicitation)
- Der Router antwortet mit einem ICMPv6 Router Advertisement. Darin steht die Router Adresse (default GW) und das globale /64 Prefix des Subnetzes.
- Der Host fügt seine MAC Adresse in die Interface ID und hat nun eine global unicast adresse und die Default Gateway Adresse.
Die EUI-64 MAC-Adresse abgeleitet von der MAC-Adresse erstellt nicht jedes Betriebssystem.
Privacy Extensions (RFC4941)
Die MAC Adresse in der globalen unicast IPv6 Adresse einzufügen, birgt offensichtliche Gefahren für die Privatsphäre eines Endhosts, also wurden die privacy Extensions hinzugefügt
- Zusätzlich zur EUI-64 Adresse generiert sich ein Host eine global unicast Adresse mit zufälliger Interface ID
- Diese Interface ID hat eine beschränkte Lebensdauer und wird in gewissen Abständen (Windows default: 1d) neu generiert.
- Für den Verbindungsaufbau ins Internet wird diese Adresse bevorzugt.
Duplicate Address Detection (DAD)
DAD stellt sicher, dass die selbst generierte IPv6 unicast Adresse nicht zufälligerweise doppelt vorkommt. Wenn niemand antwortet, kann die Adresse verwendet werden.
DHCP
SLAAC wurde entwickelt mit der Idee, DHCP zu ersetzen. Das DNS wurde jedoch vergessen.
- Folgende Mechanismen beheben den fehlenden DNS:
- Manuelle Konfiguration auf dem Host: so weit so gut
- Stateless DHCPv6 (RFC3736): DHCP Server, der nur Zusatzinformationen ausgibt, wie DNS Server Informationen
- Stateful DHCPv6 (RFC3315): DHCP Server, der dieselbe Funktionalität hat wie in IPv4
- RDNSS (RFC6106): DNS Server in einem Optionsfeld des RA mitteilen
DHCPv6
Stateless DHCPv6
Stateful DHCPv6
Recursive DNS Server (RDNSS)
Neighbor Discovery (ND)
Befehle (Commands)
Anzeigen der Präfixen (Prioritäten, je höher die Preferences desto höher die Priorität) - Windows
netsh int ipv6 sh pref
IPv4 anstatt IPv6 bevorzugen
- PowerShell als Admin starten und folgendes ausführen:
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20 -PropertyType "Dword" Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20
- Reboot
Nützliche Dokumente / Links
IPv6 Cheatsheet: Datei:IPv6 Cheatsheet.pdf
Gute Beschreibungen von IPv6: http://www.elektronik-kompendium.de/sites/net/0812201.htm