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
and5.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.com
direcció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 registroCNAME
que apunte a otro registroCNAME
.web IN CNAME www
-
MX
record: se usa para definir a dónde se debe enviar el correo electrónico., Debe apuntar a un registroA
, no a un registroCNAME
.@ 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 registroA
, no a un registroCNAME
. 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.