IPv6: Erlernen einer MAC-Adresse - Solicited Node Multicast-Adresse

Bei der Kommunikation mit einem Ziel im gleichen Subnetz, wie es zum Beispiel zum Default Gateway hin der Fall ist, benötigt der Sender die Ziel-MAC-Adresse des Empfängers. Mit dieser Zieladresse kann ein Layer 2 Frame zusammengestellt werden und die Datenübertragung nimmt ihren Lauf.


Zu Zeiten von IPv4 war die Ermittlung der Ziel-MAC-Adresse mit dem dafür geschaffenen Address Resolution Protocol (ARP) kein großen Problem: Ein ARP-Request-Frame mit der Zieladresse „Broadcast”, also alle 48 Bits der MAC-Adresse waren auf „1”, ff:ff:ff:ff:ff:ff hexadezimal gesetzt, wurde von allen Endgeräten im selben Subnetz empfangen und bearbeitet.

Stand im Nutzanteil des ARP-Request die Ziel-IP-Adresse des angefragten Clients, so antwortete dieser in einem ARP Response mit seiner physikalischen MAC-Adresse und der Fragesteller konnte den Client im weiteren Verlauf direkt ansprechen.

Bei IPv6 sieht die Adressauflösung etwas anders aus:

  • 
Zum einen gibt es im IPv6 keine Broadcast-Adressen mehr und

  • die alternative Multicast-Adresse All Nodes ff00::1 wird zum anderen ebenso nicht verwendet.

Layer 3:

Statt dessen wird zu jeder IPv6-Adresse eine passende Solicited Node - Multicast-Adresse gebildet (RFC 4291):

Dazu werden einem vordefinierten 104 Bit-langem Präfix

FF02:0:0:0:0:1:FF

die letzten 24 Bit der zu erfragenden IPv6-Adresse angehängt.



Anbei noch einmal mit einem grafischen Beispiel:



Nun ist dem Sender die Layer 3 Multicast-Adresse der Ziel-IP-Adresse bekannt, aber der Sender kennt immer noch nicht die Layer 2 Ziel-MAC-Adresse.

Layer 2:


Der Weg von der 128 Bit Multicast-IPv6-Adresse hin zu einer 48 Bit Multicast-MAC-Adresse ist jedoch ebenfalls klar definiert (RFC 2464):

Die ersten 16 Bit der 48 Bit MAC-Adresse werden festgesetzt auf 33:33.

Für die letzten fehlendenden 32 Bit werden einfach die letzten vier Octets (32 Bits) von der IPv6-Multicast-Adresse übernommen.




Hier ist nun am Beispiel der IPv6 Hostadresse 2001:db8::a:1 zu erkennen, wie aus der zugehörigen Solicited Node Multicast-Adresse ff02::1:ff0a:1 die MAC-Adresse 33:33:ff:0a:00:01 gebildet wird.

Diese „solicited-node Multicast”-Adresse wird nun für erstmalige Kontaktaufnahme verwendet, um dann beispielsweise die reelle MAC-Adresse per „neighbor discovery protocol” zu erfragen.



Historie:


Die RFC 4291 legt fest, dass für jede Unicast- und Anycast-IPv6-Adresse eine Solicited Node-Multicast- Adresse gebildet wird. Lediglich die letzten 24 Bit der ursprünglichen IPV6-Adresse werden dazu wiederverwendet. 


Somit wird für verschiedene IPv6-Präfixe bei gleichbleibendem Hostanteil auch nur eine Solicited Node-Multicast-Adresse verwendet.

In den Anfangszeiten von IPv6 wurde der Clientanteil per EUI-64 gebildet, also die 48 Bit MAC-Adresse fand sich abgewandelt in der IPv6-Adresse als Hostanteil wieder. 


Damit war in der Praxis eine Solicited Node-Multicast-Adresse für alle Präfixe meist ausreichend.

Zusammenfassung:


Die link layer-MAC-Adresse des Gegenüber zu kennen ist zum Versenden von Datenpaketen unverändert notwendig.


Zum Erlangen dieser MAC-Adresse wird die zur Ziel-IPv6-Adresse zugehörige Solicited Node Multicast-Adresse und damit die wiederum dazugehörige Multicast-MAC-Adresse angesprochen.


Mit diesen beiden „gedanklichen Brücken” erhält das Zielgerät seine Anfrage, beispielsweise ein „neighbor solicitation” Datenpaket. Darauf kann der angefragt Client nun mit einem „solicited neighbor advertisement” antworten und im Anschluss kann die direkte Kommunikation ohne Umwege starten.



112 Ansichten

Kontakt:

© 2020 iternas GmbH

  • Facebook Social Icon
  • Twitter Social Icon
  • LinkedIn Social Icon

iternas GmbH

Wagenburgstraße 94

70186 Stuttgart

+49 711 219 5093-0

iternas GmbH

Pappelallee 78/79

10437 Berlin

+49 30 609 80024-0