En alguna oportunidad en una intranet o similares se necesita conocer o ubicar algunos hosts en la red de datos, pero por IPs muchas veces no es fácil cuando hay muchos equipos o se tiene algunos equipos que dan algún servicio, como podría ser un servidor web, entonces ubicarlo con nombre es mucho más fácil.
Otra ventaja al realizar un servidor DNS autoritativo es que las consultas a dns de otros servidores del mundo se realizan en nuestro equipo que implementa un servicio DNS (domain name system, o sistema de nombre de dominio), eso quiere decir que ya no se depende de otros servidores DNS públicos en internet como podría ser el conocido 8.8.8.8 de google o el que te da tu proveedor de servicio a internet, entonces es algo interesante que podemos realizar con un sistema operativo GNU/Linux o un BSD utilizando Bind (software para implementar servicio DNS).
Nota: por ahora solamente se realiza un servidor DNS principal, no un secundario.
1. Nuestro escenario: tenemos un equipo con dos interfaces de red (eth0 y eth1), eth0 es la que conecta al modem/router del proveedor y eth1 conecta a un switch en nuestra red LAN (192.168.2.0/24), las interfaces en versiones nuevas de Debian podrían ser enp0s3, enp0sx...
2. configurando ips a nuestras interfaces: a la interface eth0 le asignamos 192.168.1.5/24 y a eth1 192.168.2.5/24
3. agregamos el equipamiento lógico necesario en Debian:
#apt-get install bind9 bind9-doc dnsutils
4. ingresamos a la ruta donde encontraremos todos los archivos a modificar
#cd /etc/bind/
Los archivos principales a modificar son named.conf, named.conf.options, named.conf.local; los archivos que se editan principalmente son named.conf.options (para opciones generales) y named.conf.local, este último para nuestras zonas.
5. editamos el archivo named.conf.options y solamente son necesarias algunas líneas como las que escribo aquí abajo:
//Escuchar en interfaces locales ipv4
listen-on port 53 { 127.0.0.1; 192.168.2.5; };
listen-on-v6 { none; };
//No transferir la información de zona a dns secundario
allow-transfer { none; };
//Aceptar consultas de nuestra red LAN, únicamente.
allow-query { 192.168.2.0/24; };
//Permitir consultas recursivas para la red LAN
allow-recursion { 192.168.2.5; };
//No hacer público la versión de BIND
version none;
6. opciones por defecto se dejan en el archivo named.conf.options, en este caso no se usa reenviadores osea forwarders, nosotros no utilizamos otros dns, nuestro servidor resolverá nombres.
7. creamos las zona principal y la zona inversa en el archivo named.conf.local
//Mi zona principal
zone "intranet.edu" {
type master;
file "/etc/bind/db.intranet.edu";
};
//zona inversa
zone "2.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.2.168.192";
};
Nota: puedes verificar si el archivo está bien configurado con el comando
#named-checkconf named.conf
#named-checkconf named.conf.local
8. los permisos de los archivos que crearemos ya están por defecto correctos, no debemos cambiar, al crearlos Debian GNU/Linux les asigna para usuario root y grupo bind, para no complicarnos copiaremos de los ejemplos, luego lo editamos a nuestros requerimientos.
#cp db.local db.intranet.edu
9. escribimos las líneas como muestra en la imagen de abajo.
Donde observamos el servidor principal con nombre server1.intranet.edu., no tenemos otros servidores y la zona está en la misma ip.
10. creamos la zona inversa
#cp db.intranet.edu db.2.168.192
11. debe quedar como en la imagen de abajo.
Este archivo al indicarle una ip resuelve el nombre.
Nota: en ambos casos se puede comprobar que no haya errores luego de editar dichos archivos con el comando siguiente:
#named-checkzone intranet.edu db.intranet.edu
#named-checkzone 2.168.192.in-addr.arpa db.2.168.192
Se entiende que estamos en la ubicación de los archivos y luego de ejecutar los comandos nos muestra la zona con su serial de año-mes-dia-modificacion (01, es la primera modificación)
Nota: para cualquier cambio en archivos named.conf.local u otro debe reiniciarse el servicio.
#systemctl restart bind9
Verificar cómo está resolviendo
#tail -f /var/log/syslog
12. cambiamos nuestro servidor dns en la ruta /etc/resolv.conf o si usa resolvconf se tendría que cambiar en /etc/network/interfaces o en Ubuntu reciente en el archivo netplan, en nuestro caso es en resolv.conf
13. ahora debes probar en el servidor y en clientes (usar el servidor dns que hemos creado con ip 192.168.2.5)
#dig intranet.edu NS
#ping -c 2 www.intranet.edu
#host intranet.edu
Salir al exterior
#ping -c 2 debian.org
#host debian.org
14. en el cliente podrías utilizar nslookup
Update:
Si existe un servidor web en la red interna LAN con ip 192.168.2.7/24 se debe añadir la ip al archivo db.intranet.edu y apuntar el alias al nombre del servidor web (server2), también un puntero en el archivo db.2.168.192 con número 7
Buscamos el servidor web en la red interna LAN
visita mi canal de Youtube y suscríbete, ahí muestro cómo esta funcionando este servidor DNS 😀
No hay comentarios.:
Publicar un comentario