¡Esta es una revisión vieja del documento!
Tabla de Contenidos
207.2 Create and maintain DNS zones
Pertenece a Topic 207: Domain Name Server
- Weight: 3
- Description: Candidates should be able to create a zone file for a forward or reverse zone and hints for root level servers. This objective includes setting appropriate values for records, adding hosts in zones and adding zones to the DNS. A candidate should also be able to delegate zones to another DNS server.
- Key Knowledge Areas:
- BIND 9 configuration files, terms and utilities
- Utilities to request information from the DNS server
- Layout, content and file location of the BIND zone files
- Various methods to add a new host in the zone files, including reverse zones
- Terms and Utilities:
/var/named/- zone file syntax
- resource record formats
- named-checkzone
- named-compilezone
- masterfile-format
dignslookuphost
Declaración de una Zona Secundaria
Se denomina zona secundaria, a la zona declarada en un servidor de tipo slave.
Para realizar la declaración de una zona secundaria debemos incluir la siguiente configuración en el fichero named.conf:
zone "nombrezona" {
type slave;
masters { direccion_maestro; };
file "archivo";
};
Creación de un Fichero de Zona Directa
Suelen ubicarse en los directorio /var/named o /etc/bind
Su nomenclatura suele ser: db.nombrezona
$TTL ttl
nombrezona IN SOA servidor mailadmin (
serial
refresh
retry
expire
negative
)
nombrezona IN NS servidor
| Parámetro | Descripción |
|---|---|
ttl | Time To Live (tiempo de vida): indica la duración en segundos que se conservarán los datos en memoria caché. Este valor se precede por la directiva $TTL. |
nombrezona | FQDN de la zona administrada en este archivo. A menudo reemplazado por una arroba (@) para aligerar el archivo. Atención, como se trata de un FQDN, el nombre de la zona debe acabar con un punto. |
IN | Obsoleto a la vez que actual: clase Internet (no hay otra clase que se pueda usar). |
SOA | Start Of Authority. Registro obligatorio para indicar que este servidor es legítimo en esta zona. |
servidor | FQDN del servidor que tiene autoridad en la zona. |
mailadmin | Dirección de correo del administrador del servidor. La arroba es un carácter reservado en los archivos de zona, convencionalmente se reemplaza por un punto. admin@midominio.es pasaría a ser entonces admin.midominio.es. |
serial | Valor numérico. Número de serie del archivo. Útil cuando la zona se replica en otros servidores para saber si los datos han cambiado y si debe hacerse la réplica. |
refresh | Valor numérico. Utilizado cuando la zona se replica. Indica al servidor esclavo con qué intervalo comprobar la validez de su zona. |
retry | Valor numérico. Utilizado cuando la zona se replica. Si es imposible para el servidor esclavo contactar con el servidor maestro, indica cuánto esperar antes de volverlo a intentar. |
expire | Valor numérico. Utilizado cuando la zona se replica. Si es imposible para el servidor esclavo contactar con el servidor maestro, indica con cuánto tiempo los registros sin refrescar pierden su validez y deben dejarse de usar. |
negative | Valor numérico. Indica cuánto tiempo el servidor debe conservar en caché una respuesta negativa. |
NS | Registro que indica cuál es el servidor de nombres para esta zona. |
Creación de un Fichero de Zona Inversa
El fichero de zona inversa tiene la misma estructura que el de la zona directa.
Su nombre se forma con los bytes de la parte de red de la dirección IP ordenados en sentido inverso + .in-addr.arpa, por ejemplo, 10.168.192.in-addr.arpa
$TTL ttl
nombrezonainv IN SOA servidor mailadmin (
serial
refresh
retry
expire
negative
)
nombrezonainv IN NS servidor
Campos de la Cabecera de los Ficheros de Zona
| Campo | Descripción |
|---|---|
| ttl | (Time To Live) Indica la duración en segundos que se conservarán los datos en memoria caché. |
| nombrezona | FQDN (fully qualified domain name) de la zona administrada. Debe terminar con un punto. |
| IN | Clase Internet |
| SOA | Start Of Authority. Registro obligatorio para indicar que este servidor es legítimo en esta zona. |
| servidor | FQDN del servidor que tiene autoridad en la zona. |
| mailadmin | Dirección de correo del administrador del servidor. La arroba es un carácter reservado en los archivos de zona, convencionalmente se reemplaza por un punto. |
| serial | Número de serie del archivo. Útil cuando la zona se replica en otros servidores para saber si los datos han cambiado y si debe hacerse la réplica. |
| refresh | Utilizado cuando la zona se replica. Indica al servidor esclavo con qué intervalo comprobar la validez de su zona. |
| retry | Utilizado cuando la zona se replica. Si es imposible para el servidor esclavo contactar con el servidor maestro, indica cuánto esperar antes de volver a intentarlo |
| expire | |
| negative | Indica cuánto tiempo el servidor debe conservar en caché una respuesta negativa |
Creación de Registros de Zona
Una vez que los ficheros de zona se han creado, basta con añadir tantos registros de recursos como se desee, a razón de uno por línea.
Fichero de Zona directa
Estructura:
; nombre IN TipoRR valor_resuelto www IN A 192.168.3.43
Ejemplo para el fichero de zona directa db.micasa (a partir de una copia de db.local):
$TTL 604800
@ IN SOA micasa.local. webmaster.micasa.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
# Servidor DNS del dominio
@ IN NS debian10.micasa.local.
@ IN A 192.168.1.135
debian10 IN A 192.168.1.135
Fichero de Zona inversa
Estructura de los registros de la zona inversa:
; direccion_host IN PTR nombre 43 IN PTR www
Ejemplo para el fichero de zona inversa db.192.168.1 (a partir de una copia de db.127):
$TTL 604800
@ IN SOA micasa.local. webmaster.micasa.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
# Servidor DNS del dominio
@ IN NS debian10.micasa.local.
# Registro PTR
135 IN PTR debian10
Faltaría definir la zona inversa en named.conf.miszonas:
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1;
};
Declaración de una Zona Principal
Se denomina zona principal a la zona declarada en un servidor de tipo master.
Para realizar la declaración de una zona principal debemos incluir la siguiente configuración en el fichero named.conf:
zone "nombrezona" {
type master;
file "archivo";
};
Para poder organizar todo mejor, podemos crear las zonas principales en named.conf.miszonas y luego hacer referencia a ese fichero desde named.conf:
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.miszonas"
De esta manera, nuestro fichero named.conf.miszonas podría ser:
zone "micasa.local" {
type master;
file "/etc/bind/db.micasa";
};
Delegación de zona
A la hora de crear un subdominio, podemos hacerlo de 2 formas: incluyendolo en la zona o creando una zona delegada.
Esta segunda manera nos permitirá administrar el subdominio como una zona separada.
El dominio principal deberá delegar el dns del subdominio. Por ejemplo, para el subdominio scripts.example.org:
scripts 2d IN NS ctl.scripts.example.org.
2d IN NS bash.scripts.example.org.
ctl.scripts.example.org. 2d IN A 224.123.240.16
bash.scripts.example.org. 2d IN A 224.123.240.18
Actualización de la Configuración
Siempre que realicemos cualquier cambio en los ficheros de configuración de las zonas, debemos reiniciar el servicio o recargar la configuración de las zonas, para que se apliquen los cambios.
- Reinicio de servicio:
/etc/init.d/bind9 restart - Recarga de una nueva zona:
rndc reload zone midominio.es
Comprobar la configuración de una zona
La herramienta named-checkzone nos permite comprobar si hay errores de sintaxis con las zonas:
Fichero de resolución directa:
named-checkzone micasa.local /etc/bind/db.micasa
Fichero de resolución inversa:
named-checkzone micasa.local /etc/bind/db.192.168.1
Herramientas de Comprobación
nslookup
- Suele utilizarse en modo interactivo.
- Los servidores consultados por defecto son los especificados en el fichero
/etc/resolv.conf. - Por defecto, se realizan consultas tipo A
nslookup
En la sesión interactiva le preguntamos por un dominio:
> google.com Server: 172.21.40.178 Address: 172.21.40.178#53 Non-authoritative answer: Name: google.com Address: 142.250.184.174 Name: google.com Address: 2a00:1450:4003:80c::200e
Si queremos especificarle a nslookup dónde debe realizar las consultas, durante la sesión interactiva lo indicamos con server:
> server 192.168.1.135
Default server: 192.168.1.145 Address: 192.168.1.135#53
Ahora podemos preguntarle de nuevo:
> debian10.micasa.local Server: 192.168.1.135 Address: 192.168.1.135#53 Name: debian10.micasa.local Address: 192.168.1.135
dig
Herramienta de consulta y diagnóstico de servidores DNS.
Sintaxis:
dig nombre
Si queremos indicar el servidor DNS al que hacer consultas:
dig @A.B.C.D nombre TIPO
nombre: Nombre del host a resolver.@A.B.C.D: Indicamos la IP del servidor DNS a consultarTIPO: Indicamos el tipo de consulta a realizar
Ejemplo:
dig @8.8.8.8 facebook.com MX
tempwin@vmi282687:~$ dig @8.8.8.8 facebook.com MX ; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> @8.8.8.8 facebook.com MX ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61194 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;facebook.com. IN MX ;; ANSWER SECTION: facebook.com. 1538 IN MX 10 smtpin.vvv.facebook.com. ;; Query time: 17 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Mon Apr 12 11:47:32 CEST 2021 ;; MSG SIZE rcvd: 68
Para sacar información de todo tipo de registros: dig dominio ANY
host
Herramienta sencilla para realizar peticiones DNS.
host nombre
host –t TIPO nombre A.B.C.D
nombre: Nombre del host a resolver.A.B.C.D: Indicamos la IP del servidor DNS a consultarTIPO: Indicamos el tipo de consulta a realizar
host –t MX facebook.com 8.8.8.8
Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: facebook.com mail is handled by 10 smtpin.vvv.facebook.com.
