IPv6/Host/Interface Identifier

Aus Foxwiki

topic - Kurzbeschreibung

Beschreibung

Interface Identifier

Die Nodes am Link internal haben sich ihre Link-local Addresses selbst gegeben. Dabei hat jeder Node eine eigene Adresse erhalten, ohne das eine Adresse doppelt vorkam. Bisher haben wir das als gegeben hingenommen oh95

4 Die Hosts Abbildung 4.9 Ablauf einer typischen Adressauflösung

Abbildung 4.10 Link-local Address (ungekürzt)

64 Bit

64 Bit

fe80:0000:0000:0000:0020:00ff:fe60:0d1e /64 Präfix

Interface Identifier

ne das Prinzip dahinter zu kennen. Das werden wir jetzt ändern. Interface Identifier

Abbildung 4.10 zeigt eine Link-local Address mit einer Präfixlänge von 64 Bits. Die hinteren 64 Bits sind nicht durch das Präfix vorgegeben und stehen den Interfaces am Link zur Adressierung zur Verfügung. Sie werden deshalb Interface Identifier genannt. Das A und O in IP-Netzen ist die Eindeutigkeit der Adressen innerhalb ihres Scopes.2 Unter IPv4 haben wir entweder den dezimalen Hostanteil der Adresse mit jedem neuen Node inkrementiert oder die Aufgabe gleich ganz einem DHCP-Server übertragen. Von Tippfehlern oder mutwilligen Störungen abgesehen, war damit die Eindeutigkeit der Adressen gewährleistet. IPv6 nimmt uns das Adressieren des einzelnen Nodes aber ab. Darum muss es auch für die Eindeutigkeit der Adressen Sorge tragen.

An dieser Stelle sprechen wir von Unicast Addresses. Für einen Moment ignorieren wie die Tatsache, dass daneben noch Multicast und Anycast Addresses existieren.

4.4 Interface Identifier

00000000b

00:00:00:60:0d:1e

Link-Layer Address (MAC)

00000010b fe80::0200:00ff:fe60:0d:1e

Link-Local Address

Was also liegt näher, als die Link-layer Address des zugehörigen Interfaces als Quelle für einen eindeutigen Interface Identifier herzunehmen? Benutzt das Interface schon einen Extended Unique Identifier mit einer Länge von 64 Bits, dann kann dieser ohne Umwege übernommen werden.3 Auf dem klassischen Ethernet sind die Link-layer Addresses aber nur 48 Bits lang.

Abbildung 4.11 Bildung der Linklocal Address von linux

Von der Mac-Adresse zum EUI-64

Schauen wir doch bei linux nach, wie sein IPv6-Stack das Problem gelöst hat. Als erstes ein Blick auf die Link-layer Address:

user@linux :~ $ ip link show dev eth
2: eth : < BROADCAST , MULTICAST ,UP , LOWER_UP > mtu 15
'
qdisc pfifo_fast state UP qlen 1
link / ether
: : :6 : d :1 e brd ff : ff : ff : ff : ff : ff

Danach die Link-local Address des Interfaces:

user@linux :~ $ ip addr show dev eth
2: eth : < BROADCAST , MULTICAST ,UP , LOWER_UP > mtu 15
'
qdisc pfifo_fast state UP qlen 1
link / ether
: : :6 : d :1 e brd ff : ff : ff : ff : ff : ff
inet6 fe8 ::2 : ff : fe6 : d1e /64 scope link
valid_lft forever preferred_lft forever

Offensichtlich wurde die Link-layer Address in den Interface Identifier aufgenommen. Der Stack hat das zweit-niederwertigste Bit im ersten Byte der Link-layer Address gekippt. In der Mitte der Link-layer Address wurden darüberhinaus die hexadezimale Zeichenfolge ff:fe eingefügt. Auf diese Weise ist ein sogenannter Modified EUI-64 entstanden. In Abbildung 4.11 ist der Vorgang graphisch dargestellt.

64-Bit Extended Unique Identifier haben, ebenso wie 48-Bit Extended Unique Identifier (auch bekannt als MAC-Adressen), die Aufgabe, auf dem Link-layer teilnehmende Geräte zu adressieren. Um einer Knappheit an EUI-48 frühzeitig vorzubeugen, hat die IEEE die EUI-64 definiert.

4 Die Hosts Bitspielereien

Das gekippte Bit verwirrt im ersten Augenblick. Die Erklärung liegt in der Bedeutung des betroffenen Bits verborgen, dessen Name Universal/Local Bit lautet. Es zeigt an, ob die MACAdresse vom Hersteller vergeben wurde (Wert 0), oder ob sie lokal überschrieben wurde (Wert 1). Die Werte 0 und 1 des Universal/Local Bit sind bei einem Modified EUI-64 von umgekehrter Bedeutung, deswegen verlangt der IPv6-Standard das Kippen desselben.

Privacy Extensions

Der so generierte Interface Identifier findet sich nicht nur in Link-local Addresses, sondern auch in Global Unicast Addresses wieder. Die Link-layer Adress eines Nodes, dessen IPv6Adresse einen solchen Interface Identifier enthält, kann zurückgerechnet werden. Das beeinträchtigt natürlich die Privatsphäre der betroffenen Nutzer. Erstens können Kommunikationspartner einen Node wiedererkennen, selbst wenn er zwischenzeitlich das Präfix gewechselt haben sollte, denn der Interface Identifier ändert sich bei einem Präfixwechsel nicht. Zweitens lässt sich vom Interface Identifier auf den Hersteller des verwendeten Interfaces schließen. Damit ist einem umfangreichen Tracking und Profiling von Nutzern Tür und Tor geöffnet. Das Problem wurde schließlich mit der Einführung der Privacy Extensions gelöst. Das sind Adressen, die keine Rückschlüsse mehr auf die Link-layer Address des Interfaces zulassen. Windows 8 geht sogar so weit, und setzt die Privacy Extensions auch bei den Link-local Addresses ein. Das werden wir uns auf felis ansehen:

Q

C :\ Users \ user > ipconfig
Ethernet adapter LAN1 :
Link - local IPv6 Address . . . . . : '
fe8 :: e8a4 :145 b :625 c: e6a1 %12

Ein Muster ist nicht zu erkennen, und auch das markante ff:fe fehlt. Diese Adresse folgt keinem bestimmten Muster! Es handelt sich um eine zufällige Folge hexadezimaler Zeichen. In regelmäßigen Abständen wird eine neue, zufällige Adresse generiert und die alte verworfen. Die Standardeinstellung vieler

4.5 Multicast Betriebssysteme dafür ist 24 Stunden. Ein Tracking des Nutzers ist so, zumindest auf IP-Schicht, nicht über 24 Stunden hinweg möglich. Die zufällig generierten Adressen kann man Windows 8 mit netsh abgewöhnen. Für die Änderung dieser Einstellung verlangt Windows 8 Administratorrechte, darum führen wir das folgende Kommando als Administrator aus. Dazu betätigen wir die Tastenkombination Windowstaste+X. Es erscheint ein Menü in dem wir den Punkt Command Prompt (Admin) auswählen:

C :\ Users \ user > netsh interface ipv6 set global '
randomizeidentifiers = disabled
Ok .

Von der Wirkung können wir uns sofort überzeugen.

Q Q

C :\ Users \ user > ipconfig / all
Ethernet adapter LAN1 :
Physical Address . . . . . . . . . :
Link - local IPv6 Address . . . . . : '
fe8 ::2 : ff : fe f : e715 %12( Preferred )
-
- F -E7 -15

Diesmal wurde die Adresse mit Hilfe eines Modified EUI-64 erzeugt. Wenn Sie möchten, können Sie die Privacy Extensions jetzt wieder einschalten:

C :\ Users \ user > netsh interface ipv6 set global '
randomizeidentifiers = enabled
Ok .


Anhang

Siehe auch

Links

Weblinks