IPv6/Privacy Extensions

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

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, öffentlich geroutete, Adresse erhält. NAT findet nicht statt. Die meisten Privatkunden-ISPs teilen ihren Kunden in regelmäßigen Abständen ein neues Präfix zu, sodass sich die vorderen 64 Bit ändern. Die hinteren 64 Bit wurden in der Vergangenheit standardmäßig anhand der MAC-Adresse festgelegt, welche eine Eigenschaft der Netzwerkkarte ist und daher gleich bleibt (modified EUI-64). Dadurch wäre eine Rechner trotz geändertem Präfix identifizierbar. Die „IPv6 Privacy Extensions“ (RFC 4941 🇬🇧) sollen hier Abhilfe schaffen, indem der Interface-Identifier zufällig generiert wird.

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. Dies kann man anhand von valid_lft und preferred_lft erkennen.

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

Konfiguration

Achtung!

Dieser Abschnitt beschreibt die Konfiguration über Kernel-Variablen, welche vom NetworkManager im Normalfall überschrieben werden. Ist der NetworkManager für die Verbindung aktiv, sind die Privacy Extensions standardmäßig aktiviert und über diesen zu konfigurieren.

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.