OpenWRT würfelt IPv6-Präfixe

Seite 2: Wanderzirkus

Inhaltsverzeichnis

Ein IPv6-tauglicher Rechner braucht für den Zugriff auf das Internet zwei Adressen, die das Protokoll jeweils für andere Zwecke einsetzt (Scopes): Bereits beim Start erzeugt er eine link-lokale, nur auf dem eigenen Netzwerksegment gültige Adresse, die er etwa für die Einrichtung global gültiger IPv6-Adressen braucht. Sind die oben genannten Privacy Extensions eingeschaltet, steht für jedes aktive, global gültige Netzwerkpräfix eine temporäre Adresse bereit, die regelmäßig verfällt. Laut RFC 3484 und RFC 3542 bevorzugen die Betriebssysteme temporäre Adressen als Quellenangabe, wenn Anwendungen ausgehende Verbindungen aufbauen.

Die aktuellen Gültigkeitszeiten verraten die eingebauten Netzwerktools: Unter Windows zeigt netsh interface ipv6 show addr Adressen und deren Verfallsdatum für alle Schnittstellen an, ...

... auf Linux ermittelt das Kommando ip addr show diese Werte. Fügt man beiden Befehlen einen Schnittstellennamen hinzu, grenzen die Kommandos die Ausgabe auf die angegebene Netzwerkkarte ein.

Dynamisch erzeugte Adressen verwirft das Betriebssystem nach einer gewissen Zeit: Dazu besitzt jede IPv6-Adresse zwei Zähler. In dem einen steht die maximale Gültigkeitsdauer der Adresse für eingehende Anfragen. Der andere enthält die Zeit, in der das Betriebssystem diese Adresse für neue, ausgehende Verbindungen nutzt. Wurde durch den IPv6-Router nichts anderes vorgegeben, akzeptiert Windows sieben Tage lang eingehende Verbindungen auf einer dynamischen Adresse (Gültigkeitsdauer), nach 24 Stunden (bevorzugte Gültigkeitsdauer) erzeugt es jedoch bereits eine neue dynamische Adresse für ausgehende Verbindungen. Ähnlich verhalten sich auch die IPv6-Stacks von Linux und Mac OS X.

Temporäre Adressen verursachen allerdings auch Probleme. Verwirft das Betriebssystem eine dynamische Adresse vollständig, unterbricht das auch laufende Verbindungen. Durch die im RFC 4862 vorgegebenen und in den Betriebssystemen voreingestellten langen Gültigkeitszeiten wirkt sich das allerdings nur auf sehr lang laufende Verbindungen wie SSH-Tunnel, Netzwerkfreigaben etwa über NFS oder auch Peer2Peer-Software aus.

Um dieses Problem zu minimieren, empfiehlt RFC 4862 daher sehr lange Gültigkeitszeiten für dynamische Adressen/Präfixe: Die Dauer, in der das Betriebssystem über die nicht mehr bevorzugte Adresse Daten weiterhin entgegen nimmt (deprecation period), muss lang genug sein, damit Anwendungen ausreichend Zeit haben, auf die neue Adresse respektive das neue Netzwerkpräfix wechseln zu können. Ein anderer Ausweg ist ein zusätzliches Präfix im eigenen Netz, über dessen Adressbereich solche lang andauernden Verbindungen laufen können – vorausgesetzt die jeweiligen Anwendungen lassen sich auf diesen Quelladressbereich einstellen.

Weil sich lange Lebenszeiten aus Gründen des Privatsphärenschutzes verbieten, könnte man versucht sein, sie so kurz wie möglich zu setzen – doch eine sehr kurze Adresslebensdauer unter zwei Stunden verursacht Probleme unter Linux. Wie auch andere Betriebssysteme mit eingeschalteter PE erzeugt es für jedes Präfix mindestens zwei Adressen. Überschreitet die Menge dieser temporären Adressen eine bestimmte Zahl (offenbar 16), schalten aktuelle Linuxe mit einer wenig aussagekräftigen Fehlermeldung (ipv6_create_tempaddr(): use_tempaddr is disabled.) die Privacy Extensions schlicht ab. Als Quelladresse verwendet Linux dann wieder die aus der Hardwareadresse abgeleitete, was das zusätzliche Verwirrspiel mit dem wechselnden Präfix entwertet.

Zudem erhöht sich mit einer kurzen Präfix-Lebensdauer zwar die Entropie in den Logdateien der besuchten Webserver, sie bringt hingegen kaum einen Vorteil gegenüber den im RFC 4862 genannten Werten oder den Betriebssystemvorgaben. Wendet man die oben genannten Werkseinstellungen auch für den wechselnden Präfix an, vermeidet man Verbindungsprobleme und verwirrt Tracking-Software täglich mit einem neuem Netzwerkpräfix.