У меня есть коробка CentOS 6.4.
Как и во всех других коробках в этой стойке, в нем есть два сетевых адаптера: один внутренний (192.168.1.x) и один внешний (видимый для мира).
Мы запускаем наш собственный преобразователь кеширования (используя Unbound) на одном из серверов в нашей стойке (192.168.1.11), и у него настроены некоторые локальные записи DNS (mario.local, luigi.local и т. Д.), Чтобы мы могли просто пинговать / ssh / ftp на "hostname" ИЗ любого локального устройства В любой другой локальный ящик, не переходя через один из внешних коммутаторов (что требует оплаты нашим интернет-провайдером).
Если мой /etc/resolv.conf выглядит так:
search local
nameserver 192.168.1.11
nameserver 8.8.8.8
nameserver 74.82.42.42
и я пингую "марио" и получаю:
# ping mario
PING mario.local (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.738 ms
Однако локальный DNS-сервер намного медленнее, чем общедоступный DNS-сервер Google, поэтому я бы предпочел, чтобы он был первым в списке. Итак, если я изменю /etc/resolve.conf на это:
search local
nameserver 8.8.8.8
nameserver 192.168.1.11
nameserver 74.82.42.42
Я ожидал, что пинг «mario» попытается разрешить mario.local на 8.8.8.8, потерпит неудачу, затем запросит второй DNS-сервер в списке (192.168.1.11) и разрешит. Но вместо этого я получаю:
# ping mario
ping: unknown host mario
Есть идеи, что я делаю неправильно - или я неправильно понимаю, как должен работать resolve.conf? Интересно, может ли это быть связано с маршрутизацией?
Я ожидаю, что если первый DNS-сервер не может разрешить IP, вторая запись resolv.conf получит шанс, но это не работает. Помогите!
Преобразователь будет запрашивать второй сервер имен только в том случае, если время попытки доступа к первому серверу имен истекает. В вашем случае это не проблема тайм-аута, это ошибка разрешения, поэтому нет необходимости запрашивать оставшиеся серверы имен.
Вы можете проверить это, добавив IP-адрес, на котором не запущен сервер имен, в первой строке и реальный сервер имен под ним - вот так
search local
nameserver 1.2.3.4
nameserver 192.168.1.11
nameserver 8.8.8.8
Время ожидания первого из них определенно истечет, затем запрос к оставшемуся серверу имен будет производиться в указанном порядке.
Вам определенно нужно, чтобы ваш локальный преобразователь работал для выполнения рекурсивного поиска и кэширования результатов, что является лучшей практикой в локальной сети - я согласен с Zoredache в этом. Таким образом, он будет кэшировать доменные имена, которые находятся в вашем "локальном" TLD, запрашивая ваш локальный полномочный сервер имен (который может работать на том же хосте), а также те результаты, которые рекурсивно разрешаются с серверов имен в Интернете для общедоступных доменов. .
Предполагая, что аппаратные ресурсы, доступные этому / этим кэширующим серверам имен, не выходят за допустимые пределы, это всегда будет давать вам лучшую производительность, чем обращение к общедоступным серверам имен, из-за более низкой задержки ответов после кэширования разрешенных доменных имен.
После настройки вы будете использовать свой самый первый resolv.conf
пример и опустите общедоступные IP-адреса. Конечно, вам понадобятся резервные локальные преобразователи.