Использование DNS-сервера с ZeroTier

Использование DNS-сервера с ZeroTier

Я настроил свой собственный контроллер Zerotier с помощьюztncuiи это работает отлично, но есть одна часть моей настройки, которую я не могу заставить работать, а именно, чтобы клиенты использовали DNS, который я настраиваю для сети ZeroTier. DNS настроен следующим образом:

{
  "domain": "",
  "servers": [
    "10.10.14.26"
  ]
}

Где 10.10.14.26находится IP-адрес ZeroTier DNS-сервера (так же, как сервер Linux, работающий с dnsmasq, перенаправляющий на локальный маршрутизатор). Всякий раз, когда я тестирую ответы DNS-сервера непосредственно на клиенте ZeroTier, я получаю правильные результаты (например, настраивая DNS для его непосредственного использования или указывая DNS-сервер при использовании dig), однако при выборе «Разрешить конфигурацию DNS» на клиентах они по-прежнему отказываются разрешать имена хостов, которые разрешаются при прямом запросе DNS-сервера.

Я также попробовал использовать локальный IP-адрес DNS-сервера вместо IP-адреса ZeroTier, с теми же результатами (переадресация IP-адресов настроена на том же сервере Linux, так что клиенты могут получать доступ и к локальным IP-адресам).

Что мне нужно сделать, чтобы мои клиенты ZeroTier использовали настроенный мной DNS-сервер?

Мой запасной план — просто написать различные скрипты для разных платформ, которые мне нужно поддерживать, и заставить их перезаписывать и восстанавливать глобальный DNS при подключении и отключении от моей сети ZeroTier соответственно, но тогда какой смысл в опции «Разрешить конфигурацию DNS»?

Я знаю, что функция DNS не работает для клиентов Linux, но я буду единственным клиентом Linux, так что для меня это не будет большой проблемой. Остальные клиенты будут использовать либо Windows, либо MacOS, для которых эта функциядоложили о работе:

ZeroTier управляемый DNS в настоящее время поддерживается только в Windows, MacOS, Android и iOS. Поддержка Linux ожидается, но может быть ограничена общими конфигурациями DNS-резолвера Linux, такими как те, что есть в Debian и CentOS/RHEL.

решение1

Хотя это не является правильным ответом на мой собственный вопрос, это действительно решило мои потребности. Как описано вэта почтаВ итоге мне пришлось принудительно подключать VPN-сервер с помощью дополнительных iptablesкоманд:

iptables -t nat -A PREROUTING -s vpn_network -p udp --dport 53 -j DNAT \
    --to-destination your_DNS_server
iptables -t nat -A PREROUTING -s vpn_network -p tcp --dport 53 -j DNAT \
    --to-destination your_DNS_server

Примечание: Машина с Windows 10, на которой я это тестировал, не сразу показала правильные результаты, но после сброса большинства моих экспериментальных изменений она продолжала работать правильно. Когда я затем протестировал ее на чистой машине, она сразу же заработала.

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