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

BIND: принудительный ответ авторитетного сервера имен без данных о нерекурсивных запросах (исследовательские цели)

редактировать: Я упростил целевую цель, как предложил Эндрю Б.

Цель состоит в том, чтобы настроить авторитетный сервер имен, чтобы он давал реальный ответ только на рекурсивные запросы, что означает нарушение итеративной процедуры разрешения DNS. Не имеет смысла для реального использования, но то, что я пытаюсь здесь сделать, предназначено для исследовательских целей, в частности, для выявления некорректно работающих открытых резолверов.

Я хочу отвечать без данных на нерекурсивные запросы DNS, даже если мы знаем иное (например, если мы являемся авторитетным сервером имен для запрошенного домена). то есть:

Case 1: REQUEST(RD=0) -> RESPONSE(rcode=NOERROR, All sections Empty, RA=1) 
Case 2: REQUEST(RD=1) -> RESPONSE(Real Answer, RA=1) 

Мои доступные ресурсы - это один полномочный сервер имен для определенного домена и один преобразователь DNS на разных машинах. Поведение должно быть одинаковым для любого поддомена моего контролируемого домена.


Моя текущая настройка:

Оба позволяют рекурсивные вызовы (в исследовательских целях). В настоящее время запросы «A» для субдоменов research.lab.mydomain.com направляются на сервер имен M1 и возвращают результаты NXDOMAIN (субдомены не зарегистрированы). M2 в настоящее время не используется.

То, что я думал, должно быть сделано

Сделайте так, чтобы все запросы субдоменов research.lab.mydomain.com отправлялись на распознаватель, а не на сервер имен. Сопоставитель по очереди запрашивает сервер имен, если установлена ​​желаемая рекурсия, или возвращает кешированные ответы без ошибок в противном случае. Все запросы из внешнего мира должны проходить через распознаватель.

Что я пробовал

Я думал об изменении M1 в качестве преобразователя, а M2 в качестве сервера имен, так что research.lab.mydomain.com все равно будет зарегистрирован на адрес M1. Поэтому я переместил конфигурацию зоны с M1 на M2, а также установил пересылку с M1 на M2 в named.conf.options.

named.conf.local в M1 теперь пуст, а в M2 теперь:

zone "research.lab.mydomain.com" {
        type master;
        file "/var/lib/bind/research.lab.mydomain.com.hosts";
}; 

Содержимое /var/lib/bind/research.lab.mydomain.com.hosts является измененной версией того, что было в M1 (вместо m1 на m2):

$ttl 38400
research.lab.mydomain.com.  IN  SOA m2.lab.mydomain.com. roee88.gmail.com. (
            1410888930
            10800
            3600
            604800
            38400 )
research.lab.mydomain.com.  IN  NS  m2.lab.sit.cased.de.
research.lab.mydomain.com.  IN  NS  ns1.research.lab.mydomain.com.
ns1.research.lab.mydomain.com.  IN  A   {IP ADDRESS OF M2}

К сожалению, это не сработало. запросы, полученные на m2, привели к ответам SERVFAIL.

Вы пытались сказать M1, что M2 отвечает за поддомен по IP-адресу, а не по имени, например, с

zone "research.lab.mydomain.com." {
        type forward;
        forward first;
        forwarders {
                a.b.c.d ;
        } ;
} ;

в M1 named.conf, где a.b.c.d это IP-адрес M2?