Я использую BIND 9.7.0-P1 в Linux (Ubuntu 10.04.2).
Я хотел бы настроить сервер BIND для разрешения всех внешне неразрешенных DNS-запросов к заданному внутреннему хосту. Это возможно? Как это делается?
Я попытался настроить пересылки на:
forwarders {10.0.1.2; };
Однако это не помогло.
Захват NXDOMAIN невозможен с BIND. Это можно сделать с помощью lua-скрипта PowerDNS Recursor. В репозиториях Ubuntu 10.04 есть пакет для PowerDNS Recursor, который поддерживает функциональность сценариев lua.
Как утверждали другие, угон NXDOMIAN может иметь серьезные последствия, и вы понимаете потенциальные проблемы до внедрения.
Пожалуйста, не делайте этого, это имеет огромные последствия. Я так понимаю, это только для вашей внутренней сети; тем не менее, он все равно сломает многие вещи. Имейте в виду, что вы возвращаете IP-адрес для действующего сервера, и поэтому многие приложения и службы могут думать, что то, к чему они пытаются получить доступ, действительно доступно, когда это не так. Хотя это может показаться тривиальным, рассмотрим ситуацию, когда приложение пытается отправить данные на удаленный сервер и видит, что это происходит из-за вашей сети; однако на самом деле сервер отключился. Пользователь начинает видеть несвязанные (если есть!) Сообщения об ошибках о том, что программа не работает, и звонит вам и / или вашим коллегам за поддержкой. Вы действительно хотите устранить это?
Вот позиция ICANN по этому поводу:
ICANN настоятельно не рекомендует использовать перенаправление DNS, подстановочные знаки, синтезированные ответы и любые другие формы подстановки NXDOMAIN в существующих gTLD, ccTLD и на любом другом уровне в дереве DNS для доменных имен класса реестра.
Если под «разрешить все неразрешенные DNS-запросы к данному хосту» вы имеете в виду перехват DNS (при этом сервер отвечает записью, указывающей на этот хост, хотя в противном случае он бы ответил статусом NXDOMAIN, чтобы указать, что поиск завершился неудачно), то я не думаю, что bind
поддерживает это из коробки. Интернет-провайдеры, которые перехватывают то, что должно быть ответами NXDOAIN таким образом, вероятно, используют что-то еще или имеют исправленную версию для добавления этой функции.
Угон NXDOMAIN обычно не одобряется, так как он может сломать ряд вещей. Видеть http://en.wikipedia.org/wiki/DNS_hijacking для более подробной информации.
В forwarders
директива говорит bind
где искать при выполнении рекурсивных запросов - он называет другие DNS-серверы, которые должны быть запросами, если этот сервер запрашивает домен, для которого он не имеет записей локально. Он не контролирует поведение, когда все поиски (локальные и через другие хосты) не могут найти соответствующую запись.
Параметр пересылки должен быть либо в блоке параметров, либо в блоке зоны. Из краткого отрывка я не могу понять, выполняется ли какое-либо из этих условий.
И, очевидно, служба DNS должна запускаться на сервере пересылки, который может либо разрешить запрос, либо перенаправить на другой DNS-сервер. Кроме того, этот DNS-сервер должен быть настроен для ответа на запросы от первого DNS-сервера. Что произойдет, если вы откроете оболочку для окна Ubuntu и запустите
dig what.ever.domain @10.0.1.2
Если это время истекает, значит 10.0.1.2 не отвечает на запросы из вашего окна Ubuntu.