bind "не могу найти пример: SERVFAIL"

Я пытаюсь настроить DNS-сервер в своей локальной сети, потому что мой маршрутизатор не поддерживает отражение nat, и у меня есть виртуальные хосты, которым требуется домен (не может быть достигнут по IP-адресу), работающий на Apache. Я не очень знаком с файлами зон, но думаю, что я на правильном пути. Мой домен - tenex.us, и я хочу получить доступ к нему по локальной сети, используя tenex.local (с соответствующим vhost, добавленным в apache). DNS-сервер работает, поскольку он разрешает и кэширует другие адреса, включая tenex.us, но я получаю

сервер не может найти tenex.local: SERVFAIL

Я назвал.conf следующим образом

include "/etc/bind/named.conf.options";

include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

zone "tenex.local" IN {
  // this is the authoritative server for
  // tenex.us info
  type master;
  file "db.tenex";
};

и db.tenex следующим образом

$TTL 86400

@       IN      SOA     ns1.tenex.local.      craig.tenex.local. (
                        2014120705
                        28800          
                        7200           
                        864000          
                        86400          
                        )

                IN   NS      ns1    
                IN   NS      ns2    
@               IN   A  10.1.1.2
ns1             IN   A  10.1.1.2
ns2             IN   A  10.1.1.2
www             IN   CNAME @    
dev             IN   CNAME @
ftp             IN   CNAME @

и named.conf.options следующим образом (другие файлы являются установочными файлами по умолчанию с 6/6/14)

acl clients {
        10.1.1.0/24;
        10.1.2.0/24;
        localhost;
        localnets;
};

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

        recursion yes;
        allow-query { clients; };

        forwarders {
                8.8.8.8;
                8.8.4.4;
        };
        forward only;

        dnssec-validation yes;

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

Я не эксперт по DNS, но вот как я думаю, что это работает. Поправь меня, если я ошибаюсь, это мне очень поможет.

  1. Я запрашиваю сервер для tenex.local,
  2. Он видит, что для tenex.local указана зона, а затем возвращает содержимое файла зоны для этой записи на устройство, которое ее запросило.
  3. Устройство видит, что авторизующим сервером имен является ns1.tenex.local и что текущий адрес совпадает с адресом записи A ns1.tenex.local в файле зоны (10.1.1.2), поэтому он (должен) разрешить запись A для www.tenex.local/tenex.local/dev.tenex.local/ и т. д.

1 ответ

Я считаю, что для того, чтобы написать простоns1 IN A ...вместоns1.tenex.local. IN A ...ты должен определить$ORIGIN tenex.local.в вашем файле зоны. То же самое должно относиться и к@символ.

См. также BIND — зона не загружена из-за ошибок.

Другие вопросы по тегам