Seltsame DNS-Auflösung in WSL2 und VPN verbunden

Seltsame DNS-Auflösung in WSL2 und VPN verbunden

Ich verwende WSL2, Ubuntu 22, unter Windows 10. Wenn ich nslookupkeine Verbindung zu einem VPN herstelle, erhalte ich die folgenden Ergebnisse (beachten Sie, dass alle Antworten unterschiedliche IP-Adressen für den FQDN google.com sind).

daniel@DESKTOP-6M0RKK1:~
⤷ nslookup google.com
Server:         172.23.144.1
Address:        172.23.144.1#53

Non-authoritative answer:
Name:   google.com
Address: 142.251.116.139
Name:   google.com
Address: 142.251.116.102
Name:   google.com
Address: 142.251.116.100
Name:   google.com
Address: 142.251.116.113
Name:   google.com
Address: 142.251.116.101
Name:   google.com
Address: 142.251.116.138

Wenn ich jedoch eine Verbindung zu VPN herstelle, ändern sich die Antworten und zeigen auch Antworten von IP-Adressen einiger DNS-Server an.

daniel@DESKTOP-6M0RKK1:~
⤷ nslookup google.com
Server:         172.23.144.1
Address:        172.23.144.1#53

Non-authoritative answer:
Name:   google.com
Address: 142.251.135.110
Name:   ns1.google.com
Address: 216.239.32.10
Name:   ns2.google.com
Address: 216.239.34.10
Name:   ns3.google.com
Address: 216.239.36.10
Name:   ns4.google.com
Address: 216.239.38.10

Ich zeige das Beispiel mit google.com, aber das passiert mit jeder URL, die ich nachzuschlagen versuche. Und das ist das Symptom, das wahre Problem ist, dass die anderen Befehle (wie curl) bei der Anforderung eine zufällige(?) IP aus der Auflösungsliste verwenden, und manchmal geht die Anforderung an die erste IP und wird erfolgreich ausgeführt, aber manchmal wird die Anforderung an die DNS-Server statt an die richtige IP gesendet.

Im Moment habe ich keine Ahnung, wo ich nach Problemen suchen soll. Ich weiß nicht, ob das Problem eine Fehlkonfiguration von WSL, des Windows-Netzwerks oder vielleicht des DNS-Servers von VPN ist. Daher bin ich für jede Art von Hilfe sehr dankbar.

P.S.: Die Auflösung von Windows direkt funktioniert einwandfrei, wenn das VPN angeschlossen ist. Das Problem besteht nur innerhalb von WSL.


Bearbeiten: Debug-Ausgabe hinzufügen. Es sieht so aus, als Authoritywürden AdditionalDatensätze zusammengeführt, Answerswenn die Suche das WSL-Schnittstellen-Gateway als Nameserver verwendet.

Ausgabe nslookup -debug google.comvom WSL2-System.

Dieser Befehl sollte das WSL-Gateway als Nameserver verwenden und dann die Anforderung an den VPN-Nameserver senden.

daniel@DESKTOP-6M0RKK1:~
⤷ nslookup -debug google.com
Server:         172.23.144.1
Address:        172.23.144.1#53

------------
    QUESTIONS:
        google.com, type = A, class = IN
    ANSWERS:
    ->  google.com
        internet address = 142.251.133.174
        ttl = 0
    ->  ns1.google.com
        internet address = 216.239.32.10
        ttl = 0
    ->  ns2.google.com
        internet address = 216.239.34.10
        ttl = 0
    ->  ns3.google.com
        internet address = 216.239.36.10
        ttl = 0
    ->  ns4.google.com
        internet address = 216.239.38.10
        ttl = 0
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:   google.com
Address: 142.251.133.174
Name:   ns1.google.com
Address: 216.239.32.10
Name:   ns2.google.com
Address: 216.239.34.10
Name:   ns3.google.com
Address: 216.239.36.10
Name:   ns4.google.com
Address: 216.239.38.10
Ausgabe nslookup -debug google.com 10.0.24.151vom WSL2-System.

Dieser Befehl sollte den VPN-Nameserver direkt verwenden.

daniel@DESKTOP-6M0RKK1:~
⤷ nslookup -debug google.com 10.0.24.151
Server:         10.0.24.151
Address:        10.0.24.151#53

------------
    QUESTIONS:
        google.com, type = A, class = IN
    ANSWERS:
    ->  google.com
        internet address = 142.251.133.174
        ttl = 227
    AUTHORITY RECORDS:
    ->  google.com
        nameserver = ns1.google.com.
        ttl = 5636
    ->  google.com
        nameserver = ns2.google.com.
        ttl = 5636
    ->  google.com
        nameserver = ns4.google.com.
        ttl = 5636
    ->  google.com
        nameserver = ns3.google.com.
        ttl = 5636
    ADDITIONAL RECORDS:
    ->  ns1.google.com
        internet address = 216.239.32.10
        ttl = 92272
    ->  ns2.google.com
        internet address = 216.239.34.10
        ttl = 92272
    ->  ns3.google.com
        internet address = 216.239.36.10
        ttl = 18575
    ->  ns4.google.com
        internet address = 216.239.38.10
        ttl = 18575
------------
Non-authoritative answer:
Name:   google.com
Address: 142.251.133.174
Ausgabe von nslookup -d google.comWindows.

Dieser Befehl sollte den VPN-Nameserver direkt verwenden. Die Ausgabe wurde redigiert, um keine Namen anzuzeigen, die mit dem Unternehmen in Zusammenhang stehen, für das ich arbeite.

PS C:\Users\danie> nslookup -d google.com
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 7,  additional = 7

    QUESTIONS:
        151.24.0.10.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  151.24.0.10.in-addr.arpa
        name = s2-<redacted>
        ttl = 900 (15 mins)
    AUTHORITY RECORDS:
    ->  10.in-addr.arpa
        nameserver = s17-<redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = s343-<redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = s2-<redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = s344-<redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = s1-<redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = <redacted>
        ttl = 900 (15 mins)
    ->  10.in-addr.arpa
        nameserver = <redacted>
        ttl = 900 (15 mins)
    ADDITIONAL RECORDS:
    ->  s1-<redacted>
        internet address = 10.0.16.253
        ttl = 900 (15 mins)
    ->  <redacted>
        internet address = 10.17.0.4
        ttl = 900 (15 mins)
    ->  s17-<redacted>
        internet address = 10.8.74.34
        ttl = 900 (15 mins)
    ->  <redacted>
        internet address = 10.58.0.240
        ttl = 900 (15 mins)
    ->  s2-<redacted>
        internet address = 10.0.24.151
        ttl = 900 (15 mins)
    ->  s343-<redacted>
        internet address = 10.0.29.143
        ttl = 900 (15 mins)
    ->  s344-<redacted>
        internet address = 10.0.29.144
        ttl = 900 (15 mins)

------------
Server:  s2-<redacted>
Address:  10.0.24.151

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        google.com.<redated_internal_suffix>, type = A, class = IN
    AUTHORITY RECORDS:
    ->  <redated_internal_suffix>
        ttl = 900 (15 mins)
        primary name server = s2-<redacted>.<redated_internal_suffix>
        responsible mail addr = root.s2-<redacted>
        serial  = 2023071101
        refresh = 86400 (1 day)
        retry   = 7200 (2 hours)
        expire  = 2592000 (30 days)
        default TTL = 345600 (4 days)

------------
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 3, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        google.com.<redated_internal_suffix>, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  <redated_internal_suffix>
        ttl = 900 (15 mins)
        primary name server = s2-<redacted>
        responsible mail addr = root.s2-<redacted>
        serial  = 2023071101
        refresh = 86400 (1 day)
        retry   = 7200 (2 hours)
        expire  = 2592000 (30 days)
        default TTL = 345600 (4 days)

------------
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 4, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 4,  additional = 8

    QUESTIONS:
        google.com, type = A, class = IN
    ANSWERS:
    ->  google.com
        internet address = 142.250.79.14
        ttl = 23 (23 secs)
    AUTHORITY RECORDS:
    ->  google.com
        nameserver = ns2.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns4.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns3.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns1.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ADDITIONAL RECORDS:
    ->  ns1.google.com
        internet address = 216.239.32.10
        ttl = 92711 (1 day 1 hour 45 mins 11 secs)
    ->  ns2.google.com
        internet address = 216.239.34.10
        ttl = 92711 (1 day 1 hour 45 mins 11 secs)
    ->  ns3.google.com
        internet address = 216.239.36.10
        ttl = 19014 (5 hours 16 mins 54 secs)
    ->  ns4.google.com
        internet address = 216.239.38.10
        ttl = 19014 (5 hours 16 mins 54 secs)
    ->  ns1.google.com
        AAAA IPv6 address = 2001:4860:4802:32::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns2.google.com
        AAAA IPv6 address = 2001:4860:4802:34::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns3.google.com
        AAAA IPv6 address = 2001:4860:4802:36::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns4.google.com
        AAAA IPv6 address = 2001:4860:4802:38::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)

------------
Non-authoritative answer:
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 5, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 4,  additional = 8

    QUESTIONS:
        google.com, type = AAAA, class = IN
    ANSWERS:
    ->  google.com
        AAAA IPv6 address = 2800:3f0:4004:808::200e
        ttl = 41 (41 secs)
    AUTHORITY RECORDS:
    ->  google.com
        nameserver = ns1.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns3.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns4.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ->  google.com
        nameserver = ns2.google.com
        ttl = 6075 (1 hour 41 mins 15 secs)
    ADDITIONAL RECORDS:
    ->  ns1.google.com
        internet address = 216.239.32.10
        ttl = 92711 (1 day 1 hour 45 mins 11 secs)
    ->  ns2.google.com
        internet address = 216.239.34.10
        ttl = 92711 (1 day 1 hour 45 mins 11 secs)
    ->  ns3.google.com
        internet address = 216.239.36.10
        ttl = 19014 (5 hours 16 mins 54 secs)
    ->  ns4.google.com
        internet address = 216.239.38.10
        ttl = 19014 (5 hours 16 mins 54 secs)
    ->  ns1.google.com
        AAAA IPv6 address = 2001:4860:4802:32::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns2.google.com
        AAAA IPv6 address = 2001:4860:4802:34::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns3.google.com
        AAAA IPv6 address = 2001:4860:4802:36::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)
    ->  ns4.google.com
        AAAA IPv6 address = 2001:4860:4802:38::a
        ttl = 160225 (1 day 20 hours 30 mins 25 secs)

------------
Name:    google.com
Addresses:  2800:3f0:4004:808::200e
          142.250.79.14

Bearbeitung 2: Es scheint mit einem Problem mit dem für WSL erstellten internen DNS-Server zusammenzuhängen, bei dem es sich um den internen Hyper-V-DNS-Server handelt, also um die Windows-Internetverbindungsfreigabe (ICS).

Ich habe auf WSLs GitHub ein offenes Problem gefunden, bei dem sich viele Leute über das Problem beschwert haben.

https://github.com/microsoft/WSL/issues/5806

verwandte Informationen