У меня есть два сетевых адаптера на моем ПК, каждый из которых подключен к разной сети (одна LAN и одна беспроводная). Я установил таблицы маршрутизации, чтобы некоторые адреса направлялись в локальную сеть, а другие - в беспроводную сеть, но у меня возникли проблемы с конфигурацией DNS. Я бы хотел, чтобы поиск DNS сначала попытался использовать DNS по умолчанию для локальной сети, а затем, если совпадений не было, попробуйте DNS по умолчанию для беспроводной сети.
Проблема в том, что DNS-серверы (и, следовательно, их порядок) определяются для каждого сетевого подключения. Я не могу понять, какие DNS используются, когда я пытаюсь проверить связь с сервером по имени.
Есть ли понятие первичного сетевого адаптера?
Могу ли я создать глобальный список DNS-серверов или управлять им без привязки к адаптеру?
Вы можете установить приоритет одного адаптера над другим. Прочитать Эта статья как это сделать.
Однако, когда вы говорите: «Я бы хотел, чтобы поиск DNS сначала попробовал DNS по умолчанию для локальной сети, а затем, если совпадений не было, попробуйте DNS по умолчанию для беспроводной сети», это не сработает. Ваш LAN DNS-сервер, если он доступен, либо разрешит вам имя, либо ответит, что имя не существует, либо перенаправит вас на другой DNS-сервер. Хотя вы можете подумать, что третий вариант будет вашим билетом, имейте в виду, что преобразователь DNS в Windows (в большинстве других систем) является преобразователем-заглушкой, который не может отслеживать ссылки, и поэтому ваш DNS-запрос в этот момент не удастся.
Если вы действительно хотите получить внутренние IP-адреса ваших систем, когда вы подключены через локальную сеть, и внешние разрешенные адреса при подключении извне или вообще для любых внешних имен. Это может быть достигнуто настройка разделенного DNS на DNS-сервере вашей локальной сети.
Из-за метрики соединения поиск DNS всегда должен выбирать LAN поверх WLAN. Пока таблица маршрутизации показывает более низкую метрику для LAN-соединения, чем WLAN, она должна работать так, как вы хотите.
Если вам нужно проверить свои метрики для каждого соединения, вы сможете посмотреть IP-адрес в столбце интерфейса, чтобы получить соответствующую метрику. Физические интерфейсы должны иметь одинаковую метрику для всех записей. Виртуальные интерфейсы (и loopback) будут давать разные метрики в зависимости от физического соединения, которое они используют для данной записи. (Эта статья в базе знаний объясняет, как присваиваются автоматические метрики.)
Если вы хотите обеспечить определенный порядок для серверов DNS, вы можете определить список предпочтительного порядка в «Свойства подключения> Свойства Интернет-протокола (TCP / IP)> Дополнительно> DNS». Этот список нужно будет определять для каждого соединения.
У меня была примерно такая же проблема; и я не думаю, что вы можете настроить список DNS-серверов, которые будут запрашиваться, когда требуется информация о домене. Посмотреть этот вопрос.
Когда Windows запрашивает первый сервер имен; он либо вернет адрес, либо NXDOMAIN, указывая, что адрес не может быть разрешен.
У меня была такая же проблема, предпочтение было отдано DNS VPN, но мне нужно было использовать DNS соединения LAN.
Изменение метрики подключения к локальной сети на низкое значение (например, 1) решило проблему:
Свойства подключения к локальной сети -> Свойства IPv4 Дополнительно ...
Снимите флажок "автоматический" и установите низкое значение.
Не могли бы вы подробнее рассказать об этих двух разных работах, связаны ли они с двумя разными доменами LAN, например siteA.local и siteB.local? Если да, то вы можете обращаться с ними так же, как с LAN и VPN. Ниже приводится краткое объяснение того, как получить разрешение имен для отдельного домена через VPN - это поможет показать, как использовать разные DNS для разных соединения.
Это происходит автоматически, когда вы присоединяетесь к домену, но вам нужно заставить работать с разрешением имен в отдельных сетях.
Если вы не хотите вносить это изменение и знаете полное доменное имя (полное доменное имя) и указали IP-адрес DNS для LAN и WLAN, вы должны получить разрешение, когда сделаете это, например: ping server1.siteA.local или пинг server1.siteB.local