IPv6/Adresse/Eigenschaften: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 48: Zeile 48:
|}
|}


=== Adressnotation ===
== Adressnotation ==
; [[Binär]]e Darstellung
; [[Binär]]e Darstellung
  0010 0000 0000 0001 0000 1101 1011 1000
  0010 0000 0000 0001 0000 1101 1011 1000

Version vom 11. Januar 2024, 14:15 Uhr

topic - Kurzbeschreibung

Beschreibung

Adressaufbau von IPv6

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2001:470:6d:b25:8ad:9fd5:a987:ae27/64 scope global dynamic noprefixroute
valid_lft 86281sec preferred_lft 14281sec
inet6 fe80::2aa1:d9b5:c8a6:bcbb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Eigenschaft Beschreibung
Länge 128 Bit
  • Präfix: Ersten 64 Bit
  • Suffix: Letzten 64 Bit (Interface-Identifier)

128 Bit sind in dezimaler Darstellung schlecht lesbar

  • Bevorzugt wird eine hexadezimale Darstellung
IPv6-Adressen sind wie in IPv4 Netzwerk-Interfaces zugewiesen Ein Interface hat in der Regel mehrere IPv6-Adressen
Scope IPv6-Adressen haben beschränkten Gültigkeitsbereich
  • Link-Local scope IP-Pakete werden nicht über Grenzen des Link geroutet
  • Site-Local scope IP-Pakete werden nicht über Grenzen der Einrichtung geroutet
  • Global scope IP-Pakete werden weltweit geroutet
lifetime IPv6-Adressen haben begrenzte Lebensdauer
  • valid lifetime
  • preferred lifetime
Unicast, Multicast und Anycast Spezifikation verschiedener Unicast, Multicast und Anycast Adressen
  • in IPv6 existiert keine Broadcast Adresse — wird durch Multicast nachgebildet
Mehreren IP-Adressen Netzwerkschnittstellen können unter mehreren IP-Adressen erreichbar sein
  • link-lokalen Adresse
  • global eindeutigen Adressen
Interface-Identifier Ein Interface-Identifier kann damit Teil mehrerer IPv6-Adressen sein
  • welche mit verschiedenen Präfixen auf dieselbe Netzwerkkarte gebunden sind
  • Insbesondere gilt dies auch für Präfixe möglicherweise verschiedener Provider
    • vereinfacht Multihoming

Adressnotation

Binäre Darstellung
0010 0000 0000 0001 0000 1101 1011 1000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0001
Hexadezimale Darstellung
2001:0DB8:0000:0000:0000:0000:0000:0001

Notation von IPv6-Adressen

RFC 4291
Hexadezimale Notation

Acht Blöcke je 4 Nibble

  • Mit Doppelpunkten getrennt
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
Führende Nullen dürfen ausgelassen werden
2001:0db8:0000:08d3:0000:8a2e:0070:7344

ist gleichbedeutend mit

2001:db8:0:8d3:0:8a2e:70:7344
Aufeinander folgende 0-Blöcke werden durch :: ersetzt
2001:0db8:0:0:0:0:1428:57ab

ist gleichbedeutend mit

2001:db8::1428:57ab
Adressnotation
Einbettung eines IPv4-Adressraums in den IPv6-Adressraum

Die letzten vier Byte können dezimal notiert werden

 ::ffff:127.0.0.1

ist eine alternative Schreibweise für

::ffff:7f00:1
Reduktion durch Regel 3 darf nur einmal durchgeführt werden
  • Es darf höchstens eine zusammenhängende Gruppe aus Null-Blöcken in der Adresse ersetzt werden.
2001
0db8:0:0:8d3:0:0:0

darf gekürzt werden zu

2001:db8:0:0:8d3::

oder

2001:db8::8d3:0:0:0
Wegen Mehrdeutigkeit Unzulässig
2001:db8::8d3::

könne als

2001:db8:0:0:0:8d3:0:0

interpretiert werden

Es empfiehlt sich, den Block mit den meisten Null-Blöcken zu kürzen.

Notation für und zwischen Menschen

Zulässige Schreibweisen nach RFC 4291
2001:db8:0:0:1:0:0:1
2001:0db8:0000:0000:1:00:0:1
2001:db8::1:0:0:1
2001:db8::0:1:0:0:1
2001:0db8::0:1:0:0:1
2001:db8:0:0:1::1
2001:db8:0000:0:1::1
2001:DB8:0:0:1::1
2001:DB8:0:0:1::1
RFC 5952
Verbindliche Regeln zur Notation

Notation und Darstellung für und zwischen Menschen

Führende Nullen müssen weggelassen werden

✗ 2001:0db8:00::001 → 2001:db8::001
✓ 2001:0db8:00::001 → 2001:db8::1

Zwei Doppelpunkte müssen die größtmögliche Anzahl von Null-Blöcken kürzen

✗ 2001:db8:0:0:0:0:0:1 → 2001:db8::0:1
✓ 2001:db8:0:0:0:0:0:1 → 2001:db8::1

Zwei Doppelpunkte dürfen nicht zur Kürzung eines alleinstehenden Null-Blocks benutzt werden

✗ 2001:db8:0:1:1:1:1:1 → 2001:db8::1:1:1:1:1
✓ 2001:db8:0:1:1:1:1:1 → 2001:db8:0:1:1:1:1:1

Bei gleichwertigen Möglichkeiten zur Kürzung ist die erste von links zu wählen

✗ 2001:db8:0:0:1:0:0:1 → 2001:db8:0:0:1::1
✓ 2001:db8:0:0:1:0:0:1 → 2001:db8::1:0:0:1

Alphabetische Zeichen werden klein geschrieben

✗ 2001:DB8::1
✓ 2001:db8::1

Bei der Angabe von Port-Nummern wird die Adresse in eckige Klammern geschrieben

✗ 2001:db8::1:80
✓ [2001:db8::1]:80


URL-Notation

In einer URL wird die IPv6-Adresse in eckige Klammern eingeschlossen

http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/

Verhindert die Interpretation von Portnummern als Teil der IPv6-Adresse

http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:8080/
Netznotation

IPv6-Netzwerke werden in der CIDR-Notation aufgeschrieben

  • Dazu werden die erste Adresse (bzw. die Netzadresse) und die Länge des Präfixes in Bit getrennt durch einen Schrägstrich notiert.

Zum Beispiel steht

2001:0db8:1234::/48

für das Netzwerk mit den Adressen

2001:0db8:1234:0000:0000:0000:0000:0000
bis
2001:0db8:1234:ffff:ffff:ffff:ffff:ffff
Größe eines IPv6-Netzwerkes
  • (oder Subnetzwerkes) im Sinne der Anzahl der vergebbaren Adressen in diesem Netz muss eine Zweierpotenz sein
Ein einzelner Host
  • Da ein einzelner Host auch als Netzwerk mit einem 128 Bit langen Präfix betrachtet werden kann, werden Host-Adressen manchmal mit einem angehängten „/128“ geschrieben.

Wie sehen IPv6 Adressen aus?

Wie gesagt, IPv6 Adressen sind 128 bit lang.

Diese bit-Anzahl kann sehr hohe dezimale Zahlen mit bis zu 39 Ziffern ergeben:

Solche Zahlen sind nicht wirklich Adressen, die auswendig gelernt werden können.

  • Die IPv6 Adressdarstellung ist bitweise orientiert (wie bei IPv4, aber das wird nicht oft bedacht).
  • Eine bessere Schreibweise ist deshalb die hexadezimale Darstellung.
  • Dabei werden 4 bits (auch ”nibble” genannt) durch die Zeichen 0-9 und a-f (10-15) dargestellt, wodurch die Länge auf 32 Zeichen reduziert wird.

Diese Darstellung ist ebenfalls nicht sehr angenehm (mögliche Verwechslung oder Verlust einzelner hexadezimaler Ziffern), so dass die IPv6 Designer das hexadezimales Format mit einem Doppelpunkt als Trennzeichen nach jedem 16 bit Block erweiterten.

  • Ferner wird das führende ”0x” (ein in Programmiersprachen verwendetes Identifizierungsmerkmal für hexadezimale Werte) entfernt:

Eine gültige Adresse (s.. u. * Adress-Typen) ist z.B.:

Der Vereinfachung halber können führende Nullen jedes 16 bit-Blocks weggelassen werden:

Eine Sequenz von 16 bit-Blöcken, die nur Nullen enthaltet, kann durch ein “::“ ersetzt werden.

  • Diese Komprimierung kann aber nicht öfters als einmal durchgeführt werden

Die höchstmögliche Reduktion sieht man bei der IPv6 Localhost Adresse:

Es gibt auch eine so genannte kompakte Darstellung (base 85 codiert) RFC 1924 / A Compact Representation of IPv6 Addresses (publiziert am 1. April 1996).

  • Diese Notation wurde allerdings nie in der Praxis gesehen und ist wahrscheinlich ein Aprilscherz.
  • Ein Beispiel:
Info
ipv6calc ist ein IPv6 Adressen-Format-Umrechner und Konvertierungsprogramm und ist hier zu finden:
ipv6calc

Zu unterstützende Adressen

IPv6 Adressen, die IPv6 Geräte mindestens unterstützen müssen
Device Adressen
Host
  • Unicast Adresse
  • Multicast Adressen (aus Unicast errechnete, Gruppenadressen)
  • Loopback Adresse
  • Link lokale (errechnete) Adresse
Router
  • alle Host Adressen
  • alle Router Anycast
  • alle Router Multicast Adressen
  • berechneten Multicast Adressen für jede Anycast Adresse


Anhang

Siehe auch

Dokumentation
Links
Projekt
Weblinks