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.

Autor: Joel Barrios Dueñas
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;
ddns-updates on;
ddns-domainname "red-local.net.";
ddns-rev-domainname "in-addr.arpa.";
update-static-leases on;

ignore client-updates;
authoritative;
default-lease-time 900;
max-lease-time 900;
option ip-forwarding off;
option domain-name "red-local.net";
option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;

# Éste es el mismo archivo de firma digital de BIND.
include "/etc/rndc.key";

zone localdomain. {
    primary 127.0.0.1;
    key rndc-key;
}
zone 16.172.in-addr.arpa. {
    primary 127.0.0.1;
    key rndc-key;
}
zone red-local.net. {
    primary 127.0.0.1;
    key rndc-key;
}


shared-network redlocal {
    subnet 172.16.1.0 netmask 255.255.255.240 {
        option routers 172.16.1.1;
        option subnet-mask 255.255.255.240;
        option broadcast-address 172.16.1.15;
        option domain-name-servers 172.16.1.1;
        option netbios-name-servers 172.16.1.1;
        range 172.16.1.2 172.16.1.14;
    }
}

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
touch 16.172.in-addr.arpa.zone

Ambos archivos deben tener permisos de lectura y escritura para usuario y sólo lectura para grupo:

chmod 640 red-local.net.zone
chmod 640 16.172.in-addr.arpa.zone

Ambos archivos deben pertenecer al usuario named y grupo named.

chown named:named red-local.net.zone
chown named:named 16.172.in-addr.arpa.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»:

options {
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    managed-keys-directory "/var/named/dynamic";
    version "BIND";
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    forward first;
// Sólo habilitar lo siguiente si se va a utilizar DNSSEC
// y si los servidores en forwarders tienen soporte para DNSSEC.

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    bindkeys-file "/etc/named.iscdlv.key";
};

include "/etc/rndc.key";
include "/etc/named.root.key";

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
    category lame-servers { null; };
    category dnssec { null; };
};

controls {
    inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; };
};

view "local" {
    match-clients { 127.0.0.0/8; 172.16.1.0/26; };
    recursion yes;
    include "/etc/named.rfc1912.zones";
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "dominio.com" {
        type master;
        file "dynamic/dominio.com.zone";
        allow-update { key "rndc-key"; };
        allow-transfer { 192.168.1.2; };
    }
    zone "red-local.net" {
        type master;
        file "dynamic/red-local.net.zone";
        allow-update { key "rndc-key"; };
    };
    zone "16.172.in-addr.arpa" {
        type master;
        file "dynamic/16.172.in-addr.arpa.zone";
        allow-update { key "rndc-key"; };
    };

};

view "public" {
    match-clients { any; };
    recursion no;
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "dominio.com" {
        type master;
        file "dynamic/dominio.com.zone";
        allow-update { key "rndc-key"; };
        allow-transfer { 192.168.1.2; };
    }
};

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:

  1. Configure el nombre de anfitrión en una máquina real o máquina virtual.
  2. Configure la interfaz de red principal para que obtenga su dirección IP a través de DHCP.
  3. Conecte a la misma LAN que administre el servidor DHCP.
  4. Observe resultados.

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Última Edición: 19/09/2016, 20:41|Hits: 5,678 Ver la versión para imprimir