Назад | Перейти на главную страницу

Как перенаправить неразрешенные DNS-запросы на хост?

Я использую 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.