IPv6

Es ist empfohlen, sich vorher mit dem IPv4, CIDR & Subnetting vertraut zu machen.

Aufbau

Grundaufbau

Je nach IP-Addresstyp kann der Aufbau etwas variieren. Der Grundaufbau einer 128-Bit IPv6 Adresse bleibt jedoch identisch:

127 - 64 63 - 0
Netz-ID Host-ID

Zur Veranschaulichung hilft hier auch die Unterteilung in die gewöhnlichsten Präfixlängen mittels CIDR Notation zu sehen:

ipv6-prefixlen Pearson Education, CIsco Press. IPv6 Address Representation and Address Types

IPv6 Header
OffsetsOctet0123
OctetBit012345678910111213141516171819202122232425262728293031
00VersionTraffic classFlow label
432Payload lengthNext headerHop limit
864Source address
1296
16128
20160
24192Destination address
28224
32256
36288

aus: IPv6 packet, Wikipedia the free encyclopedia, abg. am 14.12.2023

Eigenschaften & Schreibweise

  • Eine IPv6 Adresse ist 128-Bits groß
  • Man schreibt die Adresse in Hexadimalzahl aus und trennt jedes Wort[1] durch ein Doppelpunkt in Blöcke
  • Vorangehende Nullen pro Block können ignoriert werden
  • Maximal einmal können beliebige Anzahl an aufeinanderfolgende Null-Blöcke durch zwei Doppelpunkte ersetzt werden

Somit sind die beiden nachfolgenden IPv6 Adressen identisch:

  • 2a06:a005:4f0::1
  • 2A06:A005:04F0:0000:0000:0000:0000:0001

[1]: "Wort" bedeutet in diesem Kontext zwei 8-Bit Bytes. Also werden je 16-Bits durch ein Doppelpunkt getrennt

Spezielle Adressen

  • ::/128 nicht spezifierte Adresse, indiziert das Fehlen einer IPv6 Adresse. Auch für DAD genutzt.
  • ::/0 Default Route, Standard Route (ähnlich zu 0.0.0.0/0 bei IPv4)
  • ::1/128 Loopback-Adresse, vergleichbar mit 127.0.0.1/32 im IPv4

Adresstypen

Im IPv6 hat man verschiedene Arten von Adressen, die auch verschiedene Präfixe nutzen.

ipvt-types Pearson Education, Cisco Press. IPv6 Address Representation and Address Types

Die Link-Local Adresse ist eine Unicast Adresse zur Kommunikation innerhalb eines Subnetzes. Diese Adresse ist pro Link und Interface eindeutig, kann aber an einem anderen Link erneut verwendet werden. Sie liegt in der Regel imm Netzbereich FE80::/10, auch wenn die Nutzung eines anderen IPv6 Präfixes im RFC 4291 grundsätzlich gestattet ist. Jeder Host verfügt dabei stets über eine solche Adresse. DIes ist insbesondere dann praktisch, wenn noch keine öffentliche IPv6 Adresse zugewiesen wurde.

Aufbau

Präfix Füllbits Interface-ID
10 Bits 54 Bits 64 Bits
FE8 :: X

Konfiguration

DIe Link-Local Adresse wird vom Endgerät selber generiert. Etwaige Konflikte im Subnetz können mittels DAD (Duplicate Address Detection) ermittelt werden. Die Konfiguration kann so erfolgen:

  1. Autoconfig im EU64-Format: 24-Bit MAC-Herstellerkennung + FFFE + 24-Bit Gerätekennung
  2. Random Interface Identifier (Windows): Bei Systeminstallation wird ein RID gebildet
  3. Privacy Extension: RFC4941. Mit TTL versehen, also nur temporär

In der Regel wird das EU64-Format genutzt.

Global Unicast Adresse

Aufbau

Eine Global Unicast Adresse (GUA) bzw. öffentliche IPv6-Adresse ist in dem Netzbereich 2000::/3 und kann ebenfalls via DHCPv6, SLAAC oder durch statischer Zuweisung zugewiesen werden. Sie ist in etwa wie folgt aufgebaut

Präfix Registry-ID ISP-ID Site-ID Subnetz-ID Interface-ID (Host ID)
127 - 125 (3 Bits) 124 - 105 (20 Bits) 104 - 96 (9 Bits) 95 - 80 (16 Bits) 79 - 64 (16 Bits) 63 - 0 (64 Bits)
/3 /32 /48 /64 /128
001
  • Präfix: 1 für Global Unicast Adresse
  • Registry-ID: von IANA an RIRs wie RIPE zugewiesen (jeweils /12 oder größer)
  • ISP-ID: vom RIR an den ISP zugewiesen (bei RIPE /29 - /32, selten größer als /29)
  • Site-ID: vom ISP zugewiesener Identifikator für Organisation oder Standort
  • Subnet-ID: von der Organisation bzw. dem Standort verwaltete Identifikation von Subnetzen

"größer als /29" bedeutet hier "/28 oder größer". Man sollte in diesem Kontext nicht nach der Logik "32 > 29" denken, da aufgrund der Betrachtung des Netzbereiches "/29 > /32" gilt.

Die signifikanten 48 Bits nennt man auch "Global Routing Prefix". Dies liegt daran, dass ein /48 den kleinstmöglichen im öffentlichen Netz ankündigbaren Adressbereich bzw. IPv6-Präfix darstellt. Die Unterscheidung des Global Routing Prefix in Registry-ID, ISP-ID und Site-ID ist nicht überall so gegeben.

Zuweisung

Sie kann wie folgt generiert bzw. zugewiesen werden:

  • Stateful DHCP: Netz-ID & Host-ID werden via DHCPv6 zugewiesen
  • SLAAC: Netz-ID via DHCP, Host-ID via Autoconfiguration
  • Statische Zuweisung

Unique Local Adresse

Eine Unique Local Adresse (ULA) bzw. private IPv6 Adresse liegt in dem Bereich FC00::/7 und werden in einem privaten Netzwerk genutzt, dürfen also nicht in das öffentliche Netz geroutet werden. Sie ist im RFC 4193 definiert und wie folgt aufgebaut:

Präfix L-Flag Global-ID Subnet-ID Interface-ID
7 Bits 1 Bit 40 Bits 16 Bits 64 Bits
1111 110 x
  • L-Flag:
    • 0: wird in Zukunft definiert (FC00::/8)
    • 1: lokal zugewiesen (FD00::/8)
  • Global-ID: pseudorandom gewählt, um einen einzigartigen Präfix zu erzeugen
  • Subnet-ID: Identifikation einzelner SUbnets in der Organisation / im Standort

Da der einzige legitime Wert für das L-Flag einer zugewiesenen ULA eine 1 ist, kann eine gültige ULA nur im Bereich FD00::/8 liegen.

Zur Generierung der Global-ID sollte man am besten die selbe pseudorandom Methode verwenden, um die unique randomness der ID zu wahren. Außerdem kann die ULA Präfix auf https://www.sixxs.net/tools/grh/ula generiert und "registriert" werden, wodurch globale Konflikte unter allen SIXXS Nutzern gemieden wird.

Eigenschaften von ULA

  • Sie kann innerhalb des privaten Netzes genauso wie eine GUA verwendet werden
  • Kann für Endgeräte genutzt werden, die keinen Zugang ins oder vom globalen Internet benötigen
  • Kann zur Verbindung verschiedener Netzwerke oder Subnetze genutzt werden
  • Sie können auch ohne Internetanbindung unabhängig vom ISP konfiguriert werden

Multicast Adresse

Die Adressen im Bereich FF00::/12 werden als Well-Known Multicast Adressen bezeichnet, da diese entweder bereits für Geräte oder Gruppen vordefiniert oder reserviert sind. D.h. die 0RPT Flags sind dabei jeweils auf 0 gesetzt.

Eine Multicast Adresse wird zur gleichzeitigen Kommunikation mit einer Gruppe von Geräten verwendet. Sie ist also zwar kein Broadcast, kann aber als ein Broadcast innerhalb der gegebenen Gruppe verstanden werden. EIne Multicast Adresse ist stets im Adressbereich FF00::/8 und ist schematisch wie folgt aufgebaut:

Präfix Flags
(0RPT)
Scope Group-ID
127 - 121 (8 Bits) 120 - 117 (4 Bits) 116 - 112 (4 Bits) 111 - 0 (112 Bits)
FF
  • Präfix: Stets FF
  • Flags:
    • 0: stets 0
    • R: hat ein "rendevouz point" address?
    • P: Multicast auf Unicast basierend?
    • T: temporär/transient? (0 falls permanent)
  • Scope:
    • 0, 3, F: reserviert
    • 6, 7, 9 - D: nicht zugewiesen
    • 1: Interface Local
    • 2: Link Local
    • 4: Admin Local
    • 5: Site Local
    • 8: Org Local
    • E: GLobal
  • Group-ID:
    • 1: Alle IPv6 Nodes
    • 2: Alle IPv6 Router
    • 5: Alle OSPFv3 Router
    • A: Alle EIGRP (IPv6) Router
    • 101: Alle NTP Server
    • 114: Privates Experiment

Subnetting

Hat man einen Präfix größer als /64, kann man Subnetting betreiben. Für gewöhnlich nutzt man hierzu ein /48 Präfix, sodass man 16 Bits für eine Subnet-ID hat. Insbesondere in Business-Netzen ist es gewöhnlich, dass eine Organisation ein /48 Präfix erhält. Ggf. versorgt der ISP den Endkunden jedoch nur mit einem /64, bzw. wenn man Glück hat auf Anfrage auch ein /56 Präfix. Dies erschwert das Subnetting im Heimnetz.

Angenommen man sei eine Organisation, die ein /48 Präfix vom ISP erhalten hat. In dem Fall können 216 = 65.536 Subnetze mit je 264 Hosts definiert werden.

Beim Subnetting ist es sinnvoll, die Sinnmäßigkeit der gewählten Präfixlänge des Subnets zu betrachten. Dabei gilt:

  • /64 ist der kleinstmögliche Addressbereich. Ein /64 Subnet ist am besten dort aufzustellen, wo man davon ausgeht, dass eine Erweiterung des Subnets bzw. weitere Unterteilung in Sub-Subnets nicht erfolgen werden.
  • Je nach Adressverfügbarkeit kann bei einer Zuweisung eines /64 Subnets das übergeordnete /56 oder /60 Präfix reserviert werden, um eine zukünftige Erweiterung ohne Änderung der Host-Adressen zu ermöglichen.
  • Auch bei einer Point-to-Point Verbindung (z.B. via Tunneling) ist die Verwendung eines /64 Subnets statt /127 empfohlen [2]
  • In einem Organisations-Kontext ist eine Zuweisung eines /48 pro Standort gem. RIPE-Richtlinien erlaubt, sodass /48, /52, /56, /60 und /64 in Frage kommen
  • Es wird strengstens davon abgeraten, eine Präfixlänge kleiner als /56 an Endkunden zu vergeben, sodass der Endkunde mindestens noch 8 Bits für Subnetting haben sollte [3]

[2] vgl. Guidelines for Numbering IPv6 Point-to-Point Links and Easing the Addressing Plans, Internet Engineering Task Force (IETF)
[3] vgl. Best Current Operational Practice for Operators: IPv6 prefix assignment for end-users - persistent vs non-persistent, and what size to choose, RIPE NCC, sowie TR-177: IPv6 in the context of TR-101, Broadband Forum