Ausgangslage war eine Hyper-V-Installation auf Basis von Windows 10. Hyper-V richtet einen “Default Switch” ein. Dieser virtuelle Switch wurde schon mehrfach ohne Probleme für verschiedene VMs benutzt. Nun wurde ein neuer Hyper-V-Switch für ein Testnetz eingerichtet. Im Testnetz kamen nur zwei VMs zum Einsatz. VM1 war OpnSense mit Version 23.7. VM2 war Windows Server 2022. Die VM1 hatte zwei Netzwerkkarten zugeordnet einmal als WAN und einmal als LAN. Die VM2 hatte nur eine Netzwerkkarte die an LAN von VM1 verbunden war. Waren beide VMs aus konnte mit dem Hostsystem problemlos im Internet gesurft werden. Waren beide VMs gestartet war nach kurzer Zeit der Zugang ins Internet auf dem Hostsystem nicht mehr gegeben. Ebenso war auf den VMs nur ganz kurz eine Verbindung ins Internet möglich.
Beim Versuch eine Internetseite aufzurufen kam von Edge diese Meldung:
Hmmm…diese Seite ist leider nicht erreichbar
Die IP-Adresse des Servers von github.com konnte nicht gefunden werden.
Versuchen Sie Folgendes:
DNS_PROBE_FINISHED_BAD_CONFIG
Also irgendein Problem mit dem DNS.
Ein einfacher Test mit einem Ping brachte dieser Fehlermeldung, dabei ist 172.17.224.1 die IP-Adresse welche dem “Default Switch” auf dem Host-System zugewiesen war:
PS C:\Users\Administrator> ping 8.8.8.8
Ping wird ausgeführt für 8.8.8.8 mit 32 Bytes Daten:
Antwort von 172.17.224.1: Die Gültigkeitsdauer wurde bei der Übertragung überschritten.
Antwort von 172.17.224.1: Die Gültigkeitsdauer wurde bei der Übertragung überschritten.
Antwort von 172.17.224.1: Die Gültigkeitsdauer wurde bei der Übertragung überschritten.
Antwort von 172.17.224.1: Die Gültigkeitsdauer wurde bei der Übertragung überschritten.
Auch ein hochschrauben des Timeouts mittels
PS C:\Users\Administrator> ping 8.8.8.8 -i 60
brachte keine Änderung. Nun der Versuch mittels nslookup eine Antwort zu bekommen:
PS C:\Users\Administrator> nslookup
Standardserver: OPNsense.localdomain
Address: 192.168.1.1> google.de
Server: OPNsense.localdomain
Address: 192.168.1.1DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Zeitüberschreitung bei Anforderung an OPNsense.localdomain.
Obwohl der Ping an 8.8.8.8 schon nicht funktionierte wurde trotzdem mal ein tracert abgesetzt, was zu diesem interessanten Ergebnis führte:
PS C:\Users\Administrator> tracert 8.8.8.8
Routenverfolgung zu 8.8.8.8 über maximal 30 Hops
1 <1 ms <1 ms <1 ms OPNsense.localdomain [192.168.1.1]
2 5 ms 6 ms 3 ms 172.17.224.1
3 1 ms 1 ms 1 ms OPNsense.localdomain [192.168.1.1]
4 2 ms 1 ms 1 ms 172.17.224.1
5 2 ms 1 ms 1 ms OPNsense.localdomain [192.168.1.1]
6 2 ms 7 ms 2 ms 172.17.224.1
7 2 ms 2 ms 2 ms OPNsense.localdomain [192.168.1.1]
8 3 ms 2 ms 2 ms 172.17.224.1
9 3 ms 2 ms 2 ms OPNsense.localdomain [192.168.1.1]
10 3 ms 3 ms 3 ms 172.17.224.1
11 4 ms 3 ms 2 ms OPNsense.localdomain [192.168.1.1]
12 4 ms 2 ms 3 ms 172.17.224.1
13 4 ms 3 ms 3 ms OPNsense.localdomain [192.168.1.1]
D.h. die Verbindung dreht sich im Kreis!
Nach einigen Neustarts und überprüfen der Netzwerkeinstellungen wurde am Host-System geschaut, ob da alles klappt. Und siehe da, es war auch kein Aufruf mehr von Internetseiten möglich. Das auffällige am Host-System war die DNS-Suffixreihenfolge:
C:\Users\Administrator>ipconfig /all
Windows-IP-Konfiguration
Hostname . . . . . . . . . . . . : HyperVHost
Primäres DNS-Suffix . . . . . . . :
Knotentyp . . . . . . . . . . . . : Hybrid
IP-Routing aktiviert . . . . . . : Nein
WINS-Proxy aktiviert . . . . . . : Nein
DNS-Suffixsuchliste . . . . . . . : localdomain
fritz.boxEthernet-Adapter vEthernet (Default Switch):
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
Physische Adresse . . . . . . . . : 00-15-5D-96-A6-6B
DHCP aktiviert. . . . . . . . . . : Nein
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::b711:9aff:aa98:4d94%32(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 172.17.224.1(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.240.0
Standardgateway . . . . . . . . . :
DHCPv6-IAID . . . . . . . . . . . : 536876381
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (OpnSenseNetzwerk):
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #3
Physische Adresse . . . . . . . . : 00-15-5D-8E-A2-5C
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::ad:802c:9657:2eaf%13(Bevorzugt)
IPv4-Adresse (Auto. Konfiguration): 169.254.252.98(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.0.0
Standardgateway . . . . . . . . . :
DHCPv6-IAID . . . . . . . . . . . : 805311837
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (KundeTestNetz):
Verbindungsspezifisches DNS-Suffix: localdomain
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #4
Physische Adresse . . . . . . . . : 00-15-5D-8E-A2-74
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::fb91:31ae:c923:8c31%22(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 192.168.1.102(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Lease erhalten. . . . . . . . . . : Samstag, 2. September 2023 11:19:47
Lease läuft ab. . . . . . . . . . : Montag, 4. September 2023 02:19:48
Standardgateway . . . . . . . . . : 192.168.1.1
DHCP-Server . . . . . . . . . . . : 192.168.1.1
DHCPv6-IAID . . . . . . . . . . . : 620762461
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : 192.168.1.1
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (Controller der Familie Realtek PCIe GBE Virtual Switch):
Verbindungsspezifisches DNS-Suffix: fritz.box
Beschreibung. . . . . . . . . . . : Hyper-V-Adapter – virtuelles Ethernet #2
Physische Adresse . . . . . . . . : C8-60-00-8E-47-11
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::4f87:2147:db21:39c5%23(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 192.168.20.56(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Lease erhalten. . . . . . . . . . : Samstag, 2. September 2023 04:33:58
Lease läuft ab. . . . . . . . . . : Donnerstag, 14. September 2023 00:21:54
Standardgateway . . . . . . . . . : 192.168.20.2
DHCP-Server . . . . . . . . . . . : 192.168.20.2
DHCPv6-IAID . . . . . . . . . . . : 331898880
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : 192.168.20.2
NetBIOS über TCP/IP . . . . . . . : Aktiviert
Fritz.box war vom lokalen Netz und localdomain war von der VM-OpnSense-Maschine. Warum hat diese eine höhere Priorität wie das lokale Netz?!?!?
Zuerst dachte ich das Problem über direkte Manipulation der DNS-Suchreihenfolge wie hier beschrieben https://learn.microsoft.com/de-de/troubleshoot/windows-client/networking/configure-domain-suffix-search-list-domain-name-system-clients zu lösen. Allerdings, nachdem es sich um keine einfache Lösung sondern um eine Registry-Manipulation handelte, wurde nach einer anderen Lösung gesucht.
Früher ließ sich so ein Problem bei den Netzwerkverbindungen mittels des versteckten Menüs Erweitert (vorher ALT-Taste einmal drücken) und dann Auswahl von “Erweiterte Einstellungen” lösen. Dort gab es das Register “Adapter und Bindungen”:
Doch unter Windows 10 gibt es nun nur noch das Register Anbieterreihenfolge (Provider Order):
Mal wieder eine tolle Sache. Wer kommt auf die Idee hier Menüs verschwinden zu lassen? Dieser Artikel brachte dann die Lösung https://learn.microsoft.com/de-de/windows-server/networking/technologies/network-subsystem/net-sub-interface-metric. Es gibt ein Powershell Kommando um die Schnittstellenmetrik definieren zu können, es nennt sich Set-NetIPInterface. https://learn.microsoft.com/en-us/powershell/module/nettcpip/set-netipinterface?view=windowsserver2022-ps.
So sah die Sache auf dem Host aus:
PS C:\WINDOWS\system32> Get-NetIPInterface -AddressFamily IPv4|select interfacemetric, interfacealias
interfacemetric interfacealias
————— ————–
15 vEthernet (KundeTestNetz)
15 vEthernet (OpnSenseNetzwerk)
25 vEthernet (Controller…ek PCIe GBE Virtual Switch)
15 vEthernet (Default Switch)
75 Loopback Pseudo-Interface 1
D. h. die Netzwerkkarte im Host-System hatte eine niedrigere Priorität als der “Default Switch”. Die Metric-Wert war auf 25 und die virtuellen Switche hatten 15. Es konnte also nie ein Paket nach außen gelangen.
Nachdem dann mittels
Set-NetIPInterface -InterfaceIndex 23 -InterfaceMetric 5
der Metric-Wert geändert wurde, wie hier zu sehen:
PS C:\WINDOWS\system32> Get-NetIPInterface -AddressFamily IPv4|select interfacemetric, interfacealias
interfacemetric interfacealias
————— ————–
15 vEthernet (KundeTestNetz)
15 vEthernet (OpnSenseNetzwerk)
5 vEthernet (Controller…ek PCIe GBE Virtual Switch)
15 vEthernet (Default Switch)
75 Loopback Pseudo-Interface 1
waren auf einmal alle Probleme behoben! Nachdem nun alles richtig gestellt war, war auch die Darstellung von ipconfig /all wieder in Ordnung:
C:\Users\Administrator>ipconfig /all
Windows-IP-Konfiguration
Hostname . . . . . . . . . . . . : HyperVHost
Primäres DNS-Suffix . . . . . . . :
Knotentyp . . . . . . . . . . . . : Hybrid
IP-Routing aktiviert . . . . . . : Nein
WINS-Proxy aktiviert . . . . . . : Nein
DNS-Suffixsuchliste . . . . . . . : fritz.box
localdomainEthernet-Adapter vEthernet (Controller der Familie Realtek PCIe GBE Virtual Switch):
Verbindungsspezifisches DNS-Suffix: fritz.box
Beschreibung. . . . . . . . . . . : Hyper-V-Adapter – virtuelles Ethernet #2
Physische Adresse . . . . . . . . : C8-60-00-8E-47-11
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::4f87:2147:db21:39c5%23(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 192.168.20.56(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Lease erhalten. . . . . . . . . . : Samstag, 2. September 2023 04:33:58
Lease läuft ab. . . . . . . . . . : Donnerstag, 14. September 2023 00:21:54
Standardgateway . . . . . . . . . : 192.168.20.2
DHCP-Server . . . . . . . . . . . : 192.168.20.2
DHCPv6-IAID . . . . . . . . . . . : 331898880
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : 192.168.20.2
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (Default Switch):
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
Physische Adresse . . . . . . . . : 00-15-5D-96-A6-6B
DHCP aktiviert. . . . . . . . . . : Nein
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::b711:9aff:aa98:4d94%32(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 172.17.224.1(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.240.0
Standardgateway . . . . . . . . . :
DHCPv6-IAID . . . . . . . . . . . : 536876381
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : 192.168.20.2
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (OpnSenseNetzwerk):
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #3
Physische Adresse . . . . . . . . : 00-15-5D-8E-A2-5C
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::ad:802c:9657:2eaf%13(Bevorzugt)
IPv4-Adresse (Auto. Konfiguration): 169.254.252.98(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.0.0
Standardgateway . . . . . . . . . :
DHCPv6-IAID . . . . . . . . . . . : 805311837
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS über TCP/IP . . . . . . . : AktiviertEthernet-Adapter vEthernet (KundeTestNetz):
Verbindungsspezifisches DNS-Suffix: localdomain
Beschreibung. . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #4
Physische Adresse . . . . . . . . : 00-15-5D-8E-A2-74
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
Verbindungslokale IPv6-Adresse . : fe80::fb91:31ae:c923:8c31%22(Bevorzugt)
IPv4-Adresse . . . . . . . . . . : 192.168.1.102(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Lease erhalten. . . . . . . . . . : Samstag, 2. September 2023 11:19:48
Lease läuft ab. . . . . . . . . . : Montag, 4. September 2023 15:19:49
Standardgateway . . . . . . . . . : 192.168.1.1
DHCP-Server . . . . . . . . . . . : 192.168.1.1
DHCPv6-IAID . . . . . . . . . . . : 620762461
DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-18-49-78-BD-C8-60-00-8E-47-11
DNS-Server . . . . . . . . . . . : 192.168.1.1
NetBIOS über TCP/IP . . . . . . . : Aktiviert
Der Vollständigkeithalber sind hier noch die Reaktionen eines Debian 12 Linux dokumentiert, wenn obiges Problem vorhanden ist.
Zunächst der Ping:
user@debian:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 172.17.224.1 icmp_seq=1 Time to live exceeded
From 172.17.224.1 icmp_seq=2 Time to live exceeded
From 172.17.224.1 icmp_seq=3 Time to live exceeded
From 172.17.224.1 icmp_seq=4 Time to live exceeded
^C
— 8.8.8.8 ping statistics —
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3004ms
Dann dig die nslookup-Variante von Linux:
user@debian:~$ dig google.de
;; communications error to 192.168.1.1#53: timed out
;; communications error to 192.168.1.1#53: timed out
;; communications error to 192.168.1.1#53: timed out; <<>> DiG 9.18.16-1~deb12u1-Debian <<>> google.de
;; global options: +cmd
;; no servers could be reached
und noch zum Abschluss die Reaktion bei traceroute:
user@debian:~$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 OPNsense.localdomain (192.168.1.1) 1.356 ms 1.333 ms 1.318 ms
2 172.17.224.1 (172.17.224.1) 1.791 ms 1.776 ms 1.762 ms
3 OPNsense.localdomain (192.168.1.1) 3.665 ms 3.650 ms 3.636 ms
4 172.17.224.1 (172.17.224.1) 4.003 ms 3.989 ms 3.976 ms
5 OPNsense.localdomain (192.168.1.1) 4.206 ms 4.192 ms 4.178 ms
6 172.17.224.1 (172.17.224.1) 4.604 ms 3.034 ms 3.013 ms
7 OPNsense.localdomain (192.168.1.1) 3.135 ms 6.627 ms 6.607 ms
8 172.17.224.1 (172.17.224.1) 7.442 ms 7.427 ms 7.412 ms
9 OPNsense.localdomain (192.168.1.1) 8.946 ms 7.167 ms 7.150 ms
10 172.17.224.1 (172.17.224.1) 7.566 ms 7.553 ms 7.540 ms
11 OPNsense.localdomain (192.168.1.1) 8.883 ms 8.870 ms 8.859 ms
12 172.17.224.1 (172.17.224.1) 9.025 ms 9.013 ms 9.498 ms
13 OPNsense.localdomain (192.168.1.1) 11.299 ms 11.466 ms 11.447 ms
14 172.17.224.1 (172.17.224.1) 11.797 ms 11.774 ms 9.114 ms
15 OPNsense.localdomain (192.168.1.1) 9.677 ms 10.444 ms 10.428 ms
16 172.17.224.1 (172.17.224.1) 11.654 ms 12.299 ms 12.277 ms
17 OPNsense.localdomain (192.168.1.1) 13.547 ms 13.534 ms 13.396 ms
18 172.17.224.1 (172.17.224.1) 13.081 ms 13.063 ms 13.050 ms
19 OPNsense.localdomain (192.168.1.1) 14.555 ms 14.542 ms 14.530 ms
20 172.17.224.1 (172.17.224.1) 12.825 ms 12.802 ms 12.754 ms
21 OPNsense.localdomain (192.168.1.1) 12.848 ms 12.830 ms 12.716 ms
22 172.17.224.1 (172.17.224.1) 13.123 ms 12.464 ms 12.447 ms
23 OPNsense.localdomain (192.168.1.1) 13.101 ms 15.354 ms 15.335 ms
24 172.17.224.1 (172.17.224.1) 15.706 ms 17.928 ms 18.225 ms
25 OPNsense.localdomain (192.168.1.1) 18.211 ms 18.198 ms 18.186 ms
26 172.17.224.1 (172.17.224.1) 20.433 ms 20.424 ms 20.407 ms
27 OPNsense.localdomain (192.168.1.1) 20.586 ms 20.570 ms 19.709 ms
28 172.17.224.1 (172.17.224.1) 19.961 ms 19.948 ms 17.236 ms
29 OPNsense.localdomain (192.168.1.1) 17.514 ms 15.482 ms 14.287 ms
30 172.17.224.1 (172.17.224.1) 12.110 ms 12.086 ms 12.070 ms
In früheren Zeiten verwendete man anstatt Set-NetIPInterface “route CHANGE” unter Windows. Die aktuellen Einstellungen Einstellungen unter Linux gibts mittels “ip route list” und Änderungen nimmt man mittels “ip route change” vor.
Nachdem nun klar war, wo das Problem lag, findet man natürlich auch Blog-Artikel die sich in ähnlicher Form dem Problem annehmen, wie hier z.B.: https://blog.pauby.com/post/hyper-v-default-switch-issues/.