У меня есть компьютер с Windows 7 Pro и любопытная проблема с использованием DNS-сервера.
Ящику назначен IP-адрес и 2 DNS-сервера с DHCP-сервера на базе Linux в моей локальной сети. 2 DNS-сервера — мой локальный DNS-сервер (для частных хостов) и DNS-сервер моего интернет-провайдера для резервирования на случай отказа моего внутреннего DNS.
Хотя IPCONFIG на Win7 показывает, что DNS-адреса выдаются правильно, разрешение не работает так, как я ожидал. При попытке запустить страницу с внутреннего веб-сервера через имя хоста браузеры Win7 (Chrome, IE) говорят, что не могут разрешить адрес. Трассировка netmon показывает, что Windows на самом деле пересылает DNS-запрос напрямую наИнтернет-провайдерыDNS иникогдана локальный DNS-сервер моей сети. Он долженвсегдаПопробуйте сначала локальный DNS-сервер. Как ни странно, при использовании nslookup разрешение работает как и ожидалось (сначала локальный).
Я предполагаю, возможно, неправильно, что DNS-серверы, выданные DHCP, будут использоваться по порядку, то есть локальный DNS всегда будет сервером первого выбора. Это не так?
Исследуя этот вопрос, я читал о некоторых проблемах, очень похожих на эту, которые обычно связаны с решением, направленным наруководствонастройка порядка использования DNS-серверов, что, как мне кажется, сводит на нет удобство DHCP.
Есть ли в Windows 7 настройка IP/реестра, которая заставила бы ее использовать DNS-серверы в порядке, указанном DHCP?
Спасибо заранее.
решение1
Базовая настройка
Если я правильно помню, записи DNS рассматриваются как равные. Если Windows не может подключиться к одной из них, будет использоваться другая. Поэтому ответ «хост не найден» от одного DNS НЕ заставит Windows обратиться к другой. Этот ответ является успешным подключением. Поиск DNS останавливается на этом этапе.
В вашей ситуации DNS и DHCP ДОЛЖНЫ быть настроены следующим образом:
- DHCP назначает только внутренний DNS
- Внутренний DNS будет разрешать как внутренние, так и интернет-адреса.
BIND9 по умолчанию должен сначала разрешить базу на локальных файлах зоны, затем запросить домен верхнего уровня (если у ящика есть доступ в интернет). Вы можете проверить это из вашего ящика Windows, выполнив следующее
nslookup
> server <IP of your internal dns box>
> <internal hostname>
> google.com
Bind должен иметь возможность разрешать как внутреннее имя хоста, так и google.com.
Если вы хотите использовать DNS вашего интернет-провайдера, укажите его в разделе переадресации. Он должен быть в /etc/bind/named.option
.
Двойной/резервный DNS
При предоставлении нескольких DNS-серверов, вручную или через dhcp, клиентская машина обрабатывает их одинаково. Нет "первичного" или "вторичного". Это одинаково для Windows и Linux.
Для обеспечения избыточности "легкий" способ - настроить 2 внутренних DNS, один из которых может быть главным, а другой - подчиненным. Таким образом, нужно будет обновить только один. DHCP предоставит IP этих 2 DNS-серверов для внутреннего использования.
Что касается избыточности внешнего DNS, поместите несколько внешних DNS в раздел пересылки внутренних DNS-серверов.
PS: Со всем вышеизложенным я предполагаю, что вам нужен DNS-поиск для внутренних машин/серверов. Если нет, то это может быть намного проще.