DNS-запрос отклонен при подключении к WireGuard/pfSense

DNS-запрос отклонен при подключении к WireGuard/pfSense

Я использую pfSense с OpenVPN уже больше десяти лет. Также интенсивно использовал многие сервисы от pfSense (DNS resolver, DHCP, HA Proxy, SquidGuard, брандмауэр, конечно...) Короче говоря - опыт есть. Но сейчас решил попробовать заменить OpenVPN на WireGuard...

Я создал туннель на стороне pfSense, настроил клиент Windows, и он успешно подключается. Я могу получить доступ (почти) ко всем серверам за pfSense. Но затем я заметил что-то очень, очень странное в поведении DNS. Мне придется быстро описать свою среду, чтобы объяснить проблему. Итак, у меня есть:

  • Раздельная настройка DNS (внутренний DNS преобразуется в частные адреса, а публичный DNS преобразуется в публичные).
  • Внутренние DNS-серверы — это два контроллера домена Zentyal (в сети за pfSense). Они являются авторитетными серверами имен для основного домена "mydomain.com".
  • Эти два сервера настроены на пересылку DNS-запросов для других доменов в DNS Resolver в pfSense. (У меня в DNS Resolver настроено еще несколько доменов, потому что он намного удобнее и лучше, чем Zentyal DNS.)
  • Наконец, DNS Resolver перенаправляет запросы для доменов, которые не преобразованы, на внешний DNS.
DNS request -> Zentyal DNS (172.16.0.1) -> pfSense DNS Resolver (172.16.1.1) -> External DNS

Признаю, это немного странная установка, но она работала много лет.

Когда я подключаю свою машину Windows 11 с помощью OpenVPN, я могу сделать это nslookupдля любого домена (главного или другого) без каких-либо проблем. Но когда я отключаю OpenVPN и подключаю WireGuard, я могу запросить толькоглавныйдомен:

nslookup web.mydomain.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

Name:    web.mydomain.com
Address:  172.16.2.5

Но когда я запрашиваю любой другой домен (обрабатываемый DNS Resolver или внешним DNS), я получаю ошибку «запрос отклонен»:

nslookup google.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

*** zentyal-1.mydomain.com can't find google.com: Query refused

Тот же самый запрос, когда я подключаюсь через OpenVPN:

nslookup google.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

Non-authoritative answer:
Name:    google.com
Addresses:  2a00:1450:4001:80f::200e
          142.250.185.142

Очевидно, в обоих случаях один и тот же DNS-сервер (zentyal-1) получает запрос, и один и тот же сервер отвечает. Один раз "query denied", а другой раз successful response. Похоже, DNS Resolver отказывается отвечать Zentyal, когда я подключен через WireGuard.

Конфигурация моего клиента WireGuard:

[Interface]
PrivateKey = XXXX=
Address = 172.16.26.2/24
DNS = 172.16.0.1

[Peer]
PublicKey = YYYYY=
AllowedIPs = 172.16.0.0/16
Endpoint = 1.2.3.4:51820

И это еще не конец странного поведения. Я сталкиваюсь с проблемой "query denied" только в командной строке, с nslookup. Похоже, что браузеры вообще не затронуты этой проблемой. ( nslookupне могу получить google.com, но Firefox открывает его без проблем.) Сначала я думал, что это какая-то утечка DNS, и что браузеры запрашивают какой-то локальный DNS. Но к моему полному удивлению, похоже, что это не так. Браузер получает ответ DNS для домена, обрабатываемого DNS Resolver, с частным IP, что означает, что ответдолжен был прийтииз-за pfSense (из DNS Resolver)...

Ааааааааа

Есть идеи? Извините за длинный текст... Спасибо!

Связанный контент