como fazer arquivo de zona DNS

como fazer arquivo de zona DNS

meu domínio é easydata.ir e eu crio um arquivo de zona para meu domínio, mas quando uso o comando "dig" ele retorna:

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> ns1.easydata.ir
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41395
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;ns1.easydata.ir.               IN      A

;; Query time: 136 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jan 22 00:17:20 EST 2020
;; MSG SIZE  rcvd: 44

então coloquei meu arquivo de configuração, diga-me como configurá-lo corretamente.

$TTL 86400;
@ IN SOA ns1.easydata.ir. root.easydata.ir. (
  2013042201 ;Serial
  3600 ;Refresh
  1800 ;Retry
  604800 ;Expire
  86400 ;Minimum TTL ) ; add nameservers
@ IN NS ns1.easydata.ir. 
@ IN NS ns2.easydata.ir. ;IN MX 10 mail.easydata.ir.
ns1 IN A 198.143.181.237
ns2 IN A 198.143.181.237
www IN A 198.143.181.237
ftp IN A 198.143.181.237

Hera é meu arquivo /etc/named.conf. por favor me diga se está correto.

options {
        listen-on port 53 { 127.0.0.1; 198.143.181.237;};
        #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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; 87.107.219.167; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

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

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

zone "easydata.ir" IN {
                type master;
                file "easydata.ir.zone";
                allow-update { none; };
        };

Responder1

Uma rápida olhada no domínio em questão mostra que a delegação é a seguinte:

;; AUTHORITY SECTION:
easydata.ir.            1440    IN      NS      ns1.easydata.ir.
easydata.ir.            1440    IN      NS      ns2.easydata.ir.

;; ADDITIONAL SECTION:
ns1.easydata.ir.        1440    IN      A       198.143.181.237
ns2.easydata.ir.        1440    IN      A       198.143.181.237

(Nota: tanto ns1 quanto ns2 aparentemente têm o mesmo IP, tornando NSinútil a existência de duas entradas, pois claramente ainda há um único ponto de falha.)

Entretanto, a consulta 198.143.181.237resulta em uma resposta com status REFUSED(ou seja, o servidor de nomes está configurado para não permitir consultas para esta zona; alternativamente, a zona não existe).

$ dig @198.143.181.237 easydata.ir NS +norec

; <<>> DiG 9.11.14-RedHat-9.11.14-2.fc31 <<>> @198.143.181.237 easydata.ir NS +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 49376
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 921222c5e444e2602d3491645e282d41475c2ae33ad32e29 (good)
;; QUESTION SECTION:
;easydata.ir.                   IN      NS

;; Query time: 106 msec
;; SERVER: 198.143.181.237#53(198.143.181.237)
;; WHEN: Wed Jan 22 11:08:49 UTC 2020
;; MSG SIZE  rcvd: 68

$

Verifique a configuração ( named.confou um arquivo referenciado lá usandoinclude), particularmente que o relevantezonea entrada está em vigor e se háallow-*diretivas nas seções zoneou optionsque não permitiriam consultas.

Particularmente esta linha na sua configuração parece problemática, pois limita severamente quem tem permissão para consultar o seu servidor de nomes:

allow-query     { localhost; 87.107.219.167; };

Comentar ou remover totalmente essa linha é provavelmente a solução mais limpa.

Responder2

Supondo que você já tenha o servidor de nomes primário, que é a fonte autorizada do domínio que ele representa, e você alterou o name.conf para estabelecer seu domínio (digamos, Exemplo.com), você precisa:

  • crie dois novos arquivos - os arquivos de zona direta e reversa, que você colocará no diretório /var/named. Este local é especificado pela diretiva "directory" no arquivo de configuração nomeado.conf.

Crie o arquivo da zona de encaminhamento

O arquivo de zona de encaminhamento contém registros “A” que emparelham os nomes dos hosts na zona, também conhecido como domínio, com seus respectivos endereços IP. Também pode conter registros CNAME, que são apelidos para os nomes de host reais nos registros A, e registros MX para servidores de correio.

Você deve criar um arquivo básico de zona de encaminhamento, /var/named/example.com.zone, e adicionar as seguintes linhas a ele. Seu arquivo de zona deve ser semelhante ao exemplo abaixo:

; Authoritative data for example.com zone
;
$TTL 1D
@   IN SOA  serv.example.com   root.serv.example.com. (
                                       2020012201      ; serial
                                       1D              ; refresh
                                       1H              ; retry
                                       1W              ; expire
                                       3H )            ; minimum

$ORIGIN         example.com.
example.com.            IN      NS      serv.example.com.
epc                     IN      A       127.0.0.1
server                  IN      A       192.168.2.1
www                     IN      CNAME   server
mail                    IN      CNAME   server
test1                   IN      A       192.168.2.24
t1                      IN      CNAME   test1

; Mail server MX record
example.com.            IN      MX      10      mail.example.com.

A primeira linha sem comentários é o TTL, que neste caso é um dia para todos os registros (D significa Dia). Os especificadores na linha SOA (Start of Authority) são igualmente óbvios.

O registro NS deve ter o FQDN (Nome de Domínio Totalmente Qualificado) do host. Também deve haver um registro A no arquivo com um endereço IP válido para o host. para teste, você deve usar o endereço IP do host local 127.0.0.1. Caso contrário, um endereço IP real.

Você deve usar a data de hoje (como no dia atual) e anexar um contador começando em 01 para o número de série. O número de série acima é a primeira alteração de 2020.01.22. O número de série é incrementado sempre que o arquivo de zona é alterado. Se houvesse servidores de nomes secundários que usassem este como primário, eles não seriam atualizados a menos que o número de série fosse incrementado.

Agora você precisa adicionar os arquivos da zona de encaminhamento ao nomeado.conf

Antes que seu servidor DNS funcione, entretanto, você precisa criar uma entrada em /etc/named.conf que apontará para seu novo arquivo de zona. Adicione as seguintes linhas abaixo da entrada da zona de dicas de nível superior, mas antes das linhas "incluir".

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
  • reiniciar nomeado
  • faça testes usando os comandos dig e nsloookup:

    cavar test1.example.com

    dig mx example.com

    nslookup test1.exemplo.com

    cavar www.amd.com

Esteja ciente de que é necessário usar o FQDN para esses comandos, exceto para o comando nslookup, desde que o domínio e as entradas de pesquisa de Exemplo.com sejam fornecidos no arquivo /etc/resolv.conf. Caso contrário, basta usar os FQDNs para todos os testes.

Depois disso, você deverá estar pronto para começar a usar os servidores de nomes raiz, se necessário.

Responder3

Na sua saída dig você vê, entre outros, que a resposta que você recebe é dos resolvedores públicos do Google

;; SERVER: 8.8.8.8#53(8.8.8.8)

Ao testar seu próprio servidor de nomes e zonas DNS, você precisa instruir digpara consultar seu próprio servidor de nomes e não usar aqueles /etc/resolve.confcom

dig ns1.example.com. @127.0.0.1

(ou qualquer que seja o endereço IP do servidor de nomes com o qual você está testando)

informação relacionada