IPv6/Privacy Extensions

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. mit Root-Rechten arbeiten

  2. Einen Editor öffnen

Inhaltsverzeichnis
  1. Funktionsweise
  2. Konfiguration
    1. Optionen
  3. Beispiel
  4. Links

Die große Anzahl an nutzbaren Adressen unter IPv6 ermöglichen es, dass jedes Gerät eine eigene Adresse erhält, die es über seine gesamte Lebensdauer hinweg behalten kann. Dazu kommt noch der Umstand, dass für den Interface Identifier, den hinteren Teil der Adresse, die MAC der Netzwerkkarte herangezogen wird. Somit findet sich eine Eigenschaft der Hardware in der Adresse wieder, wodurch das zugehörige Interface über seine IP-Adresse eindeutig identifizierbar wird. Die „IPv6 Privacy Extensions“ (RFC 4941 🇬🇧) sollen hier Abhilfe schaffen.

Funktionsweise

Sind die Privacy Extensions aktiviert, so erzeugen sie zu den bereits existierenden IP-Adressen eine weitere Adresse je Präfix und Netzwerkschnittstelle. Diese zusätzliche Adresse wird zufällig erzeugt hat nur eine bestimmte Lebensdauer, während derer sie für die Kommunikation genutzt wird. Läuft die Lebenszeit ab, so wird wieder eine neue Adresse generiert und für die Kommunikation genutzt während die bisherige noch eine Zeit aktiv bleibt, um eventuell noch eingehende Netzwerkpakete empfangen zu können.

Somit existiert die auf Basis der MAC-Adresse generierte IP-Adresse zwar weiter, kommt jedoch letztlich nicht zum Einsatz.

Konfiguration

Beginnend mit Ubuntu 12.04 LTS sind die Privacy Extensions von Haus aus aktiviert. Die entsprechende Konfigurationsdatei ist /etc/sysctl.d/10-ipv6-privacy.conf.

In der Standardkonfiguration beträgt die maximale Lebensdauer einer IP-Adresse 7200 Sekunden (2 Stunden), die Dauer, während der sie aktiv genutzt bevorzugt wird, 3600 Sekunden (1 Stunde). Möchte man die Lebensdauer der temporären Adressen ändern, so kann man die entsprechenden Optionen (siehe unten) ebenfalls in dieser Datei ablegen.

Wurde die Datei erstellt, muss man noch dafür sorgen, dass die neue Konfiguration auch aktiviert wird. Dies kann mittels eines Neustarts geschehen, eleganter ist es jedoch, die Konfiguration mit folgendem Befehl neu einzulesen:

sudo sysctl -p /etc/sysctl.d/10-ipv6-privacy.conf 

Optionen

Die Einstellmöglichkeiten der Privacy Extensions sind recht übersichtlich.

Option Beschreibung
net.ipv6.conf.all.use_tempaddr 0 = Privacy Extensions nicht aktiv
1 = temporäre Adresse bereitstellen
2 = temporäre Adresse bereitstellen und aktiv nutzen
net.ipv6.conf.all.temp_prefered_lft Dauer in Sekunden, wie lange die Adresse anderen vorgezogen wird
net.ipv6.conf.all.temp_valid_lft Dauer in Sekunden, wie lange die Adresse vorhanden ist

all wurde als Bezeichner für die Netzwerkschnittstelle in diesen Beispielen eingesetzt, es sind die folgenden Varianten möglich:

Werden vom Standard abweichende Konfigurationen gesetzt, so wird empfohlen jede Option jeweils mit default und all einzufügen.

Beispiel

Die vorhanden IPv6-Adressen lassen sich mit folgendem Befehl prüfen:

ip -6 addr 

Die Ausgabe für ein Interface könnte dann beispielsweise so aussehen:

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8:ff00:8cb0:a1b5:b96d:3d80:f9d3/64 scope global temporary deprecated dynamic 
       valid_lft 257sec preferred_lft 0sec
    inet6 2001:db8:ff00:8cb0:221:beff:feef:dead/64 scope global dynamic 
       valid_lft 6859sec preferred_lft 3259sec
    inet6 fe80::221:beff:feef:dead/64 scope link 
       valid_lft forever preferred_lft forever

Überprüft man nun, mit welcher Adressse man im Internet auftaucht, zum Beispiel mit der Seite test-ipv6.com 🇬🇧, dann sollte in diesem Beispiel 2001:db8:ff00:8cb0:221:beff:feef:dead herauskommen. In der Regel nutzt Ubuntu jedoch die temporäre Adresse, so sie denn noch nicht abgelaufen ist.