IPv6: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(30 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Datei:IPv6-Header.jpg|right|600px]] | [[Datei:IPv6-Header.jpg|right|600px]] | ||
+ | Google's wichtigste Aussage gegenüber IPv6: ''"IPv6 is '''NOT''' like IPv4 but longer addresses"'' | ||
'''!!!Dieser Artikel ist noch in Bearbeitung!!!''' | '''!!!Dieser Artikel ist noch in Bearbeitung!!!''' | ||
== IPv6 Facts == | == IPv6 Facts == | ||
Zeile 10: | Zeile 11: | ||
== IPv6 Adressen == | == IPv6 Adressen == | ||
=== Adress Typen (RFC4291) === | === Adress Typen (RFC4291) === | ||
+ | [[Datei:IPv6-adressverteilung.png|right|600px|Adressverteilung]] | ||
{| class="wikitable" style="margin-top:1em;" | {| class="wikitable" style="margin-top:1em;" | ||
|- class="hintergrundfarbe7" | |- class="hintergrundfarbe7" | ||
Zeile 46: | Zeile 48: | ||
*Nur innerhalb des Unternehmens geroutet, analog IPv4 RFC1918. | *Nur innerhalb des Unternehmens geroutet, analog IPv4 RFC1918. | ||
|} <br> | |} <br> | ||
+ | |||
+ | ==== Multicast Adressen ==== | ||
+ | {| class="wikitable" style="margin-top:1em;" | ||
+ | |- class="hintergrundfarbe7" | ||
+ | !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 <br> | ||
+ | |||
+ | |||
− | |||
− | |||
WAs ist ein HExtet!!! | WAs ist ein HExtet!!! | ||
=== Regeln zur vereinfachten Adressdarstellung === | === Regeln zur vereinfachten Adressdarstellung === | ||
+ | [[Datei:IPv6-hextet.png|thumb|Adressdarstellung (Hextet)]] | ||
1. '''Führende Nullen''' innerhalb eines Hextet weglassen: | 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''' | Beispiel: '''2001:0DB8:0000:1111:0000:0000:0000:0200 -> 2001:DB8:0:1111:0:0:0:200''' | ||
Zeile 70: | Zeile 99: | ||
+ | == IPv6 Subnetze (RFC6177) == | ||
+ | [[Datei:IPv6-subnetze.png|right|600px]] | ||
+ | *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 === | === IPv6 Extensions-Headers === | ||
[[Datei:IPv6-extensions-headers.jpg|thumb|Extension Header]] | [[Datei:IPv6-extensions-headers.jpg|thumb|Extension Header]] | ||
Zeile 134: | Zeile 184: | ||
|} | |} | ||
+ | |||
+ | |||
+ | == Mechanismen und Funktionsweise == | ||
+ | === ICMPv6 === | ||
+ | [[Datei:Icmpv6.png|700px|right]] | ||
+ | ''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:4c'''ff:fe'''bc: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.''' | ||
+ | [[Datei:Ipv6-slaac.png]] <br> | ||
+ | ''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) === | ||
+ | [[Datei:Ipv6-dad.png|thumb|right|Duplicate Address Detection]] | ||
+ | ''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) === | ||
Zeile 142: | Zeile 244: | ||
=== Befehle (Commands) === | === Befehle (Commands) === | ||
− | '''Anzeigen der Präfixen (Prioritäten) - Windows''' | + | '''Anzeigen der Präfixen (Prioritäten, je höher die Preferences desto höher die Priorität) - Windows''' |
netsh int ipv6 sh pref | netsh int ipv6 sh pref | ||
+ | |||
+ | |||
+ | |||
+ | === IPv4 anstatt IPv6 bevorzugen === | ||
+ | *PowerShell als Admin starten und folgendes ausführen: | ||
+ | <source lang="powershell"> | ||
+ | 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 | ||
+ | </source> | ||
+ | *Reboot | ||
Zeile 153: | Zeile 265: | ||
IPv6 Cheatsheet: [[Datei:IPv6 Cheatsheet.pdf]] | IPv6 Cheatsheet: [[Datei:IPv6 Cheatsheet.pdf]] | ||
+ | Gute Beschreibungen von IPv6: http://www.elektronik-kompendium.de/sites/net/0812201.htm | ||
− | + | [[Kategorie:Allgemein]] | |
− | [[Kategorie: | + |
Aktuelle Version vom 24. November 2020, 10:05 Uhr
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