Проблемы с разрешением DNS; копать SERVFAIL ошибка

Я настраиваю пару выделенных серверов, и у меня возникают проблемы с правильной настройкой моих серверов имен. Одним из них является сервер LEMP (LAMP с nginx вместо Apache), а другой будет функционировать исключительно как почтовый сервер, на котором выполняется антиспам exim/dovecot/ASSP (без Apache). Сервер LEMP - это CentOS 5.5, без панели управления, а сервер электронной почты - также CentOS 5.5, с cPanel/WHM.

Итак, у меня были проблемы с настройкой DNS должным образом. У меня есть два домена, каждый из которых указывает на один из этих серверов. Серверы имен правильно зарегистрированы у регистратора доменов, и IP-адреса серверов имен также вводятся правильно. Я говорил с техподдержкой в ​​регистраторе, и они подтверждают, что все настроено с их стороны. Не зная много о DNS, я гуглил серверы имен и DNS до тех пор, пока я почти не ослеп, и потратил часы, возиться с конфигурацией.

В конце концов, я получил DNS сервера LEMP, работающий должным образом (без cPanel). Довольный этим триумфом, я пытаюсь имитировать эту конфигурацию и повторяю процесс с сервером электронной почты, а этого просто не происходит. Сервер имен запускается и останавливается, но домен не разрешается.

Вещи, которые я пробовал
Выполнение стандартных процедур для настройки DNS в WHM Очистка всей информации DNS, удаление BIND, затем повторная установка всего этого и повторение процедур WHM для настройки DNS Очистка всей информации DNS и настройка BIND через оболочку (полностью вне cPanel) используя мои файлы конфигурации и зоны с сервера LEMP в качестве шаблона

named работает просто отлично, но ничего не решает. Когда я "копаю любой example.com", я получаю сообщение SERVFAIL. Nslookups не возвращает информации.

Вот мои файлы конфигурации и зоны.

named.conf

controls {
        inet 127.0.0.1 allow { localhost; }
        keys { coretext-key; };
};
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query     { any; };
        allow-query-cache { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view "localhost_resolver" {
        match-clients      { 127.0.0.0/24; };
        match-destinations { localhost; };
        recursion yes;

        //zone "." IN {
        //      type hint;
        //      file "/var/named/named.ca";
        //};

        include "/etc/named.rfc1912.zones";
};
view "internal" {
/* This view will contain zones you want to serve only to "internal" clients
   that connect via your directly attached LAN interfaces - "localnets" .
*/
    match-clients        { localnets; };
    match-destinations    { localnets; };
    recursion yes;

    zone "." IN {
        type hint;
            file "/var/named/named.ca";
    };

    // include "/var/named/named.rfc1912.zones";
    // you should not serve your rfc1912 names to non-localhost clients.

    // These are your "authoritative" internal zones, and would probably
    // also be included in the "localhost_resolver" view above :
        zone "example.com" {
                type master;
                file "data/db.example.com";
        };
        zone "3.2.1.in-addr.arpa" {
                type master;
                file "data/db.1.2.3";
        };
};
view "external" {
/* This view will contain zones you want to serve only to "external" clients
 * that have addresses that are not on your directly attached LAN interface subnets:
 */
        match-clients           { any; };
        match-destinations      { any; };

        recursion no;
        // you'd probably want to deny recursion to external clients, so you don't
        // end up providing free DNS service to all takers

        allow-query-cache { none; };
        // Disable lookups for any cached data and root hints

        // all views must contain the root hints zone:
        //include "/etc/named.rfc1912.zones";

        zone "." IN {
                type hint;
                file "/var/named/named.ca";
        };
        zone "example.com" {
                type master;
                file "data/db.example.com";
        };
        zone "3.2.1.in-addr.arpa" {
                type master;
                file "data/db.1.2.3";
        };
};

include "/etc/rndc.key";

db.example.com

$TTL 1D
;
; Zone file for example.com
;
; Mandatory minimum for a working domain
;
@       IN  SOA ns1.example.com. contact.example.com. (
                2011042905 ; serial
                8H ; refresh
                2H ; retry
                4W ; expire
                1D ; default_ttl
        )

                NS      ns1.example.com.
                NS      ns2.example.com.

ns1             A       1.2.3.4
ns2             A       1.2.3.5

example.com.            A       1.2.3.4

localhost               A       127.0.0.1

www                     CNAME   example.com.
mail                    CNAME   example.com.
;

db.1.2.3

$TTL 1D
$ORIGIN 3.2.1.in-addr.arpa.

@       IN      SOA     ns1.example.com  contact.example.com.   (
                        2011042908 ;
                        8H      ;
                        2H      ;
                        4W      ;
                        1D      ;
                )

                NS      ns1.example.com.
                NS      ns2.example.com.

4               PTR     hostname.example.com.
5               PTR     hostname.example.com.
;

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

Итак, в итоге:

  • Серверы имен с IP-адресами правильно зарегистрированы у регистратора доменов.
  • named настроен и работает... и не должен быть настроен
  • правильно, потому что ничего не решает.

Любая помощь будет отличной. Я изменил домены и IP-адреса в файлах на непатентованные, но дайте мне знать, если вам нужно знать соответствующий домен.

Спасибо!

ОБНОВИТЬ

Я обнаружил, что у меня нет 127.0.0.1 в /etc/resolv.conf, поэтому я добавил его вместе с моими двумя публичными IP-адресами, которые я назвал прослушиванием.

resolv.conf

search www.example.com example.com
nameserver 127.0.0.1
nameserver 7.8.9.10   ;Was in here by default, authoritative nameserver of hosting company
nameserver 1.2.3.4    ;Public IP #1
nameserver 1.2.3.5    ;Public IP #2

Теперь, когда я DIG example.com с хоста, это решает. Если я пытаюсь выполнить DIG с моего другого сервера (в том же центре обработки данных) или из Интернета, это приводит к истечению времени ожидания, или я получаю SERVFAIL.

2 ответа

Я бы начал с проверки того, что ваш сервер работает:

netstat -an | grep ^udp | grep 53

Должна отображаться строка, похожая на

udp        0      0 0.0.0.0:53                0.0.0.0:*

Если named не запускается, остановите его (просто для очистки), затем запустите и посмотрите, что он пишет в файлы журнала (/var/log/messages, /var/named/data/named.run). Может быть какая-то опечатка, которая мешает успешному запуску демона.

Тогда я бы снял столько, сколько мог, с named.conf. Минимальная базовая конфигурация должна быть проще для устранения неполадок. Затем я добавлял записи по крупицам, чтобы увидеть, какая запись заставляет сервер блокироваться.

Также попробуйте отдельно разрешить вещи локально с сервера и с клиента снаружи. Я надеюсь, вы найдете, что не так.

Это "example.com" вашего ns1.example.com так же, как "example.com" в вашем www.example.com?

Если так, то делает whois example.com перечислить IP-адреса ваших namservers? Если нет, вам нужно настроить регистратора "склеивать записи" с IP-адресами ваших серверов имен, так как никто не может спросить ns1.example.com для IP-адреса ns1.example.com если они не знают, что IP уже есть.

Кроме того, просто чтобы убедиться, что вы не настроили какой-либо блок брандмауэра или что-то еще dig www.example.com @1.2.3.4 (1.2.3.4 - это IP-адрес ns1.example.com) откуда-то еще и посмотрите, работает ли это.

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