Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.
Integración de servidor DHCP con servidor DNS dinámico.
Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar, públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste, se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos. Esta licencia deberá aparecer como primer texto del documento distribuido
Introducción.
Los servidores DNS pueden funcionar de modo dinámico permitiendo la actualización en tiempo real de los nombres de anfitrión y las direcciones IP asociadas a éstos, a través de la información enviada a través de un servidor DHCP.
Los procedimientos de este documento requieren haber comprendido, estudiado y puesto en práctica los temas descritos en el documentos titulados «Administración de zonas de DNS con nsupdate.» «Configuración de servidor DHCP».
Procedimientos.
Archivo /etc/dhcp/dhcpd.conf.
Edite el archivo /etc/dhcp/dhcpd.conf:
vi /etc/dhcp/dhcpd.conf |
Asumiendo que ya se dispone de un servidor DNS previamente configurado y funcionando, para configurar el servidor DHCP a fin de que actualice automáticamente los registros correspondientes en las zonas del servidor DNS, sólo basta añadir las siguientes opciones:
- ddns-updates con valor on, para activar el soporte de DNS dinámico.
- ddns-domainname utilizando como valor el nombre de dominio de la red de área local.
- ddns-rev-domainname usando como valor in-addr.arpa —sin importar de qué segmento de red se trate.
- update-static-leases con valor on, para permitir a los anfitriones con IP fija actualizar su nombre si se realiza un cambio.
- La inclusión de la misma firma digital de la configuración del DNS.
- Definir las zonas de localhost, zona de re-envío y zona de resolución inversa del DNS, con los valores ejemplificados a continuación, solamente siendo necesario reemplazar los valores resaltados.
Ejemplo:
ddns-update-style interim; |
Archivos de zona.
Crear los archivos de zona.
Para que lo anterior trabaje de manera transparente junto con el servidor DNS, se requiere generar los archivos de zona — en este caso serán red-local.net.zone y 16.172.in-addr.arpa.zone— estén dentro del directorio /var/named/dynamic/. Cambie al directorio /var/named/dynamic/:
cd /var/named/dynamic/ |
Genere con touch los archivos red-local.net.zone y 16.172.in-addr.arpa.zone:
touch red-local.net.zone |
Ambos archivos deben tener permisos de lectura y escritura para usuario y sólo lectura para grupo:
chmod 640 red-local.net.zone |
Ambos archivos deben pertenecer al usuario named y grupo named.
chown named:named red-local.net.zone |
Contenido de los archivos de zona.
Edite el archivo /var/named/dynamic/red-local.net.zone:
vi red-local.net.zone
|
Deberá añadir el siguiente contenido. Modifique y añada los registros que correspondan a su red de área local.
$TTL 3600
@ IN SOA servidor.red-local.net. root.localhost. (
2015090801;
1800;
900;
604800;
3600;
)
@ IN NS servidor.red-local.net.
servidor IN A 172.16.1.1
|
Edite el archivo /var/named/dynamic/16.172.in-addr.arpa.zone:
vi 16.172.in-addr.arpa.zone
|
Deberá añadir el siguiente contenido. Modifique y añada los registros que correspondan a su red de área local.
$TTL 3600
@ IN SOA servidor.red-local.net. root.localhost. (
2015090801;
1800;
900;
604800;
3600;
)
@ IN NS servidor.red-local.net.
$ORIGIN 1.16.172.in-addr.arpa.
1 IN PTR servidor.red-local.net.
|
Modificaciones del archivo /etc/named.conf.
Edite el archivo /etc/named.conf:
vi /etc/named.conf |
Éste deberá tener un contenido similar al siguiente después de añadir la configuración de las zonas red-local.net y 1.16.172.in-addr.arpa en la vista local, justo debajo de la configuración de la zona del dominio añadido durante la práctica del tema «Administración de zonas de DNS con nsupdate»:
|
SElinux.
Si aún no lo ha hecho, por favor active la política de SELinux, la cual permitirá al servidor DNS poder realizar modificaciones a los archivos de zona.
setsebool -P named_write_master_zones 1 |
Reinicie los servicios.
Reinicie el servicio named a fin de que surtan efecto los cambios.
Ejecute lo siguiente si utiliza CentOS 7 o Red Hat™ Enterprise Linux 7:
systemctl restart named |
Ejecute lo siguiente si utiliza ALDOS 1.4, CentOS 6 o Red Hat™ Enterprise Linux 6:
service named restart |
Reinicie también el servicio dhcpd a fin de que surtan efecto los cambios y para que el servidor DHCP comience a interactuar con el servidor DNS.
Ejecute lo siguiente si utiliza CentOS 7 o Red Hat™ Enterprise Linux 7:
systemctl restart dhcpd |
Ejecute lo siguiente si utiliza ALDOS 1.4, CentOS 6 o Red Hat™ Enterprise Linux 6:
service dhcpd restart |
A partir de este momento, todo cliente que tenga definido en su configuración local un nombre de anfitrión y al cual le sea asignada una dirección IP a través del servidor DHCP recién configurado, comunicará su nombre de anfitrión al servidor DHCP, el cual a su vez comunicará al servidor DNS este mismo nombre asociada a la dirección IP asignada al cliente, de modo que el DNS añadirá automáticamente el registro correspondiente a las zonas de re-envío y de resolución inversa correspondientes.
Comprobaciones.
Verifique que el servidor DNS dinámico funciona correctamente, simulando lo que en adelante hará automáticamente en segundo plano el servidor DHCP, añadiendo un par de registros a través de nsupdate. Ejecute lo siguiente para conectarse al servidor DNS utilizando la firma digital que utilizarán tanto el éste como el servidor DHCP:
nsupdate -k /etc/rndc.key |
Ejecute lo siguiente desde el intérprete de mandatos de nsupdate:
server 127.0.0.1 update add prueba.red-local.net. 3600 A 172.16.1.14 send update add 14.1.16.172.in-addr.arpa. 3600 PTR prueba.red-local.net. send quit |
Si lo anterior devuelve errores como el siguiente:
update failed: REFUSED |
Significa que hay errores en el procedimiento realizado o la configuración o bien que la firma digital utilizada en el archivo /etc/named.conf es distinta a la del archivo /etc/rndc.key.
Si lo anterior devuelve errores como el siguiente:
; TSIG error with server: tsig indicates error update failed: REFUSED(BADKEY) |
Significa que el nombre de anfitrión pertenece a un dominio distinto al configurado o bien la dirección IP pertenece a otro bloque direcciones distinto al configurado. Corrija lo necesario si así es el caso.
Si el procedimiento concluyó sin errores, haga consultas al servidor DNS para prueba.red-local.net y 172.16.1.14 para cotejar que el servidor DNS aceptó los dos registros añadidos a través de nsupdate, ejecutando lo siguiente:
host prueba.red-local.net host 172.16.1.14 |
Lo anterior debe devolver una salida similar a la siguiente:
[root@servidor ~]# host prueba.red-local.net prueba.red-local.net has address 172.16.1.14 [root@servidor ~]# host 172.16.1.14 14.1.16.172.in-addr.arpa domain name pointer prueba.red-local.net. |
Si la salida devuelve errores, significa que hay errores en el procedimiento realizado o bien el dominio y zona de resolución inversa son diferentes a los configurados. Corrija lo necesario si así es el caso.
Si el procedimiento fue exitoso, ejecute nuevamente nsupdate para conectarse al servidor DNS:
nsupdate -k /etc/rndc.key |
Ejecute lo siguiente desde el intérprete de mandatos de nsupdate para eliminar los registros:
server 127.0.0.1 update delete prueba.red-local.net. A send update delete 14.1.16.172.in-addr.arpa. PTR send quit |
Ésta es —por cierto— la metodología recomendada para añadir o eliminar registros de zonas en el servidor DNS cuando se utilizan zonas dinámicas.
Ejecute tail con la opción -f y /var/log/messages como argumento para dejar abierto el archivo de registro del sistema en el servidor DHCP:
tail -f /var/log/messages |
Esté atento y observe la actividad que se generará tras conectar un nuevo sistema cliente a la LAN. Al terminar pulse CTRL+C para finalizar el programa.
Realice lo siguiente en el cliente:
- Configure el nombre de anfitrión en una máquina real o máquina virtual.
- Configure la interfaz de red principal para que obtenga su dirección IP a través de DHCP.
- Conecte a la misma LAN que administre el servidor DHCP.
- Observe resultados.