Хотя я не уверен на 100%, почему он не работает должным образом, похоже, существует очень большой конфликт со службой mDNS (Avahi в Linux, Bonjour / Zeroconf в Mac / Windows) и сетями Windows, которые используйте .local в качестве имени внутренней маршрутизации для доменов. Кажется, что происходит, что при пинге server01 он пропускает использование mDNS для разрешения и затем добавляет поисковый домен (foo.local) к запросу, успешно запрашивая DNS-сервер для server01.foo.local. Однако при использовании mDNS (который использует .local в качестве расширения имени компьютера по умолчанию), когда вы пытаетесь пропинговать server01.foo.local, он фактически транслирует по mDNS в поисках машины с именем «server01.foo»; когда это терпит неудачу, это не переходит к прямому DNS по любой причине. Обходной путь для этого - не называть ваш домен .local, что, вероятно, идет вразрез с обучением большинства администраторов Windows по структурированию домена. Что, как говорится:
Если mDNS не имеет значения в вашей сети (как это обычно бывает на предприятии, где обычно используются выделенные DNS-серверы, а не в домашней сети, где иногда используется mDNS), то изменение порядка поиска - самый простой обходной путь.
Это можно найти в /etc/nsswitch.conf. В разделе для хостов будет указан порядок, который для Fedora 16 по умолчанию:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Если вы измените это на:
hosts: files dns mdns4_minimal [NOTFOUND=return] myhostname
где вы двигаете днс вперед в порядке поиска, это должно исправить все на данный момент. В качестве альтернативы, если вы знаете, что вам вообще не понадобится mDNS, просто удалите часть «mdns4_minimal [NOTFOUND = return]».
Глядя на эту ошибку на трекере Red Hat , кажется, что это давняя проблема, которая пока не решена. Хотя, если кто-то может дать больше информации о том, почему это происходит таким образом, это будет оценено.