El Sistema de Nombres de Dominio (DNS) es un sistema de nombres distribuidos jerárquicos para computadoras, servicios o cualquier recurso conectado a Internet o una red privada. Asocia diversa información a los nombres de dominio asignados a cada una de las entidades participantes.
Lo que es más importante, traduce los nombres de dominio significativos para los humanos en identificadores numéricos asociados con equipos de red con el fin de ubicar y direccionar estos dispositivos en todo el mundo.
Esta guía lo ayudará a configurar el servidor DNS en CentOS 8 / RHEL 8.
Supuestos
Nombre de host: ns1.itzgeek.local
Dirección IP: 192.168.0.10
Instalar servidor DNS
BIND significa Berkeley Internet Name Domain, un software que brinda la capacidad de realizar una conversión de nombre a ip.
yum -y install bind bind-utils
Configurar servidor DNS
El archivo de configuración principal de BIND es /etc/named.conf. Usaremos este archivo para configurar el servidor DNS y definir la zona DNS.
De forma predeterminada, BIND escucha en el host local. Entonces, configuraremos los servidores DNS para escuchar en todas las interfaces de red o en una interfaz en particular.
Edite el archivo /etc/named.conf.
vi /etc/named.conf
Comente la siguiente línea. Esto permitirá que BIND escuche las interfaces de red del sistema que no sean el host local.
Escuchar en todas las direcciones IP:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Escuchar en una dirección IP particular:
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
Agregue su red en la siguiente línea. Agregué 192.168.0.0/24 para permitir que los clientes de la red 192.168.0.0/24 consulten el servidor DNS para la traducción del nombre a la IP.
allow-query { localhost;192.168.0.0/24; };
Crear Zonas
Edite el archivo /etc/named.conf.
vi /etc/named.conf
Zona delantera
La siguiente es la entrada de la zona de reenvío en el archivo named.conf, escrita para el dominio itzgeek.local.
zone "itzgeek.local" IN { // Domain Name type master; // Master DNS Server file "itzgeek.local.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
itzgeek.local – Nombre de dominio
maestro – DNS principal
itzgeek.local.db – Archivo de búsqueda avanzada
permitir-actualizar – Dado que este es el DNS maestro, no debería ser ninguno
Zona inversa
La siguiente es la entrada de zona inversa en el archivo named.conf.
zone "0.168.192.in-addr.arpa" IN { // Reverse Zone Name, should match with network in reverse order type master; // Master DNS Server file "192.168.0.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
0.168.192.in-addr.arpa – Nombre de búsqueda inversa
maestro – DNS principal
192.168.0.db – Archivo de búsqueda inversa
permitir-actualizar – Dado que este es el DNS maestro, no debería ser ninguno
Crear archivos de zona
Ahora es el momento de crear un archivo de búsqueda para una zona creada. De forma predeterminada, los archivos de búsqueda de zona se colocan en el directorio /var/named. Cree un archivo de zona llamado itzgeek.local.db para la búsqueda directa en el directorio /var/named.
Todos los nombres de dominio deben terminar con un punto (.).
Zona delantera
Hay algunas palabras clave especiales para archivos de zona
Crea un archivo.
vi /var/named/itzgeek.local.db
A – Un registro
NS – Servidor de nombres
MX – Correo a cambio
CNOMBRE – Nombre canónico
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Cada vez que actualice los archivos de zona para la actualización del registro DNS, no olvide incrementar el número de serie.
Zona inversa
Cree un archivo de zona llamado 192.168.0.db para la zona inversa en el directorio /var/named, cree un puntero inverso a las entradas de zona delantera anteriores.
vi /var/named/192.168.0.db
PTR – Puntero
SOA – Inicio de autoridad
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Cada vez que actualice los archivos de zona para la actualización del registro DNS, no olvide incrementar el número de serie.
Validar la configuración del servidor DNS
Use el comando named-checkconf para validar el archivo de configuración.
named-checkconf /etc/named.conf
Si no ve ningún error, entonces está listo para continuar.
Valide el archivo de zona de reenvío que ha creado con el siguiente comando.
named-checkzone itzgeek.local /var/named/itzgeek.local.db
itzgeek.local – Nombre de dominio
/var/named/itzgeek.local.db – Ruta a un archivo de zona
Salida:
zone itzgeek.local/IN: loaded serial 3 OKEl número de serie mencionado en la salida debe coincidir con el número de serie en los archivos de zona.
Realice lo mismo para la zona inversa también.
named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.db
Salida:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
Iniciar servicio DNS
Una vez que valide las configuraciones de DNS, reinicie el servicio de enlace.
systemctl restart named
Habilítelo al iniciar el sistema.
systemctl enable named
Actualización de registros DNS
Siempre que cambie un registro DNS, no olvide cambiar el número de serie en el archivo de zona y volver a cargar la zona.
Cambie itzgeek.local &0.168.192.in-addr.arpa con sus nombres de zona.
### Forward Zone ### rndc reload itzgeek.local ### Reverse Zone ### rndc reload 0.168.192.in-addr.arpa
Cortafuegos
Agregue una regla de firewall para permitir consultas de DNS desde máquinas cliente.
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
Verificar servidor DNS
Visite cualquier máquina cliente y agregue la dirección IP de un servidor DNS en /etc/resolv.conf si Network Manager no administra la red.
nameserver 192.168.0.10
Si Network Manager administra la red, coloque la siguiente entrada en el archivo /etc/sysconfig/network-scripts/ifcfg-eXX.
DNS1=192.168.0.10
Reinicie el servicio de red.
service network restart OR systemctl restart NetworkManager
Use el siguiente comando para verificar la búsqueda directa, donde el servidor DNS proporciona 192.168.0.100 como ip para www.itzgeek.local .
dig www.itzgeek.local
Salida:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42679 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 99d94df91828bc8e957709ec5e13f9cd0c242970a9488a91 (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:53:56 IST 2020 ;; MSG SIZE rcvd: 124Instale el paquete bind-utils para obtener el comando nslookup o dig.
Confirme la búsqueda inversa, donde el servidor DNS proporciona www.itzgeek.local como nombre para 192.168.0.100 . Ahora se confirma que tanto las búsquedas directas como las inversas funcionan bien.
dig -x 192.168.0.100
Salida:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43305 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: d36aa24edb88f8951b3fbf8c5e13fa2cbf0e3ed754a00eee (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:55:30 IST 2020 ;; MSG SIZE rcvd: 148
Conclusión
Eso es todo. Ha instalado correctamente BIND en CentOS 8/RHEL 8 como servidor maestro. En nuestro próximo artículo, veremos cómo configurar un servidor DNS esclavo en CentOS 8 / RHEL 8.