Zusammenfassung

  • RFC 9844 verlangt von einer UI für nicht-globale IPv6-Adressen, dass sie Link-Local oder Scoped Multicast zusammen mit einem Zone Identifier annimmt, meist einem vom Betriebssystem definierten Schnittstellennamen.
  • Der lesbare Wert wird für Socket-Aufrufe in einen hostspezifischen numerischen Interface Index übersetzt. Lokal ist er notwendig, auf anderen Knoten bedeutungslos und auf dem Übertragungsweg unzulässig.
  • Ein belastbarer Beleg hält Eingabe, Prüfung, Auflösung, Schnittstellen-Lebenszyklus und Ergebnis im Knoten fest und weist getrennt nach, dass kein lokales Label im Paket erschien.

Die Adresse war gültig. Die Maschine wusste dennoch nicht, über welchen Link sie handeln sollte.

Auf einem Host mit zwei aktiven Interfaces kann derselbe Link-Local-Text in zwei lokalen Zonen vorkommen. Eine Maske, die nur die Adresse annimmt, entfernt die Pfadentscheidung. Ein Interface-Name vervollständigt sie. Wird die kombinierte Zeichenfolge anschließend als globaler Endpoint gespeichert, entsteht der spiegelbildliche Fehler: Derselbe Name kann auf einem anderen Host eine andere Verbindung bezeichnen.

RFC 9844 zieht diese Grenze. Datensatz, Textfassung und XML-Quelle dokumentieren einen Standards-Track-RFC vom August 2025. Er ersetzt RFC 6874 und aktualisiert RFC 4007, 7622 und 8089. Der Status belegt eine öffentlich geprüfte Mindestanforderung, nicht die Unterstützung eines Produkts oder die richtige Auswahl eines Geräts.

Die Adresse enthält noch keine lokale Ausgangsentscheidung

RFC 4291 definiert die IPv6-Adressarchitektur, RFC 5952 empfiehlt ihre Textdarstellung. Link-Local ist absichtlich begrenzt. Gehört ein Knoten mehreren Zonen desselben Scopes an, entscheiden die Adressbits nicht, welches Interface gemeint ist.

RFC 4007 qualifiziert den internen Gebrauch durch einen Zone Index. Für Menschen erscheint er häufig als Zone Identifier, also Interface-Name oder Dezimalzahl. Ein Suffix wie %eth0 erweitert keinen IPv6 Header. Es ist eine Anweisung an den lokalen Interface-Bestand.

Diese Auswahl ist Kontrolle. Ping, Konfiguration, Capture oder Management-Operation können bei korrekter Syntax den falschen Link treffen. Umgekehrt kann eine UI ohne Zone-Feld ein nur per Link-Local erreichbares Gerät unbedienbar machen. RFC 9844 nennt Diagnose, Konfiguration, Monitoring, virtuelle Drucker und maritime Netze. RFC 6991 liefert den YANG-Bezug; RFC 8925 beschreibt IPv6-mostly-Umgebungen, in denen IPv4 kein verlässlicher Ausweg mehr ist.

Copy-and-paste senkt Eingabefehler bei langen Literalen. Es kopiert aber die Zeichenfolge, nicht die Interface-Tabelle, aus der ihre Bedeutung stammt.

Der eigentliche Vertrag ist die Auflösung

RFC 9844 fordert die gemeinsame Angabe von nicht-globaler Adresse und Zone. Bevorzugt wird das vollständige Format nach RFC 4007; zulässig sind alternativ ein anderes Trennzeichen, zwei Felder, eine Liste aktiver Zonen oder ein eigener CLI-Parameter. Unabhängig von der Darstellung bleiben Adresse und Zone getrennt prüfbare Eingaben bis zur Übersetzung in den numerischen Index.

inet_pton() kann fe80::1%eth0 nicht direkt umwandeln. Eine Anwendung kann getaddrinfo() nutzen oder die Werte trennen und inet_pton() mit if_nametoindex() kombinieren. RFC 3493 enthält sin6_scope_id in der IPv6-Socket-Struktur, überlässt die Interface-Zuordnung jedoch der Implementierung.

„Maske akzeptiert“ ist kein Betriebsbeleg. Erforderlich sind exakte Eingabe, Parser- und Policy-Version, Längen- und Zeichenprüfung, aufgelöster Index, gegenwärtige Interface-Identität, Scoped Destination, Ergebnis des Socket-Aufbaus und beobachtetes Resultat. Verschwindet das Interface zwischen Anzeige und Benutzung, muss der Race sichtbar scheitern; eine alte Freigabe darf nicht still an ein neues Objekt wandern.

Running Code trennt mindestens vier Aussagen: Text angenommen, Interface aufgelöst, Paket gesendet, erwartetes Gerät hat geantwortet. Ein einziges grünes Symbol verschleiert diese Beweisschritte.

Das lokale Label endet an seiner Zuständigkeitsgrenze

RFC 9844 formuliert die Sicherheitsregel klar: Zone Identifier haben nur lokale Bedeutung und dürfen nicht auf den Übertragungsweg gelangen. Software, die den Wert aus einer UI erhält, soll ihn nicht weiterleiten. RFC 4007 warnt zusätzlich vor nicht-globalen Adresstexten, die als Daten von außen eintreffen. Ein entfernter Knoten ist nicht befugt, die lokale Zone des Empfängers zu benennen.

Strippen bedeutet nicht, den Audit Trail zu löschen. Innerhalb des Hosts erklärt das Name-Index-Paar den Pfad. An der Netzgrenze verliert das Label seine Geltung. Das Paket trägt die Scoped Address, nicht die Namenskonvention des Hosts. Zeigt ein Sniffer eine lokale Annotation, muss der Beleg sie von tatsächlich übertragenen Bytes unterscheiden.

Damit fällt auch falsche Reproduzierbarkeit auf. eth0 auf mehrere Maschinen zu verteilen kopiert weder Verkabelung noch Network Namespace. Namen können wiederverwendet, Indizes nach Reboot recycelt werden. Historische Daten brauchen Host, Zeit und Lifecycle-Kontext und dürfen dennoch nur behaupten, wie dieser Host damals auflöste.

Offene Syntax ist kein Freibrief

RFC 4007 setzt keine universelle Höchstlänge und keinen Zeichensatz. RFC 9844 empfiehlt einen passenden Grenzwert, meist das Interface-Name-Limit des Betriebssystems, sowie umgebungsspezifische Zeichenprüfungen. ASCII NUL ist abzulehnen, weil spätere Verarbeitung sonst unterschiedliche String-Enden sehen kann.

Weitere Risiken sind doppelte Dekodierung, Normalisierung, Shell-Metazeichen, abweichende Log-Darstellung und eine zwischen Anzeige und Nutzung veraltete Interface-Liste. Eine globale Regex kann diese Verträge nicht vereinheitlichen. Der sichere Pfad hält die Eingabe exakt fest, validiert für Zielsystem und Aufruf, löst nahe am Gebrauch auf und speichert Darstellung und Resultat.

Der Browser-URI-Weg wurde geschlossen

RFC 6874 versuchte, Zonen in IPv6-Literale von URIs einzubauen. Sein Status lautet heute obsolet. RFC 9844 berichtet, dass Browser-Implementierer den Ansatz als unpraktikabel einstuften, nimmt die Änderung an RFC 3986 zurück und ersetzt sie durch eine allgemeine UI-Anforderung. Auch RFC 7622 und RFC 8089 verlieren die entsprechenden Verweise.

Die Korrektur zeigt Standardisierung ohne Machtanspruch: Implementierungsrealität kann verlangen, eine Regel auf diejenige Schicht zurückzunehmen, die lokale Semantik tatsächlich besitzt. RFC 9844 löst ausdrücklich nicht das HTTP-Origin-Modell aus RFC 6454; seine normativen Aussagen gelten nicht für vom Browser geladene URIs.

Anwesenheit und Verschwinden gemeinsam testen

Ein Testaufbau bietet zwei aktive Interfaces für denselben Link-Local-Text, verlangt explizite Auswahl und lehnt unbekannte Zonen ohne willkürlichen Fallback ab. Danach werden Interface zwischen Auswahl und Nutzung umbenannt oder entfernt, Index-Recycling über einen Reboot geprüft und überlange Werte, NUL, Trennzeichenvarianten, Unicode sowie Shell- und Log-Sonderzeichen eingegeben.

Anschließend wird die Grenze beobachtet. Der lokale Beleg zeigt den benutzten Index; der Packet Capture zeigt, dass der Name nicht übertragen wurde. Remote-Daten dürfen keine lokale Zone diktieren. Auflösungsfehler schließen den Vorgang.

Schließlich muss die UI Annahme, Auflösung, Versand und Antwort getrennt zeigen. Der Standard setzt das Minimum; der Betreiber behält Policy, Aufbewahrung und Rollback; der laufende Code liefert die Pfadevidenz.

Beweisgrenze

Kein Betriebssystem, Browser, Router, Drucker, Sniffer, YANG Client oder maritimes Netz wurde getestet. Support, Nutzung, Fehler und Vorfälle wurden nicht gemessen. RFC-Beispiele erläutern den Mechanismus, sie zertifizieren keine aktuellen Releases.

Die belastbare Erkenntnis ist strukturell: Kontext kann für eine Aktion unerlässlich und als gemeinsame Identität zugleich ungültig sein. Ihn innen zu belegen und außen zu entfernen ist ein zusammenhängender Kontrollvorgang.

Quellen