Todo lo que necesita saber sobre los servidores DNS de Ubuntu

DNS, o sistema de nombres de dominio, es una de las partes más integrales de Internet. Cualquiera que utilice Internet utiliza el servicio DNS todos los días. Sin embargo, también se pasa por alto en comparación con otros frenesíes de Internet. En resumen, el servicio DNS convierte las URL en direcciones IP. Como ya deberías saber, una dirección IP es un número único que identifica todo lo que está conectado a una red.

Si desea seguir una carrera en administración de Linux, debe tener un conocimiento sólido de cómo funciona DNS. Esta guía ofrece una descripción general práctica de los conceptos básicos de DNS y ejemplos prácticos de un servidor DNS de Ubuntu.

Profundice en el sistema de nombres de dominio (DNS)

Dado que DNS consta de varios servicios e interacciones complejas entre ellos, los usuarios deben familiarizarse con la terminología central para comprender lo que sucede detrás de escena. Por eso hemos dividido toda la guía en varias secciones. El primero ofrece una breve introducción a los términos y conceptos, mientras que otros tratan sobre flujos de trabajo y configuraciones.

Descripción general de los términos y conceptos básicos del DNS

Al trabajar con DNS, se enfrentará a varios términos y terminologías, como hosts, zonas, TLD y solucionadores. La siguiente sección proporciona una introducción concisa a algunos de estos conceptos.

DNS

DNS o Sistema de nombres de dominio es el mecanismo que interpreta un nombre de dominio completo (FQDN) en una dirección IP específica. Esta es la dirección que utilizan nuestros sistemas para enviar y recuperar recursos web. DNS consta de múltiples sistemas y realiza comunicaciones multidireccionales para recuperar la dirección IP asociada con una URL.

Nombre de dominio

Los nombres de dominio son direcciones legibles por humanos asociadas con recursos web. Eliminan la ambigüedad de recordar una gran cantidad de direcciones IP. Por ejemplo, google.com es el nombre de dominio del motor de búsqueda de Google. Cuando ingresa esto en la barra de direcciones de su navegador, utiliza el sistema DNS para encontrar la dirección IP.

Dirección IP

Una dirección IP es un número único asignado a todos los dispositivos conectados a Internet en un punto determinado. Las direcciones IP tienen varias clases y dos versiones principales. La mayoría de la gente usa IP versión 4 a partir de ahora. Las direcciones IPv4 constan de cuatro octetos, cada uno separado por un punto ?.? símbolo.

TLD

Los TLD o dominios de nivel superior se encuentran en el nivel más alto en la jerarquía de nombres de dominio. Estas son las partes más generales de un nombre de dominio y están ubicadas en el extremo derecho. Por ejemplo, el ?com? parte es el TLD de la URL www.example.com. Algunos dominios de nivel superior populares incluyen ?com?, ?org, ?gov?, ?net? y ?edu?.

Hospedadores

Los propietarios de un dominio pueden definir varios hosts diferentes dentro de ese dominio. Estos se pueden utilizar para acceder a servicios o computadoras independientes. Se puede acceder a la mayoría de los servidores web a través del dominio simple, como ejemplo.com, o mediante la declaración de host, como www.example.com. El ?www? parte es el anfitrión aquí. Otro uso común de un host es proporcionar acceso a API como api.example.com.

Subdominio

Los subdominios son simplemente un subconjunto de un dominio. Esto permite a los propietarios de sitios tener varios subdominios bajo un dominio principal. Por ejemplo, un dominio llamado universidad.edu puede tener varios subdominios para cada uno de sus departamentos, como www.cs.university.edu o www.phy.university.edu.

La diferencia entre hosts y subdominios es que el primero especifica diferentes computadoras o servicios, mientras que el segundo divide el dominio principal en diferentes grupos.

Nombre de dominio completo

Un nombre de dominio completo o FQDN es el dominio absoluto de un sitio web. Representa la raíz del dominio en cuestión. Un dominio suele contener varias subrutas o rutas, como www.example.com/new/example.

Aquí, la sección www.example.com es el FQDN. Además, el FQDN siempre termina con un punto ?.? símbolo como ?www.example.com.?. Pero los usuarios no están obligados a ingresar este punto final ya que el programa cliente se encarga de ello.

Nombre del servidor

En DNS, un servidor de nombres es un sistema informático que traduce nombres de dominio a IP direccionables. Hacen la mayor parte del trabajo real dentro de una infraestructura DNS de Ubuntu. Como los servidores de nombres tienen que gestionar miles de solicitudes por segundo, a menudo redirigen solicitudes adicionales a nuevos servidores.

Además, los servidores de nombres también pueden funcionar como servidores autorizados. En este escenario, responden consultas bajo su control y, de lo contrario, entregan respuestas almacenadas en caché de otros servidores.

Archivos de zona

Los archivos de zona son archivos de texto reales que almacenan las relaciones entre los nombres de dominio y las direcciones IP asociadas. Un sistema DNS recupera la información IP de un FQDN de este documento. Se almacenan en el servidor de nombres y especifican qué recursos son accesibles para un dominio en particular. Si la información no está disponible en el archivo de zona, apuntan a la ubicación que tiene esos datos.

Servidor raíz

Como ya se mencionó, DNS es un sistema jerárquico que comprende componentes de varios niveles. El servidor raíz se encuentra en la cima de esta jerarquía. Se trata de servidores extremadamente potentes mantenidos por múltiples organizaciones y controlados por la ICANN (Corporación de Internet para la Asignación de Nombres y Números).

Actualmente, hay 13 servidores raíz principales en todo el mundo y cada uno de ellos está reflejado para una mayor disponibilidad.

Cuando alguien solicita un servidor raíz, la solicitud se reenvía al espejo más cercano. Los servidores raíz manejan consultas relacionadas con dominios de nivel superior. Siempre que hay algo que un servidor de nombres de nivel inferior no puede resolver, se le presenta esa pregunta al servidor raíz.

Sin embargo, los servidores raíz no tienen información de IP. En cambio, apuntan a los servidores de nombres que administran ese TLD específico.

Servidor TLD

Los servidores TLD se encuentran debajo de los servidores raíz en la jerarquía DNS. Los servidores raíz dirigen las entidades de solicitud de DNS hacia el servidor TLD de esa solicitud. Luego, el servidor de TLD redirige a la entidad solicitante al servidor de nombres, que tiene la información de IP específica para el dominio en cuestión.

Servidores de nombres a nivel de dominio

Los servidores de TLD redirigen a la entidad solicitante al servidor de nombres a nivel de dominio. Este es el servidor cuyo archivo de zona contiene las asignaciones de IP para el dominio. Entonces, este es el servidor de nombres con la dirección IP específica para el nombre de dominio solicitado.

resolver

Un solucionador es la entidad de solicitud responsable de recuperar la información de IP de un dominio del DNS. Por lo general, se configura dentro del sistema cliente, como en el navegador o mediante una configuración DNS personalizada de Ubuntu.

La mayoría de la gente utiliza el solucionador de DNS proporcionado por sus ISP. Un solucionador es una abstracción que permite al usuario final ignorar lo que sucede bajo el capó. Puede funcionar de forma recursiva hasta que recupera la dirección IP de un dominio determinado.

Registros

Ya hemos comentado que el servidor de nombres almacena asignaciones de dominio a IP en el archivo de zona. La información de los archivos de zona se guarda como registros. Hay muchos tipos de registros en un archivo de zona. Aquí tocamos algunos de los más importantes.

SOA Records

SOA significaInicio de la autoridady es un registro obligatorio para todos los archivos de zona. El primer registro real en un archivo de zona debe ser de tipo SOA. Es posible que pase algún tiempo antes de que comprenda completamente los registros SOA. Hasta entonces, recuerde las siguientes conclusiones. En primer lugar, un registro SOA es similar al siguiente fragmento.

example.com. IN SOA ns1.example.com. admin.example.com. (
12083        ; serial number 
3h           ; refresh interval 
30m          ; retry interval 
3w           ; expiry period 
1h           ; negative TTL )

Las partes esenciales son las siguientes.

  • ejemplo.com? Esta es la raíz de la zona y especifica que el archivo es para ?example.com.? dominio.
  • EN SOA? ¿El? EN? significa Internet y SOA representa el hecho de que se trata de un registro SOA.
  • ns1.ejemplo.com.? Es el servidor de nombres principal para ?example.com.? dominio. Además, si ha configurado un DNS dinámico de Ubuntu, su servidor de nombres principal va aquí.
  • admin.ejemplo.com.? Es la dirección de correo electrónico del administrador responsable de esta zona en particular. El ?@? el símbolo se sustituye por un punto ?.? símbolo de la dirección de correo electrónico.
  • 12083? Este es el número de serie para esta zona y debe incrementar este número de serie cada vez que actualice el archivo de zona. Así es como los servidores secundarios determinan que se ha producido un cambio en esta zona.
  • 3 horas? El intervalo de actualización de la zona especifica cuánto tiempo deben esperar los servidores secundarios antes de buscar cambios en el archivo de zona del servidor primario.
  • 30m? El intervalo de reintento de una zona especifica cuánto tiempo deben esperar los servidores secundarios antes de volver a intentar sondear el servidor primario.
  • 3w? Es el período de caducidad y define durante cuánto tiempo los servidores secundarios deben intentar establecer una comunicación exitosa. Si no se establece una conexión dentro de este período de tiempo, los servidores secundarios dejarán de responder como autorizados para esta zona.
  • 1 hora? Si el servidor de nombres no puede encontrar el nombre solicitado en este archivo de zona, almacenará en caché un error de nombre durante este tiempo.

Registros A y AAAA

Los registros A y AAAA asignan un host a una dirección IP real. ¿La A? El registro asigna un host a una dirección IPv4 que funcione y el parámetro ?AAAA? records asigna hosts a direcciones IPv6. A continuación se muestra el formato general para estos tipos de registros.

hostname   IN  A     IPv4Address
hostname   IN  AAAA  IPv6Address

A continuación se muestra un ejemplo apropiado que utiliza el servidor de nombres ns1 definido en el registro SOA.

ns1.example.com.  IN  A  111.112.221.222

¿La próxima?A? El registro define el servidor web como ?www?.

www  IN  A  111.112.211.212

Registros CNAME

Los registros CNAME representan un alias para el servidor de nombres definido por un registro A o AAAA. Por ejemplo, el siguiente fragmento declara un host llamado ?servidor? usando un registro A y luego crea un ?www? alias para ese host.

server IN  A      111.111.111.111
www    IN  CNAME  server

Sin embargo, la creación de alias puede provocar una disminución del rendimiento, ya que requieren una consulta adicional al servidor. Los registros CNAME se utilizan normalmente para dar un nombre canónico a un recurso externo.

Registros MX

Los registros MX se utilizan para especificar intercambios de correo para un nombre de dominio y ayudar a recibir comunicaciones por correo electrónico que llegan a su servidor de correo Linux. A diferencia de la mayoría de los tipos de registros, no asignan hosts a IP porque se aplican a toda la zona. A continuación se muestra un ejemplo sencillo de un registro MX.

IN  MX  10  mail.example.com.

Observe que no hay ningún host definido en este registro y que también tiene un nuevo número, "10". Esto se utiliza para indicar preferencia. Si hay varios registros MX, los correos electrónicos se dirigirán al servidor que tenga el número de preferencia más bajo.

Registros NS

Los registros NS especifican los servidores de nombres que se utilizan para una zona. Aunque pueda parecer irrelevante ya que el archivo de zona ya existe en el servidor de nombres, se utiliza por algunas razones. A menudo, el archivo de zona servido por un servidor DNS puede ser una copia en caché de un servidor diferente.

IN  NS  ns1.example.com.
IN  NS  ns2.example.com.

Al igual que los registros MX, los registros NS también se definen para una zona completa y no requieren nombres de host. Además, muchos DNS de Ubuntu sirven para considerar que los archivos de zona no son válidos si no contienen varios registros ns. Por tanto, la mayoría de los archivos de zona definen más de un servidor de nombres.

Registros PTR

Los registros PTR especifican un nombre asociado con una dirección IP funcional y son simplemente lo inverso del registro A o AAAA. Deben comenzar en la raíz del .arpa y se encargan al propietario de la IP. La delegación de IP a organizaciones y proveedores de servicios está a cargo de los Registros Regionales de Internet (RIR).

222.111.222.111.in-addr.arpa.  33692  IN  PTR  host.example.com.

El fragmento anterior proporciona un ejemplo básico de un registro PTR. Asigna la IP 222.111.222.111 a "host.example.com".

Registros CAA

Los registros CAA definen qué autoridades certificadoras (CA) pueden emitir certificados SSL/TLS para un nombre de dominio. Si no hay ningún registro CAA definido para un dominio, cualquier CA puede emitir un certificado. Sin embargo, si una CA se define explícitamente, sólo esa autoridad específica puede emitir el certificado.

example.com.  IN  CAA  0  issue  "letsencrypt.org"

Un registro CAA se parece al fragmento anterior. Los campos host, IN y CAA son específicos de DNS, mientras que las banderas (0), las etiquetas (problema) y los valores (?letsencrypt.org?) son específicos de CAA. La CA ignorará el registro si el indicador está establecido en ?0?, pero debe abstenerse de emitir un certificado si está establecido en ?1?.

¿Cómo funciona el DNS?

Ahora que hemos aprendido todos los términos principales y conceptos asociados, podemos descubrir cómo funciona una solicitud de DNS real. Ofreceremos una ilustración simple del mundo real y analizaremos cuidadosamente la ruta de la consulta.

Digamos que estamos intentando establecer una conexión desde mi dispositivo portátil con Ubuntu al sitio web "www.example.com". Abro un navegador de Internet, escribo la URL en la barra de direcciones y presiono Intro. En un principio, el cliente o mi navegador, en este caso, comprobará si la IP de ?www.ejemplo.com.? ya existe en su caché. Si encuentra eso, se saltará todos los pasos posteriores.

Cuando el cliente no encuentra la IP en la memoria caché del navegador, reenvía la solicitud al solucionador o al servidor de nombres del ISP, en mi caso. El solucionador intenta ver si otros usuarios han visitado recientemente este sitio web y, de ser así, localiza la IP en su caché. De lo contrario, el solucionador reenvía la solicitud a uno de los servidores de nombres raíz.

El servidor raíz devuelve la dirección del servidor de nombres TLD para ese dominio, que es un ?.com? servidor de nombres en este ejemplo. Ahora, el resolutor envía una solicitud al servidor TLD para ver si tiene el resultado esperado. Sin embargo, el servidor TLD no tiene la información pero sabe qué nombre tiene el servidor. Devuelve la dirección de ese servidor de nombres con el dominio a las asignaciones de IP para nuestra URL.

Una vez que el resolutor le pregunta al servidor de nombres por nuestro dominio, devuelve la IP apropiada. El resolutor luego envía la dirección IP real al programa cliente, que ahora puede establecer la comunicación necesaria.

Como puede ver, la ruta de una solicitud de DNS total de Ubuntu comprende muchas consultas recursivas e iterativas. Además, se agregan varias capas de cachés a este mecanismo para simplificar y acelerar las cosas.

Es por eso que la mayoría de las veces, su navegador no necesita esperar una consulta de DNS completa. Por ejemplo, si va a un sitio web popular como YouTube, lo más probable es que el caché de su ISP ya tenga la IP de ese dominio.

Además, las configuraciones de DNS de Ubuntu pueden variar en gran medida según la aplicación y la función del servidor. Cuando se configura como un servidor de nombres de almacenamiento en caché, el servidor DNS localizará la respuesta a las consultas del cliente y recordará la respuesta para futuras consultas.

Si configura su DNS como servidor principal, leerá los datos de una zona del archivo de zona y tendrá autoridad solo para esa zona. Cuando se configura como un servidor secundario, obtendrá los datos del archivo de zona de otro servidor de nombres.

Instalación y configuración de un servidor DNS de Ubuntu

Ahora que hemos discutido cómo funciona el DNS y la mayoría de los conceptos clave, podemos comenzar a crear nuestro propio servidor DNS. Para esta parte del tutorial, usaremos elUNIR (Demonio de nombres de Internet de Berkley)programa, que es la implementación de DNS más popular y proporciona un rendimiento extremadamente sólido incluso bajo una carga pesada.

Use el siguiente comando simple para instalar BIND en su máquina Ubuntu. También recomendamos a los usuarios que descarguen dnsutils, un paquete robusto para probar y solucionar problemas con su servidor DNS.

$ sudo apt install bind9
$ sudo apt install dnsutils

Los archivos de configuración para BIND se encuentran en el/etc/binddirectorio de su sistema de archivos Linux. Los principales datos de configuración se guardan en el/etc/bind/named.confarchivo. El/etc/bind/named.conf.opcionesEl archivo se utiliza para configurar las opciones globales, el/etc/bind/named.conf.localpara configurar las zonas, y el/etc/bind/named.conf.default-zonesarchivo para la gestión de las zonas por defecto.

ubuntu dns config files

Anteriormente, Ubuntu usaba el/etc/bind/db.raízarchivo para describir los servidores de nombres raíz. Ahora, usa el archivo/usr/share/dns/root.hintsen cambio. Por lo tanto, se hace referencia a este archivo dentro de /etc/bind/named.conf.default-zonesarchivo.

Además, es posible configurar el mismo servidor DNS de Ubuntu para que sea un servidor primario, secundario y de almacenamiento en caché. Los roles cambian según las zonas a las que presta servicio el servidor. Por ejemplo, puede configurar su servidor como elInicio de autoridad (SOA)para una zona mientras ofrece servicios secundarios a una zona diferente. Mientras tanto, puede ofrecer servicios de almacenamiento en caché para hosts que se encuentran en su LAN local.

Servidor primario

En esta sección, mostraremos cómo crear configuraciones de DNS de Ubuntu para un servidor de nombres principal. Este servidor manejará consultas para el FQDN ?example.com?. Reemplace este nombre de dominio con su URL para implementar las mismas configuraciones.

Primero, necesitaremos configurar el archivo de zona de reenvío. Abre el/etc/bind/named.conf.localarchivo usando su editor de texto favorito de Linux y agregue los siguientes fragmentos.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

Puede configurar su servidor BIND DNS para obtener actualizaciones automáticas siempre que cambie los archivos de configuración. Para hacer esto, use el archivo/var/lib/bind/db.ejemplo.comen el fragmento anterior y el siguiente comando.

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

El comando anterior copia un archivo de zona ya existente que usaremos como plantilla para nuestros próximos pasos. Ahora, editaremos nuestro archivo de zona (/etc/bind/db.ejemplo.com) y realice algunos cambios necesarios.

$ sudo nano /etc/bind/db.example.com

En primer lugar, reemplazamos ?localhost.? con el FQDN de nuestro servidor, que es ?example.com.?. No olvide agregar el final ?.? en el FQDN. Ahora, cambie ?127.0.0.1? a la IP real de su servidor de nombres y ?root.localhost.? a una dirección de correo electrónico activa. Recuerda usar un ?.? en vez de ?@? símbolo en su dirección de correo. También recomendamos agregar un comentario que documente el FQDN para este archivo de zona. Nuestro archivo ahora se parece a lo siguiente.

;
; BIND data file for example.com
;
$TTL 604800
@  IN SOA example.com. root.example.com. (
2         ; Serial
604800    ; Refresh
86400     ; Retry
2419200   ; Expire
604800 )  ; Negative Cache TTL

------------------------------------------------------------------
------------------------------------------------------------------

Solo hemos modificado el registro SOA hasta ahora. Es hora de hacer cambios en el registro NS y los registros A de nuestro archivo de zona. Cambie el ?localhost.? parte del registro NS para que coincida con su servidor de nombres, ?ns.example.com.? para nuestro FQDN de demostración. Reemplace el? 127.0.0.1? parte del primer registro A con la Ip de su servidor de nombres. Hemos utilizado ?192.168.1.10?. Finalmente, cree un registro A para nuestro servidor de nombres, ?ns.example.com? agregando la última línea en el siguiente fragmento.

;
; BIND data file for example.com
;
$TTL       604800
@          IN    SOA   example.com. root.example.com. (
                       3           ; Serial
                       604800      ; Refresh
                       86400       ; Retry
                       2419200     ; Expire
                       604800 )    ; Negative Cache TTL

@         IN    NS     ns.example.com.
@         IN    A      192.168.1.10
@         IN    AAAA   ::1
ns        IN    A      192.168.1.10

Así es como se verá la configuración final para la zona de reenvío de nuestro servidor principal.

configuring primary DNS server

Recuerde incrementar el número de serie, o BIND no notará los cambios en sus configuraciones. Cuando agrega múltiples oportunidades, no necesita cambiar la serie cada vez. Si desea agregar registros DNS de Ubuntu, agréguelos debajo de las opciones anteriores. Una vez que todo esté configurado, reinicie BIND usando el siguiente comando.

$ sudo systemctl restart bind9.service

Ahora que nuestro archivo de zona directa está configurado correctamente, modifiquemos el archivo de zona inversa. Esto permite que el servidor DNS de Ubuntu resuelva una IP en un FQDN. Simplemente edite el/etc/bind/named.conf.localarchivo y agregue los siguientes fragmentos.

$ sudo nano /etc/bind/named.conf.local
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

Debe reemplazar ?1.168.192? con los tres primeros octetos de su red. Además, el archivo de zona debe tener el nombre correspondiente. Reemplace la?192?parte del archivo de zona?/etc/bind/db.192?para que coincida con el primer octeto de su red. Entonces, por ejemplo, si estás en la red10.1.1.1/24;su archivo de zona será?/etc/bind/db.10? y la entrada?1.168.192.in-addr.arpa? será ?10.1.1.in-addr.arpa?.

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

Hemos creado el/etc/bind/db.192archivo copiando un archivo de plantilla existente. Ahora, editemos este archivo y hagamos las mismas modificaciones al/etc/bind/db.ejemplo.comarchivo.

$ sudo nano /etc/bind/db.192
;
; BIND reverse data file for local 192.168.1.XXX net
;
$TTL    604800
@       IN   SOA  ns.example.com. root.example.com. (
                  2               ; Serial
                  604800          ; Refresh
                  86400           ; Retry
                  2419200         ; Expire
                  604800 )        ; Negative Cache TTL
;
@      IN   NS    ns.
10     IN   PTR   ns.example.com.

Recuerde incrementar el número de serie en cada cambio sucesivo al archivo de zona inversa. Además, por cada registro A configurado en/etc/bind/db.ejemplo.com, siempre debe agregar un registro PTR en el archivo/etc/bind/db.192.

reverse data file for dns

Una vez hecho todo esto, reinicie el servicio BIND.

$ sudo systemctl restart bind9.service

Servidor Secundario

Como ya hemos dicho, crear servidores secundarios es una excelente idea por varias razones, una de ellas es la mayor disponibilidad. Esto hará que sus servidores DNS de Ubuntu sean más resistentes y ayudará a atender a más clientes. Por lo tanto, consulte la sección a continuación para crear un servidor de nombres secundario.

Primero, debe permitir la transferencia de zona en su servidor principal. Simplemente edite las configuraciones de zona directa e inversa y agregue el ?Permitir transferencia? opción a las zonas.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
};

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

Ahora reemplaza?192.168.1.11? con la dirección IP de su servidor secundario.

allow transfer to DNS zone file

Luego reinicie BIND en su servidor principal emitiendo el siguiente comando.

$ sudo systemctl restart bind9.service

Ahora necesita instalar BIND en el servidor secundario. Luego proceda a editar el/etc/bind/named.conf.localy agregue lo siguiente para las zonas de avance y retroceso.

zone "example.com" {
type slave;
file "db.example.com";
masters { 192.168.1.10; };
}; 

zone "1.168.192.in-addr.arpa" {
type slave;
file "db.192";
masters { 192.168.1.10; };
};

¿Simplemente reemplazar?192.168.1.10? con la IP de su servidor de nombres principal. Reinicie BIND una vez más y estará listo para comenzar.

$ sudo systemctl restart bind9.service

Tenga en cuenta que una zona DNS de Ubuntu solo se puede transferir cuando el número de serie del servidor principal es mayor que el del servidor secundario. Sin embargo, puede eludir esto agregando la opción ?también-notificar { ipaddress; };? hacia/etc/bind/named.conf.localarchivo en su servidor principal. Después de esto, el archivo debería verse como el siguiente.

$ sudo nano /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
also-notify { 192.168.1.11; }; 
};

Servidor de almacenamiento en caché

No necesita hacer mucho para crear un servidor de nombres de almacenamiento en caché ya que las configuraciones predeterminadas ya actúan como un servidor de almacenamiento en caché. Solo edita el/etc/bind/named.conf.opcionesarchivar y descomentar la sección de reenviadores. Ingrese la IP del servidor DNS de su ISP, como se muestra a continuación.

$ sudo nano /etc/bind/named.conf.options
forwarders {
1.2.3.4;
5.6.7.8;
};

No olvide reemplazar las direcciones IP en consecuencia con los servidores de nombres reales.

configuring caching server

Ahora abra su emulador de terminal de Linux favorito y emita el siguiente comando para reiniciar BIND.

$ sudo systemctl restart bind9.service

Prueba y solución de problemas de configuraciones de DNS de Ubuntu

Una vez que haya terminado de configurar sus servidores de nombres DNS, querrá verificar si están funcionando según lo previsto o no. El primer paso para hacerlo es agregar la IP de los servidores de nombres al sistema de resolución de una máquina host. La forma más sencilla de hacerlo es editar el archivo /etc/resolv.conf y asegurarse de que la línea del servidor de nombres apunte a127.0.0.53. Luego agregue un parámetro de búsqueda para su FQDN, como se ilustra a continuación.

$ sudo nano /etc/resolv.conf
nameserver 127.0.0.53
search example.com

Puede encontrar fácilmente el servidor DNS utilizado por la resolución de su máquina local utilizando el siguiente comando.

$ systemd-resolve --status

Tenga en cuenta que es posible que desee agregar también la IP del servidor secundario a la configuración de su cliente. Esto proporcionará una mejor disponibilidad y hará uso de ese servidor de nombres secundario que acaba de crear.

checking dns resolver

Otra forma útil de verificar las configuraciones de DNS es usar el comando dig de Linx. Simplemente use dig contra la interfaz loopback y vea si está escuchando en el puerto 53 o no.

$ dig -x 127.0.0.1

El siguiente comando utiliza el comando grep de Linux para filtrar la información relevante.

$ dig -x 127.0.0.1 | grep -i "53"

Si configuró BIND para que sea un servidor de almacenamiento en caché, use dig para verificar un dominio externo y tome nota del tiempo de consulta.

checking configured ports

$ dig ubuntu.com

Ejecute el comando una vez más y verifique si el tiempo de consulta ha disminuido o no. Debería reducirse significativamente si el almacenamiento en caché es exitoso.

También puede usar el comando ping de Linux para ver cómo los clientes usan el DNS de Ubuntu para resolver nombres de host en direcciones IP.

$ ping example.com

pensamientos finales

Una sólida comprensión del sistema DNS es crucial para conseguir un trabajo de CS bien remunerado como administrador de sistemas o redes. El propósito de esta guía es ayudar a los principiantes a dominar los principios detrás del DNS lo más rápido posible. Además, nuestros editores también han proporcionado una ilustración funcional de varias configuraciones de DNS de Ubuntu para ayudarlo en su proceso de aprendizaje.

Al final de este tutorial, debe obtener un conocimiento riguroso de los conceptos básicos de DNS y experiencia práctica. Con suerte, pudimos proporcionarle las ideas esenciales. No olvides comentar si tienes más preguntas o sugerencias.

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín