Назад | Перейти на главную страницу

Split-DNS в Windows

У меня есть внутренняя сеть, в которой все службы зарегистрированы во внутреннем домене (например: coolcorp.io).

Когда пользователи подключаются к VPN, я хочу, чтобы они могли разрешать внутренние службы в *.coolcorp.io, без какого-либо другого «общедоступного» разрешения имен, проходящего через наш внутренний DNS-сервер.

В macOS и Linux я могу сделать это, создав настраиваемый параметр преобразователя в /etc/resolver в этот конкретный домен.

Я не уверен, как это сделать в Windows. У нас нет AD, и DNS не должен быть шлюзом по умолчанию для нашей VPN.

В качестве фона давайте посмотрим, как DNS-стек работает в Windows.

Когда должно произойти разрешение для полного доменного имени, скажите a.contoso.com

  • Если совпадений не найдено в файле Cache или hosts
  • ОС просматривает таблицу политик разрешения имен, это не зависящий от интерфейса список, в котором вы можете указать IP-адрес DNS-сервера или прокси-сервер для использования в качестве имени или суффикса.
  • Если в таблице NRPT нет совпадений, запросы отправляются на интерфейсы и выбирается ответ от наиболее предпочтительного интерфейса (Lan> VPN> Wi-Fi> Cellular)

Теперь для вашего конкретного случая лучше всего добавить запись NRPT для * .coolcorp.io и корпоративных DNS-серверов. В Windows 10 это может быть частью профиля Windows VPN через свойство DomainNameInformationList в VPNv2 CSP для MDM. https://docs.microsoft.com/en-us/windows/client-management/mdm/vpnv2-csp. Политики NRPT также можно добавить с помощью командлета PowerShell Add-DnsClientNrptRule. Это гарантирует, что все разрешения для * .coolcorp.io идут на сервер VPN. Затем в самом профиле VPN вам не нужно указывать адрес DNS-сервера или DNS-суффикс.

Если я вас правильно понимаю, то я предполагаю, что это зависит от того, как вы назначаете IP-адреса из своей VPN, и есть ли у вас возможность устанавливать адрес DNS-сервера, предполагая, что вы это сделаете, но не все реализации одинаковы. Вы хотели бы настроить зоны, на которые вы хотите получать внутренний ответ на этом DNS-сервере, и оставить рекурсию нетронутой (хотя, как правило, это плохая идея, если этот DNS-сервер открыт для публики, поскольку это открывает вас для потенциального отказа в обслуживании. атаки, и в этом случае вам, возможно, придется быть более сложным). Таким образом, ваш DNS-сервер сначала ответит на то, что он может, и, если у него нет зоны для запроса, он по умолчанию перенаправит его в корень Интернета.