Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para configurar las máquinas de tu red que usen Debian 9 u otros sistemas
Linux, edita sus archivos resolv.conf:
...
#nameserver 192.168.0.1
nameserver 192.168.0.100
Usa el comando ping para intentar resolver el dominio de Internet que
prefieras:
~$ ping google.com
ping: google.com: Fallo temporal en la resolución del nombre
No funciona, esto es buena señal porque el sistema intenta resolver nombres
usando el servidor Debian 9 que aún no está listo.
...
dnssec-validation auto;
...
En una red local privada no es posible aplicar esta capa de seguridad para el
servicio DNS, así que habrá que cambiar el valor a «no«:
...
dnssec-validation no;
...
De esta forma Bind utilizará los servidores DNS raíz de Internet para las
consultas para las que no tiene información propia. Es posible que algunas
consultas puedan tardar más tiempo del habitual, incluso algunas no se
resolverán sin configuraciones adicionales, así que es recomendable añadir
un bloque forwarders en el que indicar servidores DNS caché públicos
alternativos.
Localizamos el bloque forwarders:
...
// forwarders {
// 0.0.0.0;
// };
...
Está desactivado, así que lo activaremos e incluiremos los servidores DNS a
los que solicitaremos la resolución de nombres:
...
forwarders {
8.8.8.8;
8.8.4.4;
};
...
En este caso hemos incluido los servidores DNS de Google, pero podrías
incluir los servidores públicos que creas oportuno, incluyendo los de tu
proveedor de servicios de Internet.
~$ sudo named-checkconf
Si no produce ningún tipo de salida es que todo está correcto.
Con una configuración sin errores, podemos iniciar por primera vez el
servicio bind9:
~$ ping google.com
PING google.com (172.217.16.238) 56(84) bytes of data.
64 bytes from mad08s04-in-f14.1e100.net (172.217.16.238): icmp_seq=1 ttl=52
time=14.4 ms
64 bytes from mad08s04-in-f14.1e100.net (172.217.16.238): icmp_seq=2 ttl=52
time=13.8 ms
64 bytes from mad08s04-in-f14.1e100.net (172.217.16.238): icmp_seq=3 ttl=52
time=29.8 ms
...
//
// Do any local configuration here
//
...
Insertaremos una zona para la resolución de nombres directa, de nombre a
dirección IP:
...
zone "red.local" {
type master;
file "/etc/bind/zones/db.red.local";
};
...
En file hemos indicado el archivo que contendrá los registros de la base de
datos de nombres DNS para nuestro dominio, red.local.
Ahora, opcionalmente, insertaremos una zona para resolución inversa, de
direcciones IP a nombres:
...
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.0.168.192";
};
...
Guardamos los cambios y cerramos el archivo named.conf.local.
Ahora tenemos que crear los archivos de zona que acabamos de indicar en
la configuración. El directorio que hemos indicado para guardar los distitntos
archivos de zona en este ejemplo no existe, así que lo crearemos:
$TTL 1D
@ IN SOA ns.red.local. root.red.local. (
0 ; número de serie
604800 ; refresco
86400 ; reintento
2419200 ; expiración
604800 ; Caché negativa TTL
)
@ IN NS ns.red.local.
ns.red.local. IN A 192.168.0.100
debian9.red.local. IN A 192.168.0.100
debian92.red.local. IN A 192.168.0.109
En el encabezado del registro SOA (Start Of Authority) indicamos el servidor
DNS que se encarga de mantener estos registros, que es el mismo que
estamos configurando (ns.red.local.) y la cuenta de correo electrónico del
administrador (root.red.local.) sin la característica @. Observa que todos los
nombres de dominio finalizan con un punto.
Otro campo importante del registro SOA es el que hemos identificado con el
comantario «número de serie», que es un contador que debemos
incrementar manualmente cada vez que hagamos modificaciones en los
registros.
~$ ping debian92.red.local
PING debian92.red.local (192.168.0.109) 56(84) bytes of data.
64 bytes from 192.168.0.109: icmp_seq=1 ttl=64 time=0.475 ms
64 bytes from 192.168.0.109: icmp_seq=2 ttl=64 time=0.614 ms
64 bytes from 192.168.0.109: icmp_seq=3 ttl=64 time=0.492 ms
...
~$ nslookup 192.168.0.109
Server: 192.168.0.100
Address: 192.168.0.100#53
** server can't find 109.0.168.192.in-addr.arpa: SERVFAIL
La herramienta contacta con el servidor DNS en el puerto estándar, pero no
consigue la resolución. En unos instantes esto cambiará.
$TTL 1D
@ IN SOA red.local. root.red.local. (
0 ; número de serie
604800 ; refresco
86400 ; reintentar
2419200 ; expiración
604800 ; TTL Caché negativa
)
; Servidores de nombres
IN NS ns.red.local.
; Registros PTR
100 IN PTR ns.red.local.
100 IN PTR debian9.red.local.
109 IN PTR debian92.red.local.
Guardados los cambios, comprueba que no haya errores con el
comando named-checkzone (que también sirve para los archivos de
resolución inversa):
~$ nslookup 192.168.0.109
Server: 192.168.0.100
Address: 192.168.0.100#53
109.0.168.192.in-addr.arpa name = debian92.red.local.
¡Justo lo que queríamos!
Conclusión
Ahora ya sabes cómo instalar y configurar un servidor DNS Bind en Debian 9
Stretch, con lo que además de resolver nombres de Internet usando los
servidores DNS que quieras (ya que a veces los de los provedores de Internet
pueden caer), podrás usar dominios y subdominios en las máquinas de tu
red y resolverlos fácilmente.