Как отравить ответы NXDOMAIN с указанным IP в djbdns
У меня работает djbdns dnscache; Есть ли способ заставить его вернуть определенный IP вместо NXDOMAIN?
2 ответа
dnscache - это буквально кеш DNS. Если вы хотели указать A
(прямое разрешение) записей для домена под вашим контролем, вам нужно будет запустить полнофункциональный DNS, такой как BIND или djbdns.
Чтобы ответить с IP при отправке ответа NXDOMAIN, вы должны нарушить RFC. NXDOMAIN переписывание является спорной практикой, не рекомендуется и, как правило, не поддерживается, так как она нарушает RFC. Ни djbdns, ни BIND не имеют встроенной поддержки для этого.
Из того, что я понимаю, есть только коммерческие решения, в настоящее время реализующие это. Это включает в себя Barefruit и несколько других.
Это интересное сообщение из списка рассылки, где кто-то, кто выглядит как Кит Митчелл, директор по инженерным разработкам ISC, заявляет, что он не хочет вводить поддержку в BIND.
Если у вас есть законные потребности, мы можем предложить вам альтернативное техническое решение.
Это требование нашей внутренней сети; я знаю, что это спорный и этажерки, но это не относится к делу.
Мне удалось заставить это работать - я не знаю, сломает ли это что-нибудь еще все же; пока все в порядке.
Просматривая журналы dnscache, я обнаружил, что после попытки корневых серверов разрешить nonexistent.foo, он попытается разрешить nonexistent.foo.local.host (где local.host - это имя localhost). Поэтому я настроил tinydns на интерфейсе обратной связи (127.0.0.10) для обслуживания 1.2.3.4 для *.local.host. Затем я добавил петлевой IP в качестве сервера для local.host в dnscache/root/servers.
Единственным недостатком этой настройки является то, что поиск foo.local.host разрешается до 1.2.3.4, но это не является неудобством.