IPv6
Der grösste Unterschied zwischen IPv4 und IPv6 liegt im Adressraum: über die 128 Bit langen IPv6-Adressen lassen sich - ganz ohne Tricks wie NAT & Co. - unvorstellbare 340 Sextillionen Geräte und Dienste individuell ansprechen, was einer Vergrösserung um den Faktor 2^96 gegenüber den 3.7 Milliarden nutzbarer Adressen in IPv4 entspricht. Theoretisch könnte man damit jedem Sandkorn auf der Erde mehrere Internetadressen zuweisen.
Geräte erhalten bereits dann eine IPv6-Adresse, wenn sie noch gar nicht am Netzwerk angebunden sind, da IPv6 von sich aus bereits Mechanismen zur automatischen Konfiguration beherrscht (ein DHCPv6 ist in kleinen Netzen unnötig) - die so genannte Link-Local-Adresse, die zur Kommunikation im eigenen Subnetz Verwendung findet und niemals den Router verlässt.
Weiterer Unterschied: Es gibt keinen Broadcast-Traffic mehr, sondern nur noch:
Multicast = 1:n (wird z.B. für Neighbor Discovery verwendet)
Unicast = 1:1
Anycast = 1:1 (beliebiger Empfänger aus einer Gruppe)
IPv4 versus IPv6 im Überblick:
- Adresslänge:IPv4: 4 Bytes (32 Bits)IPv6: 16 Bytes (128 Bits)
- Link-Local-Adressen zur Adressierung von Nodes in abgeschlossenen Netzwerksegmenten sowie zur Autokonfiguration oder Neighbour-Discovery:IPv4: 169.254.0.0/16IPv6:
fe80::/64
(Link-Local Adressen können wie normale Adressen auch von anderen Hosts auf dem gleichen Link genutzt werden) - Site Local Unicast, standortlokale Adressen:IPv4: 192.168.x.xIPv6: veraltet, keine zukünftige Entsprechung
- Unique Local Unicast als Nachfolger der standortlokalen Adressen:IPv4: -IPv6:
fc00::/7
(derzeit nur mit Präfix fd zu verwenden. Beispiel:fd9e:21a7:a92c:2323::1
) - Verbieten von ICMP:IPv4: üblichIPv6: nicht durchführbar, da z.B. das Neighbor Discovery Protocol (NDP), welches ARP ersetzt, auf ICMPv6 basiert
Umgang mit IPv6 in diversen Tools:
ping6 fe80::250:56ff:febc:6930%ens32
ssh fe80::250:56ff:febc:6930%ens32
ip -6 route list
Begriffe:
CGN: = CG-NAT, also known as Larger-Scale NAT (LSN)
CIDR: Classless Inter-Domain Routing
CPE: Customer Premises Equipment
EUI: Extended Unique Identifier
IANA: Internet Assigned Numbers Authority
IID: Interface Identifier
IPAM: IP Address Management
LIR: Local Internet Registry
NCC: Network Coordination Centre
NDP: Neighbor Discovery Protocol
PA: Provider Aggregatable
PI: Provider Independent
RIR: Regional Internet Registry
SLAAC: Stateless Address Auto-configuration
IANA > RIR > LIR > End User
SLAAC vs NDP:
NDP can be used to discover the MAC address
SLAAC is used by an IPv6 host to autoconfigure an IPv6 address.
Darstellung
Aufbau der 16 Bytes / 128 Bit-Adressen in 8 Gruppen à 2 Bytes / 16 Bits:
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
Subnetting:
Network/Routing Prefix - Subnet ID | Interface ID
64 bits | 64 bits
Ein und dieselbe Adresse kann auf verschiedene Arten dargestellt werden:
2001:0db8:0:0:1:0:0:1
2001:0db8::1:0:0:1
2001:db8:0000:0:1::1
2001:db8:0:0:1:0:0:1
2001:db8:0:0:1::1
2001:DB8:0:0:1::1
2001:db8::0:1:0:0:1
2001:db8::1:0:0:1
Vollständige Verkürzung („compression“) einer Adresse:
# Beispiel
2001:0db8:0000:0000:0192:000:0010:1000
# 1. Führende Nullen werden entfernt:
2001:db8:0000:0000:192:000:10:1000
# 2. Ersetze Gruppen aus vier Nullen durch eine Null
2001:db8:0:0:192:0:10:1000
# 3. ":0"-Gruppen können einmal (!) durch ":" ersetzt werden - hier nimmt man die längste Kette
2001:db8::192:0:10:1000
Die localhost-Adresse wird mit ::1
abgekürzt angegeben.
Die ersten 64 Bits definieren das Netzwerk, die restlichen 64 Bits das Interface.
CDIR-Notation
Die ersten 64 Bit bilden das Netzwerk-Präfix, die restlichen den Interface Identifier („Host“). Die Adressen werden in 16-Bit-Blöcken durch Doppelpunkt getrennt und im Gegensatz zu IPv4 nicht dezimal, sondern der Kürze wegen hexadezimal notiert.
Die Adresse 1080:6809:8086:6502/64
beispielsweise gibt ab, dass die ersten 64 Bits unveränderbar sind. Bei 2001:db8:1:/48
sind die ersten 48 Bits statisch, die folgenden 16 Bits aber frei wählbar, so dass sich 2^16 = 65’563 Netze bilden lassen.
Der Interface Identifier wird meist aus der MAC-Adresse abgeleitet. Aus 00:50:56:bc:13:01
macht RHEL beispielsweise ein fe80::250:56ff:febc:6930
.
Eine Site besitzt in der Regel ein 48 bit langes Prefix. Solch ein Netzwerk wird von Providern verwaltet und besitzt 1’208’925’819’614’629’174’706’176 Adressen.
In einer URL mit Port-Angabe wird eine IPv6 wie folgt verwendet:
https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443/...
Scopes
Adresstypen:
64:ff9b::/96: IPv4-Embedded (IPv4/IPv6 translations)
100::/64: Discard-only
Unicast:
::/128: Unspecified
::1: Loopback
fe80::/10: Scop Link-local, kann nur auf dem lokalen Netzwerklink verwendet werden
fc00::/7 (real fd00::/8): Unique Local (ULA) - haben einen globalen Scope, aber sollten nie ins Internet geroutet werden - analog private addresses in IPv4
2000::/3: Global Unicast (ohne Link-Local) - analog public addresses in IPv4
2001:db8::/32: reserved for documentation purpose
Multicast:
ff00::/8
ff01::2: Scope Interface, Interface-Adresse
ff02::1: Scope Link-local, All IPv6 nodes on the local link
ff02::2: Scope Link-local, All Routers
ff05::1: Scope Site-local, vom Relay Agent verwendet
ff05::2: Scope Site-local, All IPv6 routers across the network
ff05::1:3 Scope Site-local, Site-scoped, All DHCP servers
Site-local Multicast
IPv6 im Netz
Ist eine Netzwerkverbindung vorhanden, sendet IPv6 eine NS („Neighbor Solicitation Message“) an die generierte Solicited-Node Multicast Adresse, um zu prüfen, ob die Adresse bereits verwendet wird (DAD, „Duplicate Address Detection“). Erhält es eine NA („Neighbor Advertisment Message“), wird die Adresse bereits verwendet; die Wahrscheinlichkeit dafür ist aber äusserst gering.
IPv6 verzichtet aufgrund des riesigen Adressraums auf Broadcasts und verwendet Multicasts, um Netzwerkgeräte mit speziellen Eigenschaften zu ermitteln. Per Multicast
an
ff02::1
melden sich beispielsweise alle aktiven Rechner („All Nodes“),auf
ff02::1:ffxx:xxxx
antworten Solicited Nodes (Adresse einer Multicast-Gruppe: 104 Bits für die Gruppe, 24 Bits für die Unicast-Adresse),und Router antworten bei einem Multicast an
ff02::2
(„All Routers“).
Eine Anwendung kann beliebige (selbstdefinierte) Multicast-Gruppen abonnieren, um über weitere Netzteilnehmer benachrichtigt zu werden.
Für den Zugang ins Internet wird ein IPv6-fähiger Router benötigt. Entweder verteilt dieser die Zugangsinformationen (Gateway-Adresse, globales IPv6-Netzwerk-Präfix des Internet-Providers, IPv6-DNS) per ICMPv6 an „sein“ internes Netz, oder sie werden vom Client per „Router Solicitation“-Nachricht über ICMPv6 angefordert, die mit einem „Router Advertisment“ beantwortet wird. Mit den erhaltenen Informationen wird eine weitere IPv6-Adresse für den Zugang zum Internet generiert, die derzeit mit einer 2 beginnt. Aus fe80::250:56ff:febc:6930
wird damit zum Beispiel 2001:db8:1:1:250:56ff:febc:6930
. Zudem erhält der Rechner die benötigten Routen, die sich per ip -6 route list
einsehen lassen.
Aus Gründen der Sicherheit und zum Schutz der Privatsphäre ist die leicht rückverfolgbare automatische Adressvergabe um die „Privacy Extensions for Stateless Address Autoconfiguration“ erweitert worden, die die Adresse stärker „randomisiert“. Unter RHEL muss man das von Hand aktivieren (im Beispiel heisst das Netzwerk-Interface ens32
), anschliessend wird die Adresse darüber hinaus alle 24h erneuert:
net.ipv6.conf.ens32.use_tempaddr = 2
sysctl -p
Um die IPv6-Adresse zu einem Hostnamen zu ermitteln, hilft dig
:
dig -t AAAA www.example.com
IPv6 abschalten
Falls benötigt schaltet man IPv6 wie folgt ab. Im laufenden System:
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
Dauerhaft:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sysctl -p
Built on 2024-11-18