cómo hacer un archivo de zona DNS

cómo hacer un archivo de zona DNS

mi dominio es easydata.ir y creo un archivo de zona para mi dominio, pero cuando uso el comando "excavar" devuelve:

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

así que puse mi archivo de configuración, por favor dígame cómo configurarlo correctamente.

$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 es mi archivo /etc/named.conf. por favor dime si es correcto.

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

Respuesta1

Un vistazo rápido al dominio en cuestión muestra que la delegación tiene el siguiente aspecto:

;; 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 al margen: tanto ns1 como ns2 aparentemente tienen la misma IP, lo que hace que la existencia de dos NSentradas sea inútil ya que claramente todavía hay un único punto de falla).

Sin embargo, la consulta 198.143.181.237da como resultado una respuesta con estado REFUSED(es decir, el servidor de nombres está configurado para no permitir consultas para esta zona o, alternativamente, la zona no existe en absoluto).

$ 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 la configuración ( named.confo un archivo al que se hace referencia allí usandoinclude), en particular que los pertinenteszonela entrada está en su lugar y si hayallow-*directivas en las secciones zoneo optionsque no permitirían consultas.

En particular, esta línea en su configuración parece problemática ya que limita severamente quién puede consultar su servidor de nombres:

allow-query     { localhost; 87.107.219.167; };

Comentar o eliminar esa línea por completo es probablemente la solución más limpia.

Respuesta2

Suponiendo que ya tiene el servidor de nombres principal, que es la fuente autorizada para el dominio que representa, y cambió el nombre.conf para establecer su dominio (digamos Ejemplo.com), necesita:

  • cree dos archivos nuevos: los archivos de zona directa e inversa, que colocará en el directorio /var/named. Esta ubicación se especifica mediante la directiva "directorio" en el archivo de configuración nombrado.conf.

Crear el archivo de zona de avance

El archivo de zona de reenvío contiene registros "A" que emparejan los nombres de los hosts en la zona, también conocido como dominio, con sus respectivas direcciones IP. También puede contener registros CNAME, que son alias de los nombres de host reales en los registros A, y registros MX para servidores de correo.

Debe crear un archivo de zona de avance básico, /var/named/example.com.zone, y agregarle las siguientes líneas. Su archivo de zona debería verse como el siguiente ejemplo:

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

La primera línea sin comentarios es el TTL, que en este caso es un día para todos los registros (D significa Día). Los especificadores en la línea SOA (Inicio de autoridad) son igualmente obvios.

El registro NS debe tener el FQDN (nombre de dominio completo) del host. También debe haber un registro A en el archivo con una dirección IP válida para el host. Para realizar pruebas, debe utilizar la dirección IP del host local 127.0.0.1. En caso contrario, una dirección IP real.

Debe usar la fecha de hoy (como el día actual en que lo hace) y agregar un contador que comience en 01 para el número de serie. El número de serie anterior es el primer cambio del 22.01.2020. El número de serie aumenta cada vez que se cambia el archivo de zona. Si hubiera servidores de nombres secundarios que usaran este como principal, no se actualizarían a menos que se incrementara el número de serie.

Ahora necesita agregar los archivos de la zona de reenvío a nombrado.conf

Sin embargo, antes de que su servidor DNS funcione, necesita crear una entrada en /etc/named.conf que apunte a su nuevo archivo de zona. Agregue las siguientes líneas debajo de la entrada de la zona de sugerencias de nivel superior pero antes de las líneas "incluir".

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
  • reiniciar nombrado
  • Realice pruebas utilizando los comandos dig y nsloookup:

    excavar prueba1.ejemplo.com

    cavar mx ejemplo.com

    nslookup prueba1.ejemplo.com

    cavar www.amd.com

Tenga en cuenta que es necesario utilizar el FQDN para estos comandos, excepto para el comando nslookup, siempre que el dominio y las entradas de búsqueda de Ejemplo.com se proporcionen en el archivo /etc/resolv.conf. Si no es así, utilice los FQDN para todas las pruebas.

Después de esto, debería estar listo para comenzar a usar los servidores de nombres raíz, si es necesario.

Respuesta3

En el resultado de su excavación, ve, entre otras cosas, que la respuesta que obtiene proviene de los solucionadores públicos de Google.

;; SERVER: 8.8.8.8#53(8.8.8.8)

Cuando esté probando su propio servidor de nombres y zonas DNS, debe indicarle digque consulte su propio servidor de nombres y que no use los de /etc/resolve.confcon

dig ns1.example.com. @127.0.0.1

(o cualquiera que sea la dirección IP del servidor de nombres con el que estás probando)

información relacionada