Desarrollado en los años 80 por estudiantes de la Universidad de Berkeley, UNIR (Dominio de nombre de Internet de Berkeley) es una fuente abierta servidor DNS que proporciona servicios de DNS en distribuciones de Linux. Entonces, ¿qué es un servidor DNS? A DNS El servidor es un servicio que ayuda a resolver un nombre de dominio completo (FQDN) en una dirección IP y, además, realizar una traducción inversa: traducción de una dirección IP a un nombre de dominio fácil de usar.
¿Por qué es importante la resolución de nombres? Bueno, las computadoras ubican servicios en servidores usando direcciones IP. Sin embargo, las direcciones IP no son tan fáciles de usar como los nombres de dominio y sería un gran dolor de cabeza tratar de recordar cada dirección IP asociada con cada nombre de dominio. Un servidor DNS interviene y ayuda a resolver estos nombres de dominio en direcciones IP de computadoras.
Esta guía lo guía a través del proceso de configuración de un servidor de enlace DNS en CentOS 8 / RHEL 8.
Configuración de laboratorio:
- Servidor: CentOS 8 (servidor mínimo)
- Dirección IP: 192.168.43.35
- Hots Name: dns-primary.linuxtechi.local
- Dominio: linuxtechi.local
Ahora comencemos con la configuración del servidor de enlace DNS.
Paso 1: Instale bind DNS en CentOS 8 / RHEL 8
Comenzamos con la instalación del paquete bind y bind-utils. Estos paquetes constituyen el servidor dns y sus utilidades responsables de consultar servidores de nombres o servidores DNS.
Ejecute el comando:
# dnf install bind bind-utils
Una vez instalado correctamente, inicie el servidor DNS con el siguiente comando:
# systemctl start named
A continuación, habilítelo para que pueda activarse incluso después de reiniciar
# systemctl enable named
Solo para asegurarse de que el servicio se está ejecutando como se esperaba, verifique su estado
# systemctl status named
Genial, el servidor DNS funciona perfectamente. Ahora pasemos a configurar el servidor Bind DNS
Paso 2: configurar el servidor DNS de enlace
Por lo general, las mejores prácticas recomiendan hacer una copia de seguridad de un archivo de configuración antes de realizar cualquier cambio. Esto es para que si algo sale mal, siempre podamos volver al archivo original sin editar. Y no es diferente aquí.
Hagamos una copia de seguridad del archivo de configuración /etc/named.conf
# cp /etc/named.conf /etc/named.bak
Ahora continúe y abra el archivo con su editor de texto preferido. En este caso, estamos usando el editor vim.
# vim /etc/named.conf
Bajo la ‘Opciones‘, asegúrese de comentar las líneas que se indican a continuación para permitir que el servidor Bind DNS escuche todas las direcciones IP.
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
Además, ubique el parámetro allow-query y ajústelo de acuerdo con su subred de red.
allow-query { localhost; 192.168.43.0/24; };
Esta configuración permite que solo los hosts de la red definida accedan al servidor DNS y no cualquier otro host.
A zona DNS de búsqueda directa es uno que almacena la relación de la dirección IP del nombre del host. Cuando se le consulta, proporciona la dirección IP del sistema host utilizando el nombre de host. En cambio, al revés zona DNS devuelve el nombre de dominio completo (FQDN) del servidor en relación con su dirección IP.
Para definir las zonas de búsqueda inversa y directa, copie y pegue la siguiente configuración al final de /etc/named.conf
//forward zone zone "linuxtechi.local" IN { type master; file "linuxtechi.local.db"; allow-update { none; }; allow-query { any; }; }; //backward zone zone "43.168.192.in-addr.arpa" IN { type master; file "linuxtechi.local.rev"; allow-update { none; }; allow-query { any; }; };
- escribe: Estipula el rol del servidor para una zona en particular. el atributo ‘maestro’ implica que este es un servidor autorizado.
- Archivo: Apunta al archivo de zona de avance/retroceso del dominio.
- permitir-actualizar: este atributo define los sistemas host que pueden reenviar actualizaciones de DNS dinámico. En este caso no tenemos.
Después de guardar, salga del archivo de configuración /etc/named.conf.
Paso 3: Cree un archivo de zona DNS de reenvío para el dominio
Cree un archivo de zona DNS de reenvío para el dominio linuxtechi.local como se muestra a continuación y agregue el siguiente contenido
[[email protected] ~]# vim /var/named/linuxtechi.local.db $TTL 86400 @ IN SOA dns-primary.linuxtechi.local. admin.linuxtechi.local. ( 2020011800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.linuxtechi.local. ;IP Address for Name Server dns-primary IN A 192.168.43.35 ;Mail Server MX (Mail exchanger) Record linuxtechi.local. IN MX 10 mail.linuxtechi.local. ;A Record for the following Host name www IN A 192.168.43.50 mail IN A 192.168.43.60 ;CNAME Record ftp IN CNAME www.linuxtechi.local.
Definamos algunos de los parámetros indicados en el archivo de configuración:
- TTL: Esta es la abreviatura de Time-To-Live. TTL es la duración del tiempo (o saltos) que existe un paquete en una red antes de ser finalmente descartado por el enrutador.
- EN: Esto implica Internet.
- SOA: Esta es la abreviatura de Start of Authority. Básicamente, define el servidor de nombres autorizado, en este caso, dns-primary.linuxtechi.local e información de contacto: admin.linuxtechi.local
- NS: Esta es la abreviatura de Servidor de nombres.
- A: Este es un récord A. Apunta a un nombre de dominio/subdominio a la dirección IP
- De serie: este es el atributo utilizado por el servidor DNS para garantizar que se actualice el contenido de un archivo de zona específico.
- Actualizar: Define el número de veces que un servidor DNS esclavo debe transferir una zona desde el maestro.
- Rever: Define el número de veces que un esclavo debe reintentar una transferencia de zona que no responde.
- Expirar: especifica la duración que debe esperar un servidor esclavo antes de responder a una consulta de cliente cuando el maestro no está disponible.
- Mínimo: Esto es responsable de establecer el TTL mínimo para una zona.
- MX: Este es el registro del intercambiador de correo. Especifica el servidor de correo que recibe y envía correos electrónicos.
- CNOMBRE: Este es el nombre canónico. Asigna un nombre de dominio de alias a otro nombre de dominio.
- PTR: Abreviatura de Pointer, este atributo resuelve una dirección IP en un nombre de dominio, opuesto a un nombre de dominio.
Paso 4: Cree un archivo de zona de DNS inverso para el dominio
De manera similar, necesitamos crear un archivo para búsquedas DNS inversas. Pegue el siguiente contenido en el archivo:
[[email protected] ~]# vim /var/named/linuxtechi.local.rev $TTL 86400 @ IN SOA dns-primary.linuxtechi.local. admin.linuxtechi.local. ( 2020011800 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS dns-primary.linuxtechi.local. dns-primary IN A 192.168.43.35 ;Reverse lookup for Name Server 35 IN PTR dns-primary.linuxtechi.local. ;PTR Record IP address to Hostname 50 IN PTR www.linuxtechi.local. 60 IN PTR mail.linuxtechi.local.
A continuación, asigne los permisos de archivo necesarios a los dos archivos de configuración.
# chown named:named /var/named/linuxtechi.local.db # chown named:named /var/named/linuxtechi.local.rev
Para confirmar que los archivos de búsqueda de la zona DNS están libres de errores sintácticos, ejecute los comandos que se muestran:
# named-checkconf # named-checkzone linuxtechi.local /var/named/linuxtechi.local.db # named-checkzone 192.168.43.35 /var/named/linuxtechi.local.rev
Si no hay errores, debería obtener el resultado que se muestra:
Para que los cambios se reflejen en el sistema, reinicie el servidor Bind DNS
# systemctl restart named
Para que los sistemas cliente accedan al sistema, debemos agregar el servicio DNS en el firewall y luego recargar el firewall.
# firewall-cmd --add-service=dns --zone=public --permanent # firewall-cmd --reload
Paso 5: pruebe el servidor Bind DNS desde un sistema cliente
Habiendo finalizado la configuración en el servidor DNS, vayamos a una máquina cliente y realicemos algunas pruebas.
En una máquina cliente (CentOS 8/RHEL 8), abra el /etc/resolv.conf archivo y edite el siguiente parámetro:
servidor de nombres 192.168.43.35
Como siempre, guarde y cierre el archivo de configuración.
Por último, debe agregar la dirección IP del servidor Bind DNS al /etc/sysconfig/network-scripts/ifcfg-enp0s3 archivo como se muestra.
Guarde y cierre el archivo de configuración y luego reinicie el servicio de administrador de red para hacer el cambio anterior en el efecto,
# systemctl restart NetworkManager
Con el comando nslookup, pruebe el servidor Bind DNS como se muestra:
# nslookup dns-primary.linuxtechi.local # nslookup mail.linuxtechi.local # nslookup www.linuxtechi.local # nslookup ftp.linuxtechi.local
# nslookup 192.168.43.35
El resultado del comando nslookup confirma que la búsqueda directa de DNS funciona como se esperaba.
Además, también puede usar el comando de excavación como se muestra
# dig dns-primary.linuxtechi.local
Para realizar una búsqueda inversa de DNS, use el comando dig como se muestra:
# dig -x 192.168.43.35
¡Perfecto! La búsqueda inversa de DNS también funciona como es de esperar.
Y eso concluye este tutorial. En esta guía, lo guiamos a través de la instalación de un servidor DNS usando Bind en CentOS 8. Pruébelo y no dude en enviar sus comentarios.
Leer también : Cómo configurar el servidor NFS en CentOS 8 / RHEL 8