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