Ping schlägt fehl, aber Nslookup funktioniert über Wireguard VPN

Ping schlägt fehl, aber Nslookup funktioniert über Wireguard VPN

Ich bin mit meinem Wireguard-Setup auf eine merkwürdige Situation gestoßen.

Mein Setup: Wireguard tunnelt den Zugriff auf mein Netzwerk. Active Directory-Domänencontroller stellen DNS bereit. Clients verwenden die DNS-Server über den Tunnel. Linux-Clients haben keine Probleme, DNS-Abfragen mit einem Wireguard-Tunnel aufzulösen, der die Domänencontroller als DNS-Server verwendet.

Das Problem: Windows-Clients können mit einem aktiven Wireguard-Tunnel nicht browsen. Ping schlägt fehl, aber nslookup funktioniert. Ich kann die DNS-Server anpingen (nach IP-Adresse). Ich kann externe IP-Adressen anpingen (z. B. 1.1.1.1). Wireshark zeigt die ausgehende DNS-Abfrage an, aber keine Antworten. Die Firewall auf dem Wireguard-Server zeigt nicht an, dass die Abfragen blockiert sind.

Was mache ich falsch?

Hier ist meine Konfiguration:

Wireguard Server

# cat /etc/wireguard/wg0.conf
[Interface]
Address = 10.101.0.1/16
SaveConfig = true
PostUp = ufw route allow in on wg0 out on enp6s0
PostUp = ufw route allow in on enp6s0 out on wg0
PostUp = ufw route allow in on wg0 out on enp1s0
PostUp = ufw route allow in on enp1s0 out on wg0
PostUp = iptables -t nat -I POSTROUTING -o enp6s0 -j MASQUERADE
PostUp = iptables -t nat -I POSTROUTING -o enp1s0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on enp6s0
PreDown = ufw route delete allow in on wg0 out on enp1s0
PreDown = ufw route delete allow in on enp6s0 out on wg0
PreDown = ufw route delete allow in on enp1s0 out on wg0
PreDown = iptables -t nat -D POSTROUTING -o enp6s0 -j MASQUERADE
PreDown = iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
ListenPort = 51820
PrivateKey = <snipped>

Routing-Tabelle auf dem Wireguard-Server

# ip route
default via <wan_gateway> dev enp1s0 proto static 
10.0.0.0/16 dev enp6s0 proto kernel scope link src 10.0.25.20 
10.0.0.0/16 via 10.0.1.254 dev enp6s0 proto static metric 100 
10.101.0.0/16 dev wg0 proto kernel scope link src 10.101.0.1 
<wan_ip_block>/22 dev enp1s0 proto kernel scope link src <wireguard_public_ip>

Firewall-Regeln auf WireguardServer

# ufw status
Status: active

To                         Action      From
--                         ------      ----
51820/udp                  ALLOW       Anywhere                  
22/tcp                     ALLOW       Anywhere                  
3389                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
135/tcp                    ALLOW       Anywhere                  
389/tcp                    ALLOW       Anywhere                  
636/tcp                    ALLOW       Anywhere                  
3268/tcp                   ALLOW       Anywhere                  
3269/tcp                   ALLOW       Anywhere                  
53/tcp                     ALLOW       Anywhere                  
88/tcp                     ALLOW       Anywhere                  
445/tcp                    ALLOW       Anywhere                  
123/tcp                    ALLOW       Anywhere                  
464/tcp                    ALLOW       Anywhere                  
137/tcp                    ALLOW       Anywhere                  
138/tcp                    ALLOW       Anywhere                  
139/tcp                    ALLOW       Anywhere                  
135/udp                    ALLOW       Anywhere                  
137/udp                    ALLOW       Anywhere                  
138/udp                    ALLOW       Anywhere                  
389/udp                    ALLOW       Anywhere                  
445/udp                    ALLOW       Anywhere                  
1512/udp                   ALLOW       Anywhere                  
42/udp                     ALLOW       Anywhere                  
42/tcp                     ALLOW       Anywhere                  
1512/tcp                   ALLOW       Anywhere                  
500/udp                    ALLOW       Anywhere                  
49152:65535/tcp            ALLOW       Anywhere                  
49152:65535/udp            ALLOW       Anywhere                  
464                        ALLOW       Anywhere                  
5985:5986/tcp              ALLOW       Anywhere                  
53/udp                     ALLOW       Anywhere                  
51820/udp (v6)             ALLOW       Anywhere (v6)             
22/tcp (v6)                ALLOW       Anywhere (v6)             
3389 (v6)                  ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
135/tcp (v6)               ALLOW       Anywhere (v6)             
389/tcp (v6)               ALLOW       Anywhere (v6)             
636/tcp (v6)               ALLOW       Anywhere (v6)             
3268/tcp (v6)              ALLOW       Anywhere (v6)             
3269/tcp (v6)              ALLOW       Anywhere (v6)             
53/tcp (v6)                ALLOW       Anywhere (v6)             
88/tcp (v6)                ALLOW       Anywhere (v6)             
445/tcp (v6)               ALLOW       Anywhere (v6)             
123/tcp (v6)               ALLOW       Anywhere (v6)             
464/tcp (v6)               ALLOW       Anywhere (v6)             
137/tcp (v6)               ALLOW       Anywhere (v6)             
138/tcp (v6)               ALLOW       Anywhere (v6)             
139/tcp (v6)               ALLOW       Anywhere (v6)             
135/udp (v6)               ALLOW       Anywhere (v6)             
137/udp (v6)               ALLOW       Anywhere (v6)             
138/udp (v6)               ALLOW       Anywhere (v6)             
389/udp (v6)               ALLOW       Anywhere (v6)             
445/udp (v6)               ALLOW       Anywhere (v6)             
1512/udp (v6)              ALLOW       Anywhere (v6)             
42/udp (v6)                ALLOW       Anywhere (v6)             
42/tcp (v6)                ALLOW       Anywhere (v6)             
1512/tcp (v6)              ALLOW       Anywhere (v6)             
500/udp (v6)               ALLOW       Anywhere (v6)             
49152:65535/tcp (v6)       ALLOW       Anywhere (v6)             
49152:65535/udp (v6)       ALLOW       Anywhere (v6)             
464 (v6)                   ALLOW       Anywhere (v6)             
5985:5986/tcp (v6)         ALLOW       Anywhere (v6)             
53/udp (v6)                ALLOW       Anywhere (v6)             

Anywhere on enp6s0         ALLOW FWD   Anywhere on wg0           
Anywhere on wg0            ALLOW FWD   Anywhere on enp6s0        
Anywhere on enp1s0         ALLOW FWD   Anywhere on wg0           
Anywhere on wg0            ALLOW FWD   Anywhere on enp1s0        
Anywhere (v6) on enp6s0    ALLOW FWD   Anywhere (v6) on wg0      
Anywhere (v6) on wg0       ALLOW FWD   Anywhere (v6) on enp6s0   
Anywhere (v6) on enp1s0    ALLOW FWD   Anywhere (v6) on wg0      
Anywhere (v6) on wg0       ALLOW FWD   Anywhere (v6) on enp1s0

Windows-Client

[Interface]
PrivateKey = <snipped>
Address = 10.101.0.4/32

[Peer]
PublicKey = <snipped>
AllowedIPs = 10.101.0.0/16, 10.0.0.0/16, <wan_ip_block>/22
Endpoint = <snipped>:51820

Antwort1

Das Problem war:

  • Wireguard-VPNs konfigurieren offenbar automatisch eine niedrigere Metrik als alle anderen Verbindungen auf dem Client
  • Ich habe die Client-DNS-Server auf der kabelgebundenen/WLAN-Verbindung konfiguriert, NICHT auf der Wireguard-Verbindung
  • Windows sendet DNS-Anfragen über die Verbindung mit der niedrigsten Metrik

Die Lösung: Fügen Sie die DNS-Server zur Wireguard-Clientkonfiguration hinzu:

DNS = <ip_address_of_dns_server>, <ip_address_of_dns_server>

Vollständige Client-Konfiguration

[Interface]
PrivateKey = <snipped>
Address = 10.101.0.4/32
DNS = <ip_address_of_dns_server>, <ip_address_of_dns_server>

[Peer]
PublicKey = <snipped>
AllowedIPs = 10.101.0.0/16, 10.0.0.0/16, <wan_ip_block>/22
Endpoint = <snipped>:51820

verwandte Informationen