* Die Broadcast-Funktionalität wird über Multicast-Adressen implementiert.
* Die Broadcast-Funktionalität wird über Multicast-Adressen implementiert.
|}
|}
== Multicast ==
Netzwerk-Multicast ist eine Technik, bei der ein Knoten Pakete an mehrere Ziele gleichzeitig sendet (one-to-many)
* Bei den Zielen handelt es sich eigentlich um eine Reihe von Schnittstellen, die durch eine einzige Multicast-Adresse, die sogenannte Multicast-Gruppe, identifiziert werden
In IPv6 werden Multicast-Adressen von allen anderen Typen durch den Wert der äußersten linken 8 Bit der Adressen unterschieden: ein Wert von 11111111 (Hexadezimalziffern FF) bedeutet, dass es sich um eine Multicast-Adresse handelt
* Daher sind alle Multicast-Adressen Teil des Präfixes ff00::/8, was dem IPv4-Multicast-Adressraum 224.0.0.0/4 entspricht
; Regeln für Multicast
* Pakete, die an eine Multicast-Gruppe gesendet werden, haben immer eine Unicast-Quelladresse
* Eine Multicast-Adresse kann nicht die Quelladresse eines Pakets sein
; In IPv6 gibt es keine Broadcast-Adressen
* Stattdessen werden in IPv6 für diese Funktion spezielle Multicast-Gruppen verwendet - eine Multicast-Adresse für alle IPv6-Geräte und eine Multicast-Adresse für angefragte Knoten
=== Bekannte Multicast-Adressen ===
Bei IPv4 gibt es mehrere bekannte Multicast-Adressen im Bereich 224.0.0.0/24
* Bekannt bedeutet, dass diese Adressen vordefiniert
* für eine besondere Verwendung reserviert sind
In IPv6 beginnen alle bekannten Multicast-Adressen mit dem Präfix ff00::/12
* Das bedeutet, dass die ersten 3 Hexadezimalziffern einer Adresse immer ff0 sind
; Beispiele
{| class="wikitable sortable options big"
|-
! Adresse !! Funktion
|-
|| FF02::1
|| Alle Knoten Adresse
|-
|| FF02::2
|| Alle Router Adresse
|-
|| FF02::4
|| DVMRP-Router
|-
|| FF02::5
|| Alle OSPFv3-Router
|-
|| FF02::6
|| OSPFv3 Bezeichnete Router
|-
|| FF02::a
|| Alle EIGRP (IPv6)-Router
|-
|| FF02::D
|| Alle PIM-Router
|-
|| FF02::12
|| VRRP
|-
|| FF02::16
|| Alle MLDv2-fähigen Router
|}
=== Solicited-node Multicast Address ===
Eine Solicited-Node-Multicast-Adresse ist eine spezielle Art von IPv6-Multicast
* Sie wird als effizienterer Ansatz für die IPv4-Broadcast-Zustellung verwendet
* Eine Solicited-Node-Multicast-Adresse wird automatisch über einen IPv6-Unicast einer Schnittstelle generiert
Wenn eine Schnittstelle mit einer IPv6-Unicast-Adresse konfiguriert wird, wird automatisch eine Solicited-Node-Multicast-Adresse auf der Grundlage der Unicast-Adresse für diese Schnittstelle generiert, und der Knoten tritt der Multicast-Gruppe bei
* Daher hat jede Unicast-Adresse eine entsprechende Solicited-Node-Multicast-Adresse
* Diese automatisch generierte Multicast-Gruppe wird dann für die Adressauflösung, die Nachbarschaftserkennung und die Erkennung von Adressduplikaten verwendet
Eine Solicited-Node-Multicast-Adresse aus dem festen Präfix FF02::1:FF00:0/104 und den letzten 24 Bit der entsprechenden IPv6-Adresse
Wie wir bereits gelernt haben, gibt es in IPv6 keinen Broadcast
* Es gibt auch kein ARP
* Wenn ein Knoten die MAC-Adresse einer bekannten IPv6-Adresse auflösen muss, muss das Gerät dennoch eine Anfrage senden
* In diesem Anforderungspaket ist die IPv6-Zieladresse die Multicast-Adresse des angefragten Knotens, die der IPv6-Unicast-Zieladresse entspricht (als Referenz: bei IPv4-ARP ist die Zieladresse 0.0.0.0), und die MAC-Zieladresse ist die Multicast-MAC-Adresse, die der Multicast-Adresse entspricht
* Nur der Zielknoten "hört" auf diese Multicast-Adresse des angefragten Knotens
* Daher wird die Anfrage nur vom Zielknoten verarbeitet und nicht von allen an der Verbindung angeschlossenen Knoten, wie es bei Broadcasted ARP in IPv4 der Fall ist
IPv6 is enabled, link-local address is FE80::ABCD:1234
No Virtual link-local address(es):
Global unicast address(es):
2001::1234:ABCD, subnet is 2001::/64
Joined group address(es):
FF02::1
FF02::1:FF34:ABCD
FF02::1:FFCD:1234
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
</syntaxhighlight>
=== Multicast-Addressen ===
Multicast-Adressen werden für entsprechende Dienste verwendet
Sie beginnen immer mit (xx ist hierbei der Wert der Reichweite)
Die Adressen werden in Reichweiten und Typen unterteilt:
===== Multicast-Bereiche =====
Die Multicast Reichweite ist ein Parameter, mit dem die maximale Distanz angegeben werden kann, die ein Multicast Paket sich von der versendenden Einheit entfernen kann
Zurzeit sind folgende Regionen (reichweiten) definiert:
{| class="wikitable big options"
|-
! Bereich !! Beschreibung
|-
| ffx1 || Node-lokal, Pakete verlassen niemals den Knoten
|-
| ffx2 || Link-lokal, Pakete werden niemals von Routers weitergeleitet, der angegebene Link wird nie verlassen
|-
| ffx5 || Site-lokal, Pakete verlassen niemals den Standort (Site)
|-
| ffx8 || organisationsweit, Pakete verlassen niemals eine Organisation (nicht einfach zu implementieren, dies muss durch das Routing Protokoll abgedeckt werden)
|-
| ffxe || Globale Reichweite
|-
| ... || Sonstige sind reserviert
|}
===== Multicast-Typen =====
Es sind bereits viele Typen definiert bzw. reserviert (siehe <nowiki>RFC 4291</nowiki> / IP Version 6 Addressing Architecture für weitere Details), einige Beispiele:
* All Nodes Adresse: ID = 1h, alle Hosts am lokalen Node (ff01:0:0:0:0:0:0:1) oder am angeschlossenen Link (ff02:0:0:0:0:0:0:1) werden adressiert
* All Routers Adresse: ID = 2h, alle Router am lokalen Node (ff01:0:0:0:0:0:0:2), am angeschlossenen Link (ff02:0:0:0:0:0:0:2) oder am lokalen Standort werden adressiert
Diese spezielle Multicast Adresse wird als Zieladresse bei der Erkundung des Nahbereichs verwendet, da es ARP bei IPv6 im Gegensatz zu IPv4 nicht mehr gibt
Ein Beispiel für diese Adresse könnte sein:
Das benutzte Präfix zeigt, dass es sich um eine link-lokale Multicast Adresse handelt
* Dass Suffix wird aus der Zieladresse erstellt
* In diesem Beispiel soll ein Paket zur Adresse "fe80::1234" gesendet werden, aber die Netzwerk-Schicht hat keine Kenntnis der aktuellen Schicht 2 MAC Adresse
* Die oberen 104 bits werde mit "ff02:0:0:0:01:ff00::/104" ersetzt und die unteres 24 bits bleiben unverändert
* Diese Adresse wird nun "am Link" verwendet, um den entsprechenden Node zu finden, der wiederum seine Schicht 2 MAC Adresse als Antwort zurücksendet
=== Multicast-Adressen ===
; Multicast-Adressen sprechen eine Gruppe von Rechnern an
* Das ist zum Beispiel für Video on Demand oder Fernunterricht nützlich und spart Bandbreite, da es bereits auf der IP-Schicht ausgewertet wird und mehrfache Übertragung von Paketen verhindert
* Auch mehrere NTP-Server können einer Multicast-Gruppe angehören
; Multicast-Adressen beginnen alle mit der Bitfolge 1111 1111
* Darauf folgen dei Felder Flag und Scope
* Bisher ist allerdings nur das Flag T definiert, mit den Werten 1 für dauerhaft und 0 für temporär
; Einer-zu-vielen-Kommunikation wird durch Multicast-Adressen abgebildet
[[File:ipv6Adressierung24.png|800px]]
Typ: 0000
* fest definiert (ANA), 0001
* Adresse wurde "frei" vergeben
; Scope: Gültigkeitsbereich 0001 nur lokales Endgerät
{| class="wikitable big options"
|-
! Wert !! Scope
|-
| 0010 || Link lokal
|-
| 0101 || Site lokal
|-
| 1000 || Organisations-lokal
|-
| 1110 || Global
|}
; Regel
# FF02::1:FF00:0/104 zzgl. letzte 24 Bit der Unicast Adresse
# Link-Lokale MC Adresse des Endsystems (für Neighbor Discovery)
; Beispiele für Multicast-Adressen
FFO1::1 alle lokalen Interfaces FF02::1 alle Link-lokalen Interfaces
FF05::2 alle Site-Ilokalen Router FF0x::202 Sun RPC
[[File:ipv6Adressierung24.png|800px]]
; <nowiki>Präfix ff00::/8 (ff…)</nowiki>
stehen für Multicast-Adressen
; Nach dem Multicast-Präfix folgen
* 4 Bit für Flags
* 4 Bit für den Gültigkeitsbereich (Scope)
; Flags sind zurzeit in folgenden Kombinationen gültig
| 7 || R-Bit gesetzt, erzwingt P- und T-Bit || Multicast-Adressen, welche die Adresse des Rendezvous-Point enthalten (RFC 3956)
|}
===== Gültigkeitsbereiche =====
; Weitere Bereiche sind nicht zugewiesen
* Können von Administratoren benutzt werden, um weitere Multicast-Regionen zu definieren
{| class="wikitable big options"
|-
! Wert !! Scope !! Beschreibung
|-
| 1 || interfacelokal ||diese Pakete verlassen die Schnittstelle nie. (Loopback)
|-
| 2 || link-lokal || werden von Routern grundsätzlich nie weitergeleitet und können deshalb das Teilnetz nicht verlassen
|-
| 4 || adminlokal || der kleinste Bereich, dessen Abgrenzung in den Routern speziell administriert werden muss
|-
| 5 || sitelokal || dürfen zwar geroutet werden, jedoch nicht von Border-Routern
|-
| 8 || organisationslokal || die Pakete dürfen auch von Border-Routern weitergeleitet werden, bleiben jedoch "im Unternehmen" (hierzu müssen seitens des Routing-Protokolls entsprechende Vorkehrungen getroffen werden)
|-
| e || globaler Multicast || darf überallhin geroutet werden
|-
| 0, 3, f || reservierte Bereiche ||
|}
; Beispiele für wohlbekannte Multicast-Adressen
* ff01::1, ff02::1: All Nodes Adressen
* Entspricht dem Broadcast
* ff01::2, ff02::2, ff05::2: All Routers Adressen, adressiert alle Router in einem Bereich
== Anycast-Adressen ==
== Anycast-Adressen ==
Version vom 5. Juni 2025, 19:37 Uhr
IPv6/Adresse/Typen - Unterteilung des IPv6-Adressraums
Derzeit beginnen in der Internet-IPv6-Routing-Tabelle alle Präfixe mit der hexadezimalen Ziffer 2 oder 3, da die IANA nur Adressen vergibt, die mit den ersten 3 Bit 001 beginnen
Subnetzmasken
Teilen IP-Adressen in einen Netz- und einen Host-Teil
Lehren aus IPv4
Es wäre von Vorteil
Interfaces mit meherenen IP-Adresse
je nach Bedarf und Zweck (aliases, multicast und weitere)
Um in Zukunft flexibler bleiben zu können, geht man bei IPv6 weiter und erlaubt pro Interface mehr als eine zugewiesene IP-Adresse
Derzeit sind durch die RFCs kein Limit gesetzt, wohl aber in der Implementierung des IPv6 Stacks (um DoS Attacken vorzubeugen)
Neben der großen Bit-Anzahl für Adressen definiert IPv6 basierend auf einigen vorangestellten Bit verschiedene Adress-Typen
Diese werden hoffentlich in der Zukunft niemals aufgehoben (zum Unterschied zu IPv4 heute und die Entwicklung der class A, B und C Netze)
Zur Unterstützung einer automatischen Konfiguration wird die Bitanzahl in einen Netzwerk-Teil (vordere 64 Bits) und einen Hostteil (hintere 64 Bit)
Bei der Auto-Konfiguration wird der Hostteil der Adresse durch die Konvertierung der MAC-Adresse eines Interfaces (falls vorhanden) zu einer einmaligen IPv6 Adresse (mittels EUI-64 Methode) generiert
Falls keine MAC-Adresse verfügbar ist (beispielsweise bei virtuellen Interfaces), wird anstelle dessen etwas anderes herangezogen (wie beispielsweise die IPv4 Adresse oder die MAC-Adresse eines physikalischen Interfaces)
Als Beispiel hat hier ein NIC folgende MAC-Adresse (48 bit)
Diese wird gemäß demIEEE-Tutorial EUI-64 Design für EUI-48 Identifiers zum 64 bit Interface Identifier erweitert:
Mit einem gegebenen Präfix wird daraus die schon oben gezeigte IPv6-Adresse:
Datenschutzproblem
Datenschutzproblem mit automatisch erstellten Adressen sowie eine Lösung
Der "automatisch generierte" Hostteil ist weltweit einmalig
mit Ausnahme, wenn der Hersteller einer NIC die gleiche MAC-Adresse bei mehr als einer NIC einsetzt
Die Client-Verfolgung am Host wird dadurch möglich, solange kein Proxy verwendet wird
Dies ist ein bekanntes Problem und eine Lösung wurde dafür definiert
Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (es gibt bereits ein neueres Draft: draft-ietf-ipv6-privacy-addrs-v2-*)
Es wird sporadisch mittels eines statischen und eines Zufallswertes ein neues Suffix erstellt
Hinweis
Dies ist nur für ausgehende Client-Verbindungen sinnvoll und bei bekannten Servern nicht wirklich sinnvoll
Manuell festgelegte Adressen
Bei Servern ist es wahrscheinlich leichter, sich einfachere Adressen zu merken
Dies kann beispielsweise mit der Zuweisung einer zusätzlichen IPv6 Adresse an ein Interface geschehen
Für das manuelle Suffix, wie "::1" im obigen Beispiel, muss das siebte höchstwertige Bit auf 0 gesetzt sein (das universale/local Bit des automatisch generierten Identifiers)
Es sind auch noch andere (ansonsten nichtausgewählte) Bit-Kombinationen für Anycast-Adressen reserviert
Präfixlängen für das Routing
IPv6-Adressentypen
Eine IPv6-Adresse ist eine 128-Bit-Kennung der Netzwerkschicht für eine Netzwerkschnittstelle eines IPv6-fähigen Knotens
Eine Netzwerkschicht-Kennung für eine Reihe von Schnittstellen, die zu verschiedenen IPv6-fähigen Knoten gehören
Pakete, die an eine Anycast-Adresse gesendet werden, werden an die "nächstgelegene" Schnittstelle zugestellt, die durch diese Adresse identifiziert wird. "Am nächsten" bedeutet in der Regel diejenige mit der besten Routing-Metrik gemäß dem IPv6-Routing-Protokoll
Es handelt sich also um eine "one-to-closest"-Kommunikation
Broadcast - In IPv6 gibt es keine Broadcast-Adressen
Die Broadcast-Funktionalität wird über Multicast-Adressen implementiert.
Anycast-Adressen
Anycast Adressen
Verschiedene Endgeräte sind unter einer (Anycast-) Adresse erreichbar
Auslieferung des Paketes normalerweise an das Interface des Endgerätes, welches (Netztopologie) Routing-mäßig das nächstliegende ist
Unterscheidet sich nicht von normaler Unicast-Adresse 4 Anycast Funktionalität ist durch die Router und durch Konfiguration des Endgerätes zu realisieren
Derzeit nur für Router oder Server zulässig (Änderung jedoch absehbar)
Anwendungsbeispiele
Dienste unter global gleicher Adresse effizient verfügbar (Routing zum PoP)
Load Balancing
erhöhte Stabilität durch mehrere Router gleicher Adresse
Mobile IPv6 Home Agents Anycast (Anycast Id. 126 oder 7E)
Mit Anycast-Adressen erreicht man genau einen aus einer Gruppe von Rechnern
die die selbe Anycast-Adresse haben
Zum Beispiel einen aus einer Gruppe von Nameservern, oder von Routern bei einem Provider
Anycast Adressen sind spezielle Adressen und werden verwendet, um besondere Bereiche wie den nächstgelegenen DNS-Server, den nächstliegenden DHCP Server und vergleichbare dynamische Gruppen abzudecken
Die Adressen werden dem Pool des Unicast Adressraums (global-aggregierbar oder Site-lokal zurzeit) entnommen
Der Anycast-Mechanismus (client view) wird von dynamischen Routing-Protokollen gehandhabt
Hinweis: Anycast Adressen können nicht als Quelladresse verwendet werden, sondern ausschließlich als Zieladressen
Subnet-Router Anycast-Adresse
Die Subnet-Router Anycast Adresse ist ein einfaches Beispiel für eine Anycast Adresse
Angenommen, der Knoten hat folgende global zugewiesene IPv6 Adresse:
Die Subnet-Router Anycast Adresse wird durch komplette Streichung des Suffixes (die letzten gültigen 64 bits) erstellt:
Anycast
Eine Anycast-Adresse ist eine Kennung der Netzebene, die in der Regel mehr als einer Schnittstelle (einem Satz von Schnittstellen) zugewiesen wird, die zu verschiedenen IPv6-fähigen Knoten gehören
Pakete, die an eine Anycast-Adresse gesendet werden, werden an die "nächstgelegene" Schnittstelle zugestellt, die durch diese Adresse identifiziert wird
"Am nächsten" bedeutet in der Regel diejenige mit der besten Routing-Metrik gemäß dem IPv6-Routing-Protokoll
Anycast-Adressen werden aus dem Unicast-Adressraum zugewiesen, daher sind sie nicht von globalen Unicast-Adressen zu unterscheiden
Wenn dieselbe Unicast-Adresse für mehr als eine Schnittstelle konfiguriert wird, handelt es sich um eine Anycast-Adresse
Geräte, denen eine Anycast-Adresse zugewiesen wurde, müssen explizit so konfiguriert werden, dass sie erkennen, dass die Adresse für die Anycast-Kommunikation verwendet wird, wie im folgenden Konfigurationsbeispiel gezeigt