У меня есть машина с подключением к локальной сети, которая используется для доступа в Интернет. Этот компьютер также должен быть подключен к VPN-соединению. Когда VPN подключен, Windows, похоже, запрашивает DNS-серверы VPN-подключения первый, затем DNS-серверы, настроенные для подключения к локальной сети. Мне нужно, чтобы это было наоборот из-за проблем с производительностью, поскольку VPN работает медленно.
Итак, как мне настроить, какой из DNS-серверов подключения должен быть основным в окне Windows? Удаленный VPN DNS обеспечивает некоторое разрешение имен, которое не является общедоступным, поэтому оно мне все еще нужно.
Я уже снял флажок «Использовать шлюз по умолчанию в удаленной сети» в настройках TCP / IP.
редактировать:
Я экспериментирую с Windows 7, но мне действительно нужно иметь возможность делать это как с Windows Server 2003, так и с Windows 7.
Я думаю, что моя таблица маршрутов в порядке. 10.0.0.1 - мой локальный шлюз, а 192.168.0.82 - это VPN-соединение.
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.0.0.1 10.0.0.3 20
10.0.0.0 255.255.255.0 On-link 10.0.0.3 276
10.0.0.3 255.255.255.255 On-link 10.0.0.3 276
10.0.0.255 255.255.255.255 On-link 10.0.0.3 276
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.0.0 255.255.255.0 192.168.0.82 192.168.0.89 21
192.168.0.89 255.255.255.255 On-link 192.168.0.89 276
217.157.12.231 255.255.255.255 10.0.0.1 10.0.0.3 21
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 10.0.0.3 276
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 10.0.0.3 276
255.255.255.255 255.255.255.255 On-link 192.168.0.89 276
===========================================================================
Persistent Routes:
None
Когда я перехожу в «Сетевые подключения» -> «Дополнительные настройки» для изменения порядка привязки к сети, я могу просматривать только следующие подключения: подключение по локальной сети и [Подключения удаленного доступа], где подключение по локальной сети указано первым. Используемого мной VPN-подключения нет в списке (хотя оно существует в окне «Сетевые подключения»).
Судя по формулировке вашего вопроса, похоже, вы ожидаете, что, когда Windows потребуется разрешить имя, она запросит первичный DNS-сервер. И если первичный DNS-сервер не знает ответа, он спросит вторичный.
Я надеюсь, что сказанное выше не то, что вы ожидали, но если это так, позвольте мне показать вам, почему это ошибка.
DNS так не работает. Единственный раз, когда преобразователь выполняет переключение на вторичный DNS-сервер, это когда основной не отвечает вообще. Пример прояснит:
Предположим, у вас есть первичный DNS-сервер на 1.1.1.1 и вторичный на 2.2.2.2. Ваш клиент настроен с ними в этом порядке. 2.2.2.2 размещает частную зону foocompany.local; 1.1.1.1 не содержит собственных зон и выполняет поиск в корневом каталоге интернет-хостов.
Если ваш клиент пытается найти someserver.foocompany.local, 1.1.1.1 вернет NXDOMAIN (например, «Я запросил корневые серверы, и они говорят, что этот домен не существует»). Ваш решатель будет не затем спросите 2.2.2.2, что он знает, если 1.1.1.1 не отвечает в течение периода ожидания (обычно 2 секунды). Он просто перестанет искать. Далее ваш клиент будет тайник результат NXDOMAIN согласно RFC2308. Даже если вы измените настройки сетевого адаптера таким образом, что 2.2.2.2 будет основным сервером, вы все равно будете получать результаты NXDOMAIN до тех пор, пока не истечет срок действия этого локального кеша NXDOMAIN. Вы можете проверить это, выполнив ipconfig / displaydns в командной строке.
IIRC, DNS-преобразователь Windows кэширует NXDOMAIN на короткое время - 5 минут. Но все же это может раздражать.
Во всяком случае. Я понимаю, что это немного касается вашей проблемы, но прояснение этого момента может привести к прозрению для вашего запланированного дизайна. EG: вы можете захотеть, чтобы DNS-сервер VPN в конце концов разрешился. Хотя он немного медленнее, он знает больше, поскольку может разрешать оба домена, частные для VPN. и общедоступные интернет-домены; тогда как локальный DNS-преобразователь в локальной сети ничего не знает об этих доменах, частных для VPN.
Ура!
Похоже, вы хотите настроить раздельное туннелирование. Сначала убедитесь, что ваше программное обеспечение VPN правильно настраивает маршрутизацию на вашем клиентском компьютере. Команда:
route print
Отобразит таблицу маршрутизации вашего клиентского хоста. У вас должна быть запись для вашей офисной (?) Сети, которая указывает на шлюз по умолчанию вашего интерфейса VPN. Главное, чтобы ваш маршрут по умолчанию с наименьшей метрикой указывает на шлюз по умолчанию вашего интерфейса LAN.
После того, как вы убедились, что маршрутизация настроена правильно, следующее, что нужно проверить, - это порядок привязки ваших сетевых интерфейсов. Это порядок, в котором различные сетевые службы проверяют каждый из ваших сетевых адаптеров. Инструкцию по его замене в Windows XP можно найти Вот.
Я не могу найти аналогичную статью в базе знаний для Vista, но в итоге:
В окне «Сетевые подключения»:
Organize -> Layout -> Menubar
Появится строка меню. Оттуда:
Advanced -> Advanced Settings
Переведет вас к нужному диалогу опций. В вашем случае ваш адаптер VPN должен быть указан под вашим интерфейсом LAN.
ПРИМЕЧАНИЕ: изменение порядка привязки таким образом, чтобы ваше локальное интернет-соединение использовалось первым, может вызвать различные проблемы, связанные с разрешением имен для хостов в вашей сети VPN. Без дополнительной информации определить сложно.
EDIT: подумав об этом еще немного, я не уверен, как вы могли не используйте свой VPN DNS при подключении к VPN. Если вы используете DNS-серверы в Интернете, вы не сможете разрешить в VPN то, что не было в общедоступном DNS. Единственный способ, которым я мог это сделать, - это настроить локальный DNS-сервер и перенаправить запросы для вашей зоны VPN DNS (* .local, из вашего примера) на 192.168.0.3, а все остальное - на DNS-сервер вашего интернет-провайдера. .
Действительно ли использование корпоративного DNS-сервера сильно снижает производительность? Каждое разрешение будет кэшироваться, и ваш фактический трафик данных будет идти прямо в Интернет, минуя вашу VPN.
Это старый вопрос, но я столкнулся с ним, когда работал над чем-то похожим, и мне нужно добавить немного дополнительной информации:
Хотя quux технически верен, в действительности Windows допускает такое поведение. Параметр «Использовать шлюз по умолчанию в удаленной сети» делает именно это; при установленном флажке, если локальный DNS возвращает NXDOMAIN, Windows пытается использовать VPN DNS. Здесь это не играет роли, поскольку Windows сначала пытается использовать VPN. Но если бы он мог изменить этот порядок, то проверка этой опции дала бы ему именно то поведение, которое он искал.
Есть способ делать то, что ты хочешь, потому что я сам это сделал. Моя домашняя сеть раньше полагалась на встроенный DHCP-сервер моего маршрутизатора, настроенный для рекламы серверов OpenDNS. Недавно я установил сервер DHCP + DNS на отдельном компьютере в сети, настроенный для пересылки на OpenDNS для нелокальных адресов.
По какой-то причине это изменило то, как Windows определяет приоритеты DNS-серверов. Раньше он сначала использовал VPN DNS (мое желаемое поведение), теперь он сначала использует локальный DNS (ваше желаемое поведение). Если я отключу локальный DHCP + DNS и вернусь к использованию маршрутизатора, VPN снова будет работать первым.
Эта информация может помочь вам определить проблему ... если вы все же разберетесь, дайте мне знать, так как я пытаюсь выяснить, как сделать наоборот.
Примечание: я знаю, что это, возможно, должен быть комментарий, но есть требование репутации ...
Когда VPN подключен, Windows сначала запрашивает DNS-серверы VPN-подключения, а затем DNS-серверы, настроенные для подключения к локальной сети.
Это нормально.
Большинство VPN поддерживают режим разделенного и / или частного просмотра, в котором вы иметь сначала запросить внутренний DNS, иначе общедоступный DNS вернет внешний адрес или NXDOMAIN
.
Мне нужно, чтобы это было наоборот из-за проблем с производительностью, поскольку VPN работает медленно.
Это может можно обойти это, но только если ваша внутренняя зона DNS является полностью частной (т.е. с использованием поддельного TLD, такого как ".local"). Согласно ответу Мурали, вам нужно будет запустить локальный DNS-сервер, который пересылает запрос либо в VPN, либо в общедоступный DNS в зависимости от суффикса.