44

В Windows 10 при подключении к VPN с включенным разделенным туннелированием (шлюз отключен) для разрешения DNS всегда используются DNS-серверы локальной сети, игнорируются DNS-серверы и DNS-суффикс, заданный для VPN-подключения.

Ожидаемое поведение - использовать DNS-серверы VPN, в противном случае становится невозможным разрешать записи DNS в удаленной сети (например, на доменных компьютерах).

Это работало должным образом в предыдущей версии Windows.

Это широко обсуждалось в этой ветке ответов Microsoft.

3 ответа3

47

Я навсегда исправил эту проблему, вручную установив метрику моего подключения к локальной сети выше (15), чем одно окно назначает для моей VPN (11).

Это можно сделать двумя способами:

  • Через графический интерфейс: сетевые подключения, свойства, свойства TCP/IP v4, расширенные настройки, установите для метрики значение 15;
  • Командная строка: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

Эффект мгновенный (по крайней мере, при использовании командной строки), и DNS-запросы теперь проходят через мой VPN, как и ожидалось.

Это работает с Split Tunneling и является постоянным исправлением при переподключениях и перезагрузках.

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

В зависимости от вашей среды у вас может быть другая метрика по умолчанию для вашей локальной сети и VPN-соединения. Просто настройте соответствующим образом, чтобы у вашей VPN была более низкая метрика, чем у вашей локальной сети.

Кроме того, если вы обнаружите, что не можете редактировать свойства TCP/IP VPN, поскольку они также были повреждены в Windows 10, вы можете установить большинство свойств через Powershell:

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local
9

Я развернул новую установку Windows 10 на виртуальной машине, чтобы протестировать ее, увидев эту проблему на каждой физической машине с Win10, которая у меня есть. Я проверил все ответы в этой теме, и ни один из них не сработал. Я обнаружил, что решение состоит в том, чтобы объединить ответы, опубликованные здесь "Keenans" и "ECC-Dan":

http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/win-10-dns-resolution-of-remote-network-via-vpn/513bdeea-0d18-462e-9ec3-a41129eec736? страница = 1

Панель управления> Центр управления сетями и общим доступом> Изменить настройки адаптера> Щелкните правой кнопкой мыши адаптер Ethernet или Wi-Fi> Свойства> дважды щелкните IPv4> Дополнительно> Снимите флажок Автоматическая метрика> Введите 15 для метрики интерфейса> ОК> ОК.

На той же странице свойств дважды щелкните IPv6> Дополнительно> Снимите флажок Автоматическая метрика> Введите 15 для метрики интерфейса> ОК> ОК.

Только после изменения обоих этих параметров проблема будет решена. Я тестировал смену одного обратно, и он снова ломается. После изменения обоих я запустил nslookup из командной строки, и он вернул DNS-сервер в удаленной сети, к которой подключен VPN, где в противном случае он вернул бы локальный DNS-сервер. Затем я использовал перехват Wireshark на интерфейсе Ethernet, сделал несколько запросов на случайные веб-сайты и убедился, что не было перехваченных пакетов DNS. Это доказывает, что после внесения изменений DNS-запросы отправляются ТОЛЬКО через VPN-соединение, а не одновременно по всем соединениям (что известно как утечка DNS в Win10). Так что это также является частью решения для утечки DNS Win10:

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

Обратите внимание, что для устранения утечки DNS вам сначала необходимо выполнить действия, описанные выше. Затем вам нужно установить два значения реестра. Связанные статьи содержат только одну статью, которая сама по себе не решает проблему в более новых сборках Win10. Установите эти значения реестра:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

Только после всего этого поведение вашего DNS-клиента вернется к тому, что было в Win7. Вы должны задаться вопросом, как это прошло через QA в Microsoft.

1

Он не работает, даже если я изменил метрики как для IPv4, так и для IPv6 и использовал реестр DisableSmartNameResolution и DisableParallelAandAAAA с текущей Windows 10 Edu (по состоянию на декабрь 2018 года), когда клиент подключен с помощью кабеля UTP и протокол IPv6 поддерживается в локальной сети (т.е. клиент имеет открытый / глобальный адрес IPv6).

Достаточно отключить протокол IPv6 на интерфейсе UTP/LAN, используемом для VPN, чтобы он работал (чтобы удалить /not_use глобального адреса IPv6 на клиенте).

Это работает без проблем, когда клиент подключен к Интернету через Wi-Fi и IPv6 доступен (клиент имеет глобальный адрес IPv6 и не имеет соединения UTP/LAN).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .