servicio de nombres de dominio (DNS)

servicio de nombres de dominio (DNS) es un servicio de Internet que asigna direcciones IP y nombres de dominio completos (FQDN) entre sí. De esta manera, DNS alivia la necesidad de recordar direcciones IP. Los equipos que ejecutan DNS se denominan servidores de nombres. Ubuntu viene con BIND (Berkley Internet Naming Daemon), el programa más común utilizado para mantener un servidor de nombres en Linux.,

en un mensaje de terminal, ingrese el siguiente comando para instalar dns:

sudo apt install bind9

un paquete muy útil para probar y solucionar problemas de DNS es el paquete dnsutils. Muy a menudo estas herramientas se instalarán ya, pero para comprobar y/o instalar dnsutils introduzca lo siguiente:

sudo apt install dnsutils

configuración

hay muchas maneras de configurar BIND9. Algunas de las configuraciones más comunes son un servidor de nombres en caché, un servidor primario y un servidor secundario.,

  • Cuando se configura como un servidor de nombres de almacenamiento en caché, BIND9 encontrará la respuesta a las consultas de nombres y recordará la respuesta cuando se vuelva a consultar el dominio.

  • como servidor principal, BIND9 lee los datos de una zona desde un archivo en su host y es autoritativo para esa zona.

  • como servidor secundario, BIND9 obtiene los datos de zona de otro servidor de nombres que es autoritativo para la zona.

Overview

los archivos de configuración DNS se almacenan en el directorio /etc/bind., El archivo de configuración principal es /etc/bind/named.conf, que en el diseño proporcionado por el paquete solo incluye estos archivos.

los servidores de nombres raíz solían describirse en el archivo /etc/bind/db.root. Esto ahora es proporcionado por el archivo /usr/share/dns/root.hints enviado con el paquete dns-root-data, y se hace referencia en el archivo de configuración named.conf.default-zones anterior.

es posible configurar el mismo servidor para que sea un servidor de nombres de almacenamiento en caché, primario y secundario: todo depende de las zonas que está sirviendo., Un servidor puede ser el inicio de Autoridad (SOA) para una zona, mientras que proporciona servicio secundario para otra zona. Al mismo tiempo que proporciona servicios de almacenamiento en caché para hosts en la LAN local.

servidor de nombres de almacenamiento en caché

la configuración predeterminada actúa como un servidor de almacenamiento en caché. Simplemente descomente y edite /etc/bind/named.conf.options para establecer las direcciones IP de los servidores DNS de su ISP:

forwarders { 1.2.3.4; 5.6.7.8;};

Note

Replace 1.2.3.4 and 5.6.7.8 con las direcciones IP de los servidores de nombres reales.,

para habilitar la nueva configuración, reinicie el servidor DNS. Desde un mensaje de terminal:

sudo systemctl restart bind9.service

consulte dig para obtener información sobre cómo probar un servidor DNS de almacenamiento en caché.

servidor principal

en esta sección BIND9 se configurará como el servidor principal para el dominioexample.com. Simplemente reemplace example.com con su FQDN (nombre de dominio completo).,

Forward Zone File

para agregar una zona DNS a BIND9, convirtiendo BIND9 en un servidor primario, primero edite /etc/bind/named.conf.local:

zone "example.com" { type master; file "/etc/bind/db.example.com";};

Nota

Si bind recibir actualizaciones automáticas al archivo como con DDNS, luego use /var/lib/bind/db.example.com en lugar de /etc/bind/db.example.com tanto aquí como en el comando Copiar a continuación.,

Ahora, el uso de un archivo de zona existente como una plantilla para crear el /etc/bind/db.example.com archivo:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Edite el nuevo archivo de zona /etc/bind/db.example.com y cambiar localhost. para el FQDN del servidor, dejando el adicional . al final., Cambiar 127.0.0.1 a la dirección IP del servidor de nombres y root.localhost a una dirección de correo electrónico válida, pero con un símbolo . en lugar del habitual @, dejando de nuevo el símbolo . al final. Cambie el comentario para indicar el dominio para el que está este archivo.

crear un registro A para el dominio base,example.com. Además, cree un registro A para ns.example.com, el servidor de nombres en este ejemplo:

debe incrementar el número de serie cada vez que realice cambios en el archivo de zona., Si realiza varios cambios antes de reiniciar BIND9, simplemente incremente la serie una vez.

ahora, puede agregar registros DNS a la parte inferior del archivo de zona. Consulte Tipos de Registros comunes para obtener más información.,

Nota

a muchos administradores les gusta usar la última fecha editada como el serial de una zona, como 2020012100 que es yyyymmddss (donde ss es el número de serie)

Una vez que haya realizado cambios en el archivo de zona bind9 necesita para que los cambios surtan efecto:

sudo systemctl restart bind9.service

archivo de zona inversa

ahora que la zona está configurada y resolviendo nombres a direcciones IP, es necesario agregar una zona inversa para permitir que DNS resuelva una dirección a un nombre.,

Editar /etc/bind/named.conf.local y agregue el siguiente:

zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};

Nota

Reemplace 1.168.192 con los tres primeros octetos de cualquier red a la que estás usando. También, nombre el archivo de zona /etc/bind/db.192 apropiadamente. Debe coincidir con el primer octeto de su red.,

Ahora crear el /etc/bind/db.192 archivo:

sudo cp /etc/bind/db.127 /etc/bind/db.192

la Próxima edición de /etc/bind/db.192 modificación de las mismas opciones como /etc/bind/db.example.com:

El Número de Serie en la zona Inversa debe ser incrementado en cada cambio así. Para cada registro que configure en /etc/bind/db.example.com, es decir, para una dirección diferente, debe crear un registro PTR en /etc/bind/db.192.,

después de crear el archivo de zona inversa restart BIND9:

sudo systemctl restart bind9.service

servidor secundario

Una vez que se ha configurado un servidor principal, se recomienda encarecidamente un servidor secundario para mantener la disponibilidad del dominio en caso de que el principal no esté disponible.

primero, en el servidor principal, se debe permitir la transferencia de zona., Agregue la opción allow-transfer a las definiciones de zona de ejemplo hacia adelante y hacia atrás en /etc/bind/named.conf.local:

Nota

Reemplace 192.168.1.11 con la dirección IP de su Secundaria servidor de nombres.

Reiniciar BIND9 en el servidor principal:

sudo systemctl restart bind9.service

a continuación, en el servidor secundario, instale el paquete bind9 de la misma manera que en el principal., Luego edite /etc/bind/named.conf.local y agregue las siguientes declaraciones para las zonas de avance y retroceso:

Nota

Reemplace 192.168.1.10 con la dirección IP de su servidor de nombres primario.,

Reiniciar BIND9 en el servidor secundario:

sudo systemctl restart bind9.service

En /var/log/syslog debería ver algo similar a lo siguiente (algunas líneas se han dividido para ajustarse al formato de este documento):

nota

nota: una zona solo se transfiere si el número de serie en la primaria es mayor que el de la secundaria., Si desea que su DNS principal notifique a otros servidores DNS secundarios de los cambios de zona, puede agregar also-notify { ipaddress; }; a /etc/bind/named.conf.local como se muestra en el siguiente ejemplo:

Nota

El Directorio predeterminado para los archivos de zona no autoritativos es /var/cache/bind/. Este directorio también está configurado en AppArmor para permitir que el demonio nombrado escriba en él. Para obtener más información sobre AppArmor, consulte Seguridad-AppArmor.,

solución de problemas

Esta sección cubre el diagnóstico de problemas con las configuraciones DNS y BIND9.

Testing

resolv.conf

el primer paso en probar BIND9 es agregar la dirección IP del servidor de nombres a un solucionador de hosts. El servidor de nombres primario debe ser configurado así como otro host para verificar las cosas. Consulte Configuración del cliente DNS para obtener detalles sobre cómo agregar direcciones de servidor de nombres a sus clientes de red., En el final de su nameserver línea /etc/resolv.conf debe estar apuntando a 127.0.0.53 y usted debe tener un search parámetro para su dominio. Algo como esto:

nameserver 127.0.0.53search example.com

para verificar qué servidor DNS está utilizando su resolución local, ejecute:

systemd-resolve --status

Nota

también debe agregar la dirección IP del servidor de nombres secundario a la configuración de su cliente en caso de que el primario no esté disponible.,

dig

Si instaló el paquete dnsutils, puede probar su configuración utilizando la utilidad de búsqueda DNS dig:

  • Después de instalar BIND9, use dig contra la interfaz de bucle para asegurarse de que está escuchando en el puerto 53.,i>

    Si ha configurado BIND9 como un servidor de nombres de almacenamiento en caché «dig» un dominio externo para verificar el tiempo de consulta:

    dig ubuntu.com

    tenga en cuenta el tiempo de consulta hacia el final de la salida del comando:

    ;; Query time: 49 msec

    después de una segunda 57ffde4670″>

ping

ahora para demostrar cómo las aplicaciones hacen uso de DNS para resolver un nombre de host use la utilidad ping para enviar una solicitud de eco ICMP:

ping example.com

esto prueba si el servidor de nombres puede resolver el nombrens.example.comdirección., La salida del comando debería parecerse a:

named-checkzone

una gran manera de probar sus archivos de zona es usando la utilidad named-checkzone instalada con el paquete bind9. Esta utilidad le permite asegurarse de que la configuración es correcta antes de reiniciar BIND9 y realizar los cambios en vivo.,

  • A prueba nuestro ejemplo Avance zona de archivo introduzca el siguiente desde un símbolo del sistema:

    named-checkzone example.com /etc/bind/db.example.com

    Si todo está configurado correctamente, usted debería ver algo similar a:

    zone example.com/IN: loaded serial 6OK
  • del mismo modo, para poner a prueba la zona Inversa archivo introduzca los siguientes:

    named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192

    La salida debe ser similar a:

    zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK

Nota

El Número de Serie de su archivo de zona probablemente serán diferentes.,

registro temporal rápido de consultas

con la herramienta rndc, puede activar y desactivar rápidamente el registro de consultas, sin reiniciar el servicio ni cambiar el archivo de configuración.

Para activar la consulta de registro, ejecute:

sudo rndc querylog on

Asimismo, para desactivarlo, ejecute:

sudo rndc querylog off

Los registros serán enviados a syslog y se mostrará en el /var/log/syslog por defecto:

Nota

La cantidad de registros generados por la habilitación de querylog podría ser enorme!,

Logging

BIND9 tiene una amplia variedad de opciones de configuración de registro disponibles, pero las dos principales son canal y categoría, que configuran dónde van los registros y qué información se registra, respectivamente.

si no hay opciones de registro configuradas, la configuración predeterminada es:

logging { category default { default_syslog; default_debug; }; category unmatched { null; };};

configuremos BIND9 para enviar mensajes de depuración relacionados con consultas DNS a un archivo separado.

necesitamos configurar un canal para especificar a qué Archivo Enviar los mensajes, y una categoría., En este ejemplo, la categoría registrará todas las consultas. Editar /etc/bind/named.conf.local y agregue el siguiente:

logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};

Nota

La opción de depuración se puede configurar de 1 a 3. Si no se especifica un nivel, el nivel 1 es el predeterminado.,

  • dado que el demonio con nombre se ejecuta como usuario de bind, debe crearse el directorio /var/log/named y cambiar la propiedad:

    sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
  • ahora reinicie BIND9 para que los cambios surtan efecto:

    sudo systemctl restart bind9.service

debería ver el archivo /var/log/named/query.log llenar con información de consulta. Este es un ejemplo simple de las opciones de registro de BIND9. Para ver la cobertura de las opciones avanzadas, consulte más información.,

tipos de registro comunes

Esta sección cubre algunos de los tipos de registro DNS más comunes.

  • A record: este registro asigna una dirección IP a un nombre de host.

    www IN A 192.168.1.12
  • CNAME registro: se Utiliza para crear un alias de un registro existente. No puede crear un registro CNAME que apunte a otro registro CNAME.

    web IN CNAME www
  • MX record: se usa para definir a dónde se debe enviar el correo electrónico., Debe apuntar a un registro A, no a un registro CNAME.

    @ IN MX 1 mail.example.com.mail IN A 192.168.1.13
  • NS registro: se Utiliza para definir los servidores que sirven copias de una zona. Debe apuntar a un registro A, no a un registro CNAME. Aquí es donde se definen los servidores primario y secundario.

    @ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11

Más Información

  • Arriba BIND9 Documentación

  • Bind9.net tiene enlaces a una gran colección de DNS y BIND9 recursos.,

  • DNS y BIND es un libro popular ahora en su quinta edición. Ahora también hay un libro DNS y BIND en IPv6.

  • un gran lugar para pedir ayuda a BIND9, e involucrarse con la comunidad de Ubuntu Server, es el canal IRC #ubuntu-server en freenode.

Última actualización hace 10 meses. Ayuda a mejorar este documento en el foro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir a la barra de herramientas