Bind9 dns-cache возвращает мой ip на неверные запросы

0

У меня проблемы с кешем bind9 dns, возвращающим ответ на любой запрос. Зачем? Можно ли как-то отключить это поведение?

nslookup not.a.valid.query
Server:  UnKnown
Address:  192.168.0.1

Non-authoritative answer:
Name:    not.a.valid.query.robertfoss.se
Address:  *my public ip address*

Если я отключу строку option domain-name "robertfoss.se";в моем dhcpd.conf(и перезапущу службу), тот же самый запрос приведет к гораздо более здравому dns-answer:

nslookup not.a.valid.query
Server:  UnKnown
Address:  192.168.0.1

bind9 named.conf.options

options {
    directory "/var/cache/bind";

    forwarders {
            81.88.9.218;
            8.8.8.8;
            81.88.9.220;
            8.8.4.4;
    };

    // Security options
    allow-query {127.0.0.1; 192.168.0.0/24; };
    allow-recursion { 127.0.0.1; 192.168.0.0/24; };
    allow-transfer { none; };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

Я запускаю bind9 на хосте Ubuntu.

Роберт Фосс
источник

Ответы:

1

Запись DNS для домена, который вы тестируете, robertfoss.se обслуживает запись подстановочного знака А. Запрашивая сервер имен для robertfoss.se напрямую, я получаю:

$ nslookup
> server ns1.loopia.se
Default server: ns1.loopia.se
Address: 93.188.0.20#53
> test.robertfoss.se
Server:         ns1.loopia.se
Address:        93.188.0.20#53

Name:   test.robertfoss.se
Address: 85.235.31.248
> nothing.should.be.here.robertfoss.se
Server:         ns1.loopia.se
Address:        93.188.0.20#53

Name:   nothing.should.be.here.robertfoss.se
Address: 85.235.31.248

Итак, что происходит на вашем локальном компьютере, когда robertfoss.se установлен в качестве имени домена для клиентов dhcp? Это просто, nslookup добавляет имя домена по умолчанию к запросу. Так, например, если вы nslookup this.is.a.cool.name , он изменит его на nslookup this.is.a.cool.name.robertfoss.se .

Две вещи могут решить проблему. Во-первых, в named.conf убедитесь, что '.' зона - это тип = подсказка, а не тип = мастер. Во-вторых, проверьте параметры поиска resolv.conf и параметры домена .

Лично для небольших сетей я предпочитаю dnsmasq . Легкий, гибкий, простой в настройке.

h0tw1r3
источник
Проблема в том, что запросы, которые не относятся ко мне и не являются действительными, такие как «неправильный запрос», возвращаются как a.bad.query.robertfoss.se. Это почему? Я обновил вопрос с некоторыми новыми выводами.
Роберт Фосс
Обновленный на основе новой информации, dnsmasq намного проще использовать в качестве сервера кэширования имен, и он имеет встроенный сервер dhcp, который будет автоматически обслуживать имена хостов клиентов.
h0tw1r3
У вас есть опция домена, что означает, что каждый раз, когда вы запрашиваете имя, вы сначала пытаетесь разрешить name.robertfoss.se. Поскольку в файле robertfoss.se есть подстановочный знак, всегда будет ответ.
slubman