IPv6 Verbindungstests

Es gibt verschiedene Webseiten im Internet, mit denen Sie die korrekte IPv6-Konfiguration ihres Clients und den Weg zu Zielsystemen prüfen können, z.B.

Die helfen aber nicht bei der Analyse von Fehlern im eigenen LAN und zu eigenen Servern.

Zur Erinnerung: DNSv6

Wie bei IPv4 kann ein Client auch über IPv6-Adressen einen Server erreichen. Da die IPv6-Adressen aber deutlich länger sind und daher kaum von Hand eingegeben werden, gehen wir davon aus, das Ziele per DNS erst aufgelöst werden. Eine Namensauflösung eines Ziels auf eine IPv6-Adresse funktioniert nur wenn:

  • Der DNS-Server über IPv6 erreichbar ist
    Das kann eine "öffentliche" Adresse aber auch eine LinkLocalAdresse sein.
  • Der Client eine IPv6-Adresse hat
    Auch hier kann dies eine "öffentliche" Adresse aber auch eine LinkLocalAdresse sein.
  • Der Client den DNS-Server per IPv6 anspricht
    Meines Wissens sollte ein DNS-Server eine Anfrage über eine IPv4-Verbindung nie mit einer IPv6-Adresse beantworten. Der DNS-Server nutzt ja gerade die Source-IP der Anfrage als Kriterium, ob der Client überhaupt eine IPv6-Kommunikation nutzen kann

Das bedeutet aber auch, dass ein IPv6-DNS-Server und ein IPv6-Client im gleichen lokalen Subnetz durchaus eine IPv6-Antwort liefern können, auch wenn das IPv6-Routing über das Internet gar nicht funktioniert.

 Genau diese Problematik habe ich z.B. häuft im Homeoffice mit partiell aktiviertem IPv6. Ein Client und die Fritz!Box nutzen intern durchaus IPv6 über eine "LinkLocal"-Adresse, weil IPv6-Routing auf der Fritz!Box nicht aktiv ist. Das bedeutet aber nicht, dass der Client nicht doch über IPv6 die Fritz!Box fragt und diese ihrerseits per IPv6 nach extern die Anfrage weitergeben kann und am Ende auch eine Antwort bekommt. Die öffentliche IPv6-Adresse kann dann aber vom Client nicht erreicht werden:

IPv6Only Gegenstellen

Sie könne dies recht einfach prüfen, indem Sie per NSLOOKUP einen DNS-Namen auflösen, der nur eine IPv6-Adresse liefern kann, weil er keinen A-Record sondern nur einen AAAA-Record hat. Es gibt gleich mehrere dieser Namen und gerade die Browser "prüfen" das auch gerne, z.B. Firefox:


Mitschnitt mit Fiddler vom Feb 2023

Wobei diese Ausgabe irreführend ist, denn das scheint hier eher die Meldung an Mozilla und weniger der Test selbst zu sein. Aber auch Microsoft und Google haben solche Test-Endpunkte, die nur auf IPv6 auflösen und per ICMP und HTTP erreichbar sind.

ipv6.msftconnecttest.com
ipv6.google.com

Analog gibt es dazu auch Namen, die explizit unter IPv4 auflösbar sind

ipv4only.arpa

Probieren sie einfach aus, ob ihr Client den Namen auflösen kann.

resolve-dnsname ipv6.google.com
nslookup ipv6.google.com

Wenn keine Antwort kommt, dann hat ihr Client entweder überhaupt keine Netzwerkverbindung oder nur eine IPv4-Adresse. die lokale IPv6-Adresse können Sie in der PowerShell recht einfach auflisten:

Get-NetIPAddress -AddressFamily ipv6 -PrefixOrigin RouterAdvertisement,dhcp,Manual

Eine erfolgreiche Namensauflösung ist zwar keine zwingende Voraussetzung für den Einsatz von IPv6 aber ich würde ein Fehlen dennoch als Problem bezeichnen.

Verbindung zu IPv6 Ziel

Nun kennt ihr Client die Zieladresse und versucht eine Verbindung. Allein das Wissen um das Ziel und eine lokale IPv6-Adresse bedeutet noch nicht, dass das Ziel auch direkt erreichbar ist. Im Homeoffice ist es mittlerweile schon weiter verbreitet, dass eine native IPv6-Verbindung zum Internet möglich ist. Viele Provider haben IPv6 mittlerweile eingeführt und sie haben auch selbst einen Vorteil davon, da viele NAT-Brücken entfallen. IPv4-Adressen sind nun mal knapp und viele Provider vergeben ihren Kunden gar keine im Internet erreichbaren IPv4-Adressen sondern nutzen Carrier Grade NAT (CGNAT) mit Adressen aus dem Netzblock 100.64.0.0/10. Ich habe bei mir aktuell eine FTTH mit IPv6 (DG)-Verbindung und natives IPv6.

Allerdings haben viele Firmen noch nicht einmal damit angefangen, IPv6 einzurichten und wissen vielleicht gar nicht, dass Sie schon IPV6 mit "Link Local Adressen" in jedem Subnetz verwenden. Solche Adressen erlauben aber kein Routing über die Grenzen eines Subnetz hinaus. Das führt gerade bei kleinere Firmen mit einem Subnetz zu der Situation, dass die Client, internen Server und die Domaincontroller, die zugleich DNS-Server sind, schon unbemerkt über IPv6 kommunizieren aber der Weg ins Internet über die Firewall nicht mit IPv6 möglich ist. Das entspricht dann auch wieder dem Fall eines Home-Office, indem der DSL-Router per DNSv6 auch IPv6-Antworten der Server liefert aber die Pakete dann noch nicht routet.

Ob sie mit ihrem Client sauber einer IPv6- Gegenstelle auflösen und erreichen können, können Sie einfach per PING und HTTP prüfen. Sowohl Google als auch Microsoft betreiben Server, die per HTTP und ICMP über IPv6 erreichbar sind und ihre Adresse nur über eine DNSv6-Anfrage ausgeliefert wird

# Ping mit PowerShell
test-connection ipv6.google.com 

# HTTP-Request mit PowerShell
invoke-webrequest http://ipv6.google.com

Das gleiche Vorgehen funktioniert natürlich auch mit Microsoft und der Windows Client nutze die folgenden Adressen im Rahmen seines Network Location Awareness-Checks. Nur bei der URL muss noch ein Dateiname dazu, sonst wird ein "404 not found" geliefert.

# Ping mit PowerShell
test-connection ipv6.msftconnecttest.com

# HTTP-Request mit PowerShell
invoke-webrequest http://ipv6.msftconnecttest.com

Durch diese Tests können sie recht zuverlässig prüfen, dass ihr Client einen IPv6 Service per DNS auflösen und sogar erreichen kann.

Routing im Vergleich

Interessant ist auch der Weg von einem Client zum Server bei der Verwendung von IPv4 und IPv6. Ich nutze dazu einfach die Exchange Online-Dienste von Microsoft, die sowohl per IPv4 als auch per IPv6 erreichbar sind.

Protokoll IPv4 IPv6

Leitweg

PS C:\> tracert -4 outlook.office.com

Routenverfolgung zu HHN-efz.ms-acdc.office.com [40.99.149.210]
über maximal 30 Hops:

  1     *        2 ms     1 ms  fritz.box [192.168.178.1]
  2    10 ms     8 ms     8 ms  100.124.1.57
  3     5 ms     6 ms     6 ms  100.127.1.132
  4     7 ms     6 ms     6 ms  100.127.1.131
  5     8 ms     7 ms     6 ms  185.22.46.129
  6    42 ms     6 ms    11 ms  104.44.56.189
  7    12 ms    10 ms     9 ms  ae30-0.icr01.fra21.ntwk.msn.net [104.44.235.109]
  8     *        *        *     Zeitüberschreitung der Anforderung.
  9     *        *        *     Zeitüberschreitung der Anforderung.
 10     *        *        *     Zeitüberschreitung der Anforderung.
 11     *        *        *     Zeitüberschreitung der Anforderung.
 12     *        *        *     Zeitüberschreitung der Anforderung.
 13    12 ms    10 ms    10 ms  40.99.149.210
SPS C:\> tracert outlook.office.com

Routenverfolgung zu AMS-efz.ms-acdc.office.com [2603:1026:c03:707d::2]
über maximal 30 Hops:

  1     2 ms     1 ms     2 ms  fritz.box [2a00:6020:4e92:e200:2e91:abff:fe49:d7c9]
  2     *        *        *     Zeitüberschreitung der Anforderung.
  3     *        9 ms     *     2a00:6020:0:a::1
  4     8 ms     5 ms     6 ms  2a01:111:2000:1::3a76
  5    15 ms    10 ms    12 ms  2a01:111:2000:2:8000::daa
  6    12 ms     9 ms    11 ms  2603:10a0:30f:8104::6
  7    11 ms     9 ms    10 ms  2603:10a0:30f:8001::1e6
  8    12 ms     9 ms    10 ms  2603:10a0:30f:8202::29a
  9    10 ms     9 ms    10 ms  2603:10a0:31d:5c8::
 10    13 ms    10 ms    10 ms  2603:10a0:31d:72a::
 11    11 ms    10 ms     9 ms  2603:1026:c03:707d::2		

Ripe

Der Weg über IPv4 ist 2 Hops weiter, da erst zwischen Hop 5 und Hop 6 der Übergang von DG zu Microsoft erfolgt. Bei IPv3 ist schon Hop 3 bei Microsoft und mein Provider spart sich den Umweg über einen NAT-Router aufgrund der Carrier Grade NAT (CGNAT)- IPv4-Adressen. Bei IPv6 gibt es das nicht und anhand der ersten Ziffern (2a01:111 und 2603:10a0 kann man gut den Providerwechsel erkennen.

Es gibt natürlich ganz große Netzbetreiber wie z.B. Microsoft, die mehrere IPv6-Provider-Zuweisungen haben. Im Jan 2023 hatte Microsoft 23 IPv6 Subnetze.

IPv4 und IPv6 Koexistenz

Nun gibt es natürlich noch verschiedene Varianten eines parallelen Betriebs von IPv6 und IPv4. Wir schon beschrieben, kann eine IPv6-DNS-Auflösung möglich sein aber die Verbindung nicht hergestellt werden. Auch kann es Clients geben, die z.B. nur IPv6 nutzen können aber dennoch IPv4-Systeme erreichen wollen. Dann kommt DNS64 und NAT64 zum Einsatz, d.h. der DNSv6-Server erkennt, dass die Zieladresse keine IPv6-Adresse hat und vergibt eine IPv6-Adresse aus seinem Bereich, die dann ein NAT64-System auf die IPv4-Adresse umsetzt. Diese Technik kennen Windows Administratoren seit Windows 2012 und Windows 8 mit Direct Access als VPN-Lösung.

Umgekehrt habe ich aber noch nicht wirklich bemerkt, dass Services im Internet nicht mehr unter einer IPv4-Adresse erreichbar sind, mal abgesehen von solche IPv6-Testsystemen. Die meisten Clients aber auch Server arbeiten mittlerweile mit "DualStack", d.h. nutzen IPv4 und IPv6, wobei Windows IPv6 den Vorzug gibt:

By default, Windows favors IPv6 global unicast addresses over IPv4 addresses.
Quelle:https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-ipv6-in-windows

Aber in dem Artikel werden noch viele andere Komponenten einer IPv6-Welt beschrieben. IPv6 gibt es schon sehr lange aber das bedeutet nicht, dass Transportnetzwerke schon immer für IPv4 bereit gewesen sind. Ein Router muss eben auch IPv6 erst einmal können und ein Administrator muss die Konfiguration entsprechend umsetzen. Daher gibt es z.B.

  • ISATAP (Intra-Site Automatic Tunnel Addressing Protocol)
    Damit können zwei per IPv4 verbundene System auch IPv6-Pakete austauschen, die quasi in IPv4 als Transport übertragen werden. Mit der falschen DNS-Konfiguration kann damit ein mit verschiedenen IPv4-Subnetzen segmentiertes LAN aus IPv6-Sicht wir ein großes Subnetz aussehen.
  • Teredo
    Clients senden IPv6-Pakete verpackt in IPv4-Pakete über NAT-Router an einen Teredo-Server, der diese als Backbone dann weiter verteilt.
  • 6to4
    Eine weitere Lösung um IPv6-Pakete in IPv4-Pakete zu tunneln.

Nach meiner Einschätzung sollten diese Optionen mittlerweile alle vermieden und besser eine natives IPv6-Routing aufgebaut werden.

Ich gehe auf dieser Seite nicht weiter auf diese "Transition Technologien" ein, zumal dazu schon sehr viele Informationen im Internet vorhanden sind.

IPv6 Transition Technologies
https://learn.microsoft.com/en-us/previous-versions//bb726951(v=technet.10)

Zusammenfassung

IPv6 wird immer wichtiger und wenn ein Client mit einem Server direkte per IPv6 kommunizieren kann, umgehen wir viele Problem mit NAT (Portlimit, Umwege etc.) und oftmals sind die Leitwege sogar kürzer als bei IPv4. Ich befürchte aber, dass im ersten Schritt die großen Provider und Serviceanbieter (Microsoft, Google, Amazon) ihre Server mit Dualstack ausstatten und die Zugangsprovider für Privatpersonen IPv6 anbieten, da beide große Einsparungen damit erreichen können.

Ich kenne aber nur sehr wenige "mittelständische" Firmen, die heute schon IPv6 in ihrem LAN aktiv betreiben. Sicher haben vermutlich alle PCs schon LinkLocal-Adressen, die sie sogar verwenden aber das ist kein IPv6-Rollout mit eigenen öffentlichen IP-Adressen und entsprechenden Regeln in den Firewall. Es fängt ja schon mal damit an, dass man eine IPv6-Subnetz bekommt, was man idealerweise auch beim Providerwechsel behalten kann. Das wird aber erst dann wichtig, wenn Sie selbst Dienste per IPv6 anbieten möchten.

Weitere Link