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

Сервер имен не имеет записи A

Недавно я обновил BIND на своем DNS-сервере, и теперь DNS не работает ни на одном из моих веб-сайтов. Выполнение nslookup приводит к тайм-ауту, и использование dig на другом сервере сообщает мне, что в запросе нет никаких авторитетных разделов. С помощью dig локально на сервере, однако, дает ожидаемые результаты.

Я попробовал инструмент, найденный на DNSsy.com который сообщает мне, что для моего сервера имен нет A-записей, что кажется неверным на основе моего файла зоны. Ниже приведен один из файлов зоны, которые я настроил (фактические доменные имена и IP-адреса заменены / замаскированы):

example.com.zone

$ORIGIN example.com.
$TTL 1W
@       IN      SOA     ns.example.com. example.example.com.  (
                                      2011060701 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      604800     ; Expire - 1 week
                                      10800 )    ; Minimum
    IN  NS  ns
    IN  MX  10 mail

localhost IN A     127.0.0.1
@         IN A     x.x.x.x
ns        IN A     x.x.x.x
mail      IN A     x.x.x.x
www       IN CNAME @

named.conf

acl "xfer" {
        none;
};

acl "trusted" {
        127.0.0.0/8;
        ::1/128;
};

options {
        directory "/var/bind";
        pid-file "/var/run/named/named.pid";

        listen-on-v6 { ::1; };
        listen-on { 127.0.0.1; };

        allow-query {
                trusted;
        };

        allow-query-cache {
                trusted;
        };

        allow-recursion {
                trusted;
        };

        allow-transfer {
                none;
        };

        allow-update {
                none;
        };

        forward first;
        forwarders {
                8.8.8.8;                // Google Open DNS
                8.8.4.4;                // Google Open DNS
        };
};

logging {
        channel default_log {
                file "/var/log/named/named.log" versions 5 size 50M;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        category default { default_log; };
        category general { default_log; };
};

include "/etc/bind/rndc.key";
controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1/32; ::1/128; } keys { "rndc-key"; };
};

zone "." in {
        type hint;
        file "/var/bind/root.cache";
};

zone "localhost" IN {
        type master;
        file "pri/localhost.zone";
        notify no;
};

zone "127.in-addr.arpa" IN {
        type master;
        file "pri/127.zone";
        notify no;
};

zone "x.x.x.in-addr.arpa" IN {
  type master;
  file "pri/x.x.x.zone";
  notify no;
};

zone "example.com" IN {
  type master;
  file "pri/example.com.zone";
  notify no;
};

Результат выполнения named-checkconf

Нет, что, как я полагаю, означает, что все в порядке.

Вывод выполняется named-checkzone

named-checkzone example.com /var/bind/pri/example.com.zone zone example.com/IN: загружен серийный номер 2011060701 OK

В allow-query директива ограничена только trusted acl, содержащий только localhost. Вот почему вы получаете ответ только от localhost. Вам нужно изменить это на любое.

Также обратите внимание на listen-on и listen-on-v6 в строфах должны быть IP-адреса, отличные от localhost, иначе внешние клиенты никогда не смогут подключиться к вашему серверу имен.