problemas de resolução de DNS; digitação do erro SERVFAIL

1

Estou configurando alguns servidores dedicados e tendo problemas para configurar meus servidores de nomes corretamente. Um deles é um servidor LEMP (LAMP com nginx no lugar do Apache), e o outro funcionará apenas como um servidor de e-mail, executando o exim / dovecot / ASSP antispam (sem Apache). O servidor LEMP é o CentOS 5.5, sem painel de controle, enquanto o servidor de e-mail é o CentOS 5.5 também, com cPanel / WHM.

Então, tive problemas para configurar o DNS corretamente. Eu tenho dois domínios, cada um apontando para um desses servidores. Os servidores de nomes são registrados corretamente com o registrador de domínio e os IPs do servidor de nomes também são inseridos corretamente. Falei com o suporte técnico no registrador e eles confirmaram que tudo está configurado no final. Sem saber muito sobre DNS, pesquisei servidores de nomes e DNS até quase ficar cego e passei horas mexendo na configuração.

Eventualmente, eu tenho o DNS do servidor LEMP funcionando corretamente (sem cPanel). Satisfeito com este triunfo, estou tentando imitar essa configuração e repetir o processo com o servidor de e-mail, e isso simplesmente não está acontecendo. O servidor de nomes inicia e pára, mas o domínio não resolve.

Coisas que tentei
Passando por procedimentos padrão para configurar o DNS no WHM Limpar todas as informações de DNS, desinstalar o BIND, reinstalar tudo isso e, novamente, passar pelos procedimentos de WHM para configurar o DNS Limpar todas as informações de DNS e configurar o BIND via shell (completamente fora do cPanel) usando meus arquivos de configuração e de zona do servidor LEMP como um modelo

chamado corre muito bem, mas nada está resolvendo. Quando "digito qualquer exemplo.com", recebo uma mensagem SERVFAIL. Nslookups não retornam informações.

Aqui estão os meus arquivos de configuração e zona.

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.
;

Além disso, os dois servidores são gerenciados. O suporte técnico é muito responsivo e em grande parte inútil. Horas passam com eles me fazendo perguntas para diminuir o que poderia estar errado, então eles passam o ingresso para o técnico no próximo turno, que ignora tudo o que já aconteceu e passa seu turno inteiro fazendo as mesmas perguntas que o último cara perguntou.

Então, em resumo:

  • Os servidores de nomes, com IPs, estão registrados corretamente no registro de domínios
  • o nome está configurado e em execução ... e não deve ser configurado
  • corretamente, porque nada resolve.

Qualquer ajuda seria ótima. Eu mudei domínios e IPs nos arquivos para genéricos, mas deixe-me saber se você precisa saber o domínio em questão.

Obrigado!

UPDATE

Descobri que eu não tinha 127.0.0.1 em /etc/resolv.conf, então eu adicionei, junto com meus dois IPs públicos que eu nomeei ouvindo.

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

Agora, quando eu DIG example.com do host, ele resolve. Se eu tentar DIG do meu outro servidor (no mesmo datacenter), ou da internet, o tempo limite ou eu recebo SERVFAIL.

    
por JustinP 29.04.2011 / 15:13

2 respostas

1

Eu começaria com a verificação de que seu servidor é executado:

netstat -an | grep ^udp | grep 53

Deve mostrar uma linha semelhante a

udp        0      0 0.0.0.0:53                0.0.0.0:*

Se o nome não for executado, pare-o (apenas para limpar), inicie e veja o que ele grava nos arquivos de log (/ var / log / messages, /var/named/data/named.run). Pode haver algum erro de digitação que impeça o daemon de iniciar com sucesso.

Então eu tiraria o máximo possível do named.conf. Configuração mínima e básica deve ser mais fácil de solucionar. Então eu adicionaria entradas pouco a pouco, para ver, qual entrada faz com que o servidor se atrase.

Tente também separadamente resolver as coisas localmente do servidor e de um cliente externo. Espero que você encontre o que há de errado.

    
por 29.04.2011 / 15:49
0

O "example.com" do seu ns1.example.com é o mesmo que o "example.com" no seu www.example.com ?

Se sim, então whois example.com lista os endereços IP dos seus servidores? Caso contrário, você precisa ter seu registrador configurado "registros de cola" com os endereços IP de seus servidores de nomes, já que ninguém pode perguntar a ns1.example.com do endereço IP de ns1.example.com se eles não souberem o que o IP já é.

Além disso, apenas para ter certeza de que você não configurou algum bloco de firewall ou algo assim, tente dig www.example.com @1.2.3.4 (1.2.3.4 sendo o endereço IP do ns1.example.com) de outro lugar e veja se isso funciona.

    
por 29.04.2011 / 16:26