Ранее настройкой BIND9 не занимался и найти решение ошибки не удалось.
Объяснить на примере будет проще:
Есть свой DNS сервер (10.1.2.2). В файле "named.conf.options" настроено, чтобы при резолве сторонних ресурсов он использовал DNS компании и google:
forwarders {
10.1.1.2;
10.1.1.3;
10.1.1.4;
8.8.8.8;
8.8.4.4;
};
Есть серверы, которые по умолчанию используют наш DNS в качестве основного.
В какой то момент происходит, что при попытке зарезолвить с этих серверов любой внутренний ресурс (например файловый сервер или какой то сайт), запись о котором находится на корпоративном DNS, наш DNS выдает внешний IP компании. Причем сам ресурс на него не привязан и не имеет доступ во вне.
При этом, если попытаться зарезолвить любой ресурс, запись о котором есть на нашем DNS сервере, проблем нет. Такое поведение происходит только с записями вне нашего DNS. Если перезапустить службу BIND на нашем dns-сервере проблема временно уходит.
Включал debug логи, но понять в чем проблема не получается.
Сравнивал настройки с корпоративным DNS. Кроме разных IP отличий не увидел.
Если нужно предоставить какой-либо конфиг, скажите что надо.
без информации что отвечает каждый forwarder во время проблем, можно только гадать
попробуйте собрать эту информацию.
Есть серверы, которые по умолчанию используют наш DNS в качестве основного.
сервера в локальной сети? если да, то можно настроить отдельную зону view - которые будут содержать адреса только локальной сети, и отдавать их если запрос придёт из LAN.
очень похоже, что в этот момент ваш сервер обращается не к вышестоящим серверам вашей организации, а делает запрос к гуглу, и тот честно отдает внешний ip. смотрите в логах, как именно распределяются запросы и куда они уходят. то ли ваш сервер просто перебирает сервера для форвардинга, либо вышестоящие сервера вашей организации не отвечают.
вариантов несколько - либо вы убираете внешние сервера, либо поднимаете у себя slave зоны внутренней сети (а тут требуется договариваться с админами вышестоящих, что бы они отдавали вам зоны целиком)
arachnid, т.е. получается проблема скорее всего со стороны корпоративных dns-серверов?
Для тестов убрал из форварда внешние DNS. Посмотрю какой будет результат.
Сергей, я просто не интересовался, как бинд работает с серверами, указанными в секции forward - перебирает в случае отсутствия ответа или выбирает в случайном порядке. upd - поискал. судя по рассылке, бинд будет выбирать сервера, которые быстрее отвечают. так что если гугл отдает ответ быстрее, то... собственно, это может быть даже не проблемой со стороны корпоративных серверов - на время ответа будет влиять и канал (скорее всего вы связаны с центральным офисом по к.л. vpn технлогии)
Очень похоже на проблему split dns. В кэш попадают ответы на рекурсивные запросы снаружи. Но так как сервер не имеет возможности понять откуда пришел запрос - отдает ответы из общей кучи.
Если хотите, чтобы ответы для венки и внутренни как-то контролировались - используйте функционал view.
Владимир Пилипчук проблема все-таки в скорости ответа DNS серверов. Убрал из списка DNS от google. Неправильный ответы перестали поступать.
Но тогда вопрос: как сделать так, чтобы в случае необходимости bind мог к ним обращаться если не ответят корпоративные DNS? Где это указать? Или можно настроить приоритет отправки запросов на другие DNS?