El sistema de nombres de dominio (en resumen, DNS) es un servicio de Internet que se utiliza para convertir el nombre de dominio en una dirección IP y viceversa.
BIND (Berkeley Internet Name Domain) proporciona la funcionalidad de conversión de nombre a ip.
Esta publicación lo ayudará a configurar el servidor DNS en Debian 10 / Debian 9.
Nombre de dominio:itzgeek.local |
ns1.itzgeek.local | 192.168.0.10 | Servidor DNS maestro |
Requisitos
Actualice el índice del repositorio.
sudo apt-get update
Asegúrese de que el servidor DNS tenga una dirección IP estática.
LEER :Cómo configurar una dirección IP estática en Debian
Instalar servidor DNS
El nombre del paquete del servidor DNS en Debian es bind9 y está disponible en el repositorio base. Puede usar el comando apt para instalar el paquete bind9.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Configurar servidor DNS
/etc/bind/ es el directorio de configuración de bind9, contiene archivos de configuración y archivos de búsqueda de zona. El archivo de configuración global es /etc/bind/named.conf.
Crear Zonas
Comencemos por crear una zona de reenvío para su dominio.
No debe usar el archivo de configuración global para la zona DNS local, sino que puede usar el archivo /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Zona delantera
La siguiente es la entrada de la zona de reenvío para el dominio itzgeek.local en el archivo named.conf.local.
zone "itzgeek.local" IN { //Domain name
type master; //Primary DNS
file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file
allow-update { none; }; // Since this is the primary DNS, it should be none.
};
Zona inversa
Lo siguiente es para la zona inversa en el archivo named.conf.local.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order
type master; // Primary DNS
file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file
allow-update { none; }; //Since this is the primary DNS, it should be none.
};
Crear archivo de búsqueda de zona
Una vez que se crean las zonas, puede continuar y crear archivos de datos de zona para la zona de avance y la zona de retroceso.
Zona delantera
Copie las entradas de muestra en el archivo de zona llamado forward.itzgeek.local.db para la zona de reenvío en el directorio /etc/bind.
Tipos de registro en el archivo de zona,
SOA:inicio de autoridad
NS:servidor de nombres
A:registro A
MX:correo para Exchange
CN:canónico Nombre
Los nombres de dominio deben terminar con un punto (.).
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
Edite la zona.
sudo nano /etc/bind/forward.itzgeek.local.db
Actualice el contenido como se muestra a continuación.
Cada vez que cambie cualquier registro en el archivo de búsqueda, asegúrese de actualizar el número de serie a algún número aleatorio, más alto que el actual. ;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Commentout below three lines
;@ IN NS localhost.
;@ IN A 127.0.0.1
;@ IN AAAA ::1
;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.
Zona inversa
Copie las entradas de muestra en el archivo de zona llamado reverse.itzgeek.local.db para la zona inversa en el directorio /etc/bind y cree punteros inversos para los registros de zona de avance anteriores.
PTR – Puntero
SOA – Inicio de autoridad
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
Edite el archivo de zona inversa.
sudo nano /etc/bind/reverse.itzgeek.local.db
Actualice el contenido como se muestra a continuación.
Cada vez que cambie cualquier registro en el archivo de búsqueda, asegúrese de actualizar el número de serie a algún número aleatorio, más alto que el actual. ;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA itzgeek.local. root.itzgeek.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Commentout below two lines
;@ IN NS localhost.
;1.0.0 IN PTR localhost.
;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.
Comprobar la sintaxis de configuración de BIND
Utilice el comando named-checkconf para comprobar la sintaxis de los archivos named.conf* en busca de errores.
sudo named-checkconf
El comando volverá al shell si no hay errores.
Además, puede usar la zona de verificación nombrada para verificar los errores de sintaxis en los archivos de zona.
Zona delantera
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
Salida:
zone itzgeek.local/IN: loaded serial 2
OK
Zona inversa
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
Salida:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2
OK
Reinicie el servicio de vinculación.
sudo systemctl restart bind9
Verifique el estado del servicio bind9.
sudo systemctl status bind9
Verificar DNS
Vaya a cualquier máquina cliente y agregue nuestra nueva dirección IP del servidor DNS en el archivo /etc/resolv.conf.
sudo nano /etc/resolv.conf
Haga una entrada como la siguiente.
nameserver 192.168.0.10
O
Lea el siguiente tutorial para configurar la IP del servidor DNS en Linux.
LEER: Cómo configurar la dirección IP de DNS en CentOS / Fedora
LEER: Cómo configurar la dirección IP de DNS en Ubuntu / Debian – ifupdown
LEER: Cómo configurar la dirección IP de DNS en Ubuntu 18.04 – Netplan
Puede usar el comando nslookup o dig para verificar el servidor DNS.
Use el comando dig para verificar la búsqueda directa.
dig www.itzgeek.local
Si no encuentra el comando, instale bind-utils en los derivados de Red Hat o dnsutils en el paquete de derivados de Debian.
Salida:
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> 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: 41979
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good)
;; QUESTION SECTION:
;www.itzgeek.local. IN A
;; ANSWER SECTION:
www.itzgeek.local. 604800 IN A 192.168.0.100
;; AUTHORITY SECTION:
itzgeek.local. 604800 IN NS ns1.itzgeek.local.
;; ADDITIONAL SECTION:
ns1.itzgeek.local. 604800 IN A 192.168.0.10
;; Query time: 1 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:37:45 UTC 2020
;; MSG SIZE rcvd: 124
La respuesta del servidor DNS para la búsqueda directa www.itzgeek.local es 192.168.0.100.
Confirme la búsqueda inversa con el comando de excavación.
dig -x 192.168.0.100
Salida:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good)
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local.
;; ADDITIONAL SECTION:
ns1.itzgeek.local. 604800 IN A 192.168.0.10
;; Query time: 0 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:40:00 UTC 2020
;; MSG SIZE rcvd: 148
La respuesta del servidor DNS para la búsqueda inversa 192.168.0.100 es www.itzgeek.local.
Este resultado confirma que las búsquedas de zona directa e inversa funcionan bien.
Conclusión
Eso es todo. Ha instalado correctamente el servidor DNS en Debian 10/Debian 9. En nuestro próximo artículo, configuraremos el servidor DNS esclavo en Debian 10/Debian 9.