Ping은 실패하지만 Nslookup은 Wireguard VPN을 통해 작동합니다.

Ping은 실패하지만 Nslookup은 Wireguard VPN을 통해 작동합니다.

와이어가드 설정으로 인해 이상한 상황이 발생했습니다.

내 설정: Wireguard 터널이 내 네트워크에 액세스합니다. Active Directory 도메인 컨트롤러는 DNS를 제공합니다. 클라이언트는 터널을 통해 DNS 서버를 사용합니다. Linux 클라이언트는 도메인 컨트롤러를 DNS 서버로 사용하여 Wireguard 터널로 DNS 쿼리를 해결하는 데 문제가 없습니다.

문제: Windows 클라이언트는 활성 Wireguard 터널을 사용하여 탐색할 수 없습니다. Ping은 실패했지만 nslookup은 작동합니다. (IP 주소로) DNS 서버에 ping을 보낼 수 있습니다. 외부 IP 주소(예: 1.1.1.1)를 ping할 수 있습니다. Wireshark는 DNS 쿼리가 나가지만 응답이 없음을 보여줍니다. Wireguard 서버의 방화벽에는 차단되는 쿼리가 표시되지 않습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

내 구성은 다음과 같습니다.

와이어가드 서버

# 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>

Wireguard 서버의 라우팅 테이블

# 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>

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

윈도우 클라이언트

[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

답변1

문제는 다음과 같습니다.

  • Wireguard VPN은 분명히 클라이언트의 다른 모든 연결보다 낮은 측정항목을 자동 구성합니다.
  • Wireguard 연결이 아닌 유선/Wi-Fi 연결에서 클라이언트 DNS 서버를 구성했습니다.
  • Windows는 메트릭이 가장 낮은 연결을 통해 DNS 쿼리를 보냅니다.

해결 방법: Wireguard 클라이언트 구성에 DNS 서버를 추가합니다.

DNS = <ip_address_of_dns_server>, <ip_address_of_dns_server>

전체 클라이언트 구성

[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

관련 정보