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

«Первичный» DNS при наличии нескольких сетевых подключений

У меня есть машина с подключением к локальной сети, которая используется для доступа в Интернет. Этот компьютер также должен быть подключен к 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.

Это старый вопрос, но я столкнулся с ним, когда работал над чем-то похожим, и мне нужно добавить немного дополнительной информации:

  1. Хотя quux технически верен, в действительности Windows допускает такое поведение. Параметр «Использовать шлюз по умолчанию в удаленной сети» делает именно это; при установленном флажке, если локальный DNS возвращает NXDOMAIN, Windows пытается использовать VPN DNS. Здесь это не играет роли, поскольку Windows сначала пытается использовать VPN. Но если бы он мог изменить этот порядок, то проверка этой опции дала бы ему именно то поведение, которое он искал.

  2. Есть способ делать то, что ты хочешь, потому что я сам это сделал. Моя домашняя сеть раньше полагалась на встроенный 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 в зависимости от суффикса.