IPv6-Adressen in UNCs und URLs

Vielleicht hatte der ein oder andere von Euch schon einmal eine kleine Herausforderung dabei per IPv6 auf eine Ressource zuzugreifen. Was bei IPv4 noch ganz einfach war, klappt wie gewohnt bei IPv6 leider nicht immer.

Im Folgenden werde ich beispielhaft die IPv4 192.168.2.8 und die IPv6 2001:db8::abc:def verwenden.

 
Beispiel 1: http/https-Zugriff mittels URL auf ein System ohne DNS
Auf dem Standard-Port (80 oder 443) geht es einfach so...​

  • bei IPv4 funktioniert das über --> http://192.168.2.8/ oder https://192.168.2.8/
  • bei IPv6 müssen [ ] ergänzt werden --> http://[2001:db8::acb:def]/ oder https://[2001:db8::acb:def]/

Die Notwendigkeit der Klammerung der IPv6 ergibt sich aus dem verwendeten : (Doppelpunkt), der historisch in einer URL eine andere Bedeutung hat und den Port von der IP-Adresse abgrenzt. Weicht die Ressource aber vom Standard-Port ab und verwendet zum Beispiel den Port 4044, so wird dieser Port mit einem : (Doppelpunkt) vor dem letzten / (Slash) eingefügt.

  • bei IPv4 funktioniert das über --> http://192.168.2.8:4044/ oder --> https://192.168.2.8:4044/
  • bei IPv6 funktioniert das über --> http://[2001:db8::acb:def]:4044/ oder --> https://[2001:db8::acb:def]:4044/

 
Beispiel 2: Datei-Zugriff mittels UNC auf ein System ohne DNS
Der Zugriff auf Datei oder -freigaben geht bequem mittels UNC, der Uniform Naming Convention.
Der erste UNC ist dabei eine Dateifreigabe (ein Laufwerk oder ein Ordner) und der zweite UNC ist eine Datei.

  • bei IPv4 funktioniert das über --> \\192.168.2.8\ oder \\192.168.2.8\beispiel.txt
  • bei IPv6 müssen wir kreativ werden --> \\2001-db8--acb-def.ipv6-literal.net\ oder \\2001-db8--acb-def.ipv6-literal.net\beispiel.txt

Wie man sieht, muss für eine gültige IPv6-UNC tief in die Trickkiste gegriffen werden. Ursache hierfür ist eine Designentscheidung von Microsoft aus vor-IPv6-Zeiten. Diese Entscheidung erlaubt in einem UNC keinen Doppelpunkt, auch nicht durch Einklammerung, wie in der URL, maskiert. Es müssen folglich alle : (Doppelpunkte) durch - (Bindestrich-Minus) ersetzt werden. Um dann aber auch noch sicher zu erkennen, dass es nun doch kein Hostname ist, wird noch die fiktive Domäne .ipv6-literal.net angehangen.

Vielen Dank an den User Barungar für diese Anleitung!

Wenn Du Fragen zu dieser Anleitung hast, dann schau doch einfach mal bei uns im vorbei!