miércoles, 14 de diciembre de 2016
Actualizaciones dinamicas de DNS mediante DHCP
DNS Dinamico
Es el mecanismo mediante el cual modificamos la información contenida en los ficheros de registros de recursos de las zonas definidas como primarias en un servidor DNS, mientras este se encuentra en ejecución, sin tener que editar ningún fichero de zona.
Mediante este sistema podemos configurar el servidor DNS para que reciba actualizaciones dinámicas que el servidor DHCP le enviará cuando asigne una direccion IP a un cliente.
El cliente informará al servidor DHCP de su cual es su nombre y el servidor DHCP le cede una IP. Por tanto, el servidor DHCP cuenta con la información tanto de la IP como del nombre del equipo cliente, y puede entonces solicitar al sercidor DNS que incluya un registro tipo A que asocie ese nombre con la IP en el dominio de resolucion directa y la IP con el nombre en un registro PTR en la zona de resolución inversa.
Por ejemplo, si el cliente se llama portatil y la IP que le ha sido asignada dinamicamente mediante DHCP es 192.168.100.199 dentro de la red 192.168.100.0/24 y el dominio aulaser.com entonces se deberia añadir un registro de tipo A a la zona de resolucion directa del dominio y un registro de tipo PTR en la zona de resolcion inversa.
En aulaser.com.
portatil IN A 192.168.100.199
En 100.168.192.in-addr.arpa.
199 IN PTR portatil.aulaser.com.
Para que una zona sea dinamica basta con configurar que permite actualizaciones como opcion en la definicion de la zona.
allow-update { }
Si la zona es dinamica estará sufriendo modificaciones, y para asegurarnos que no se pierden cuando queramos realizar nuevas modificaciones manuales en el fichero debemos previamente congelar la zona.
Paso 1. Crear una clave dnssec
Mediante el siguiente comando:
sudo dnssec-keygen -K /etc/bind -a HMAC-MD5 -b 128 -n USER dhcpupdate
opciones:
K - directorio donde guarda los ficheros con las claves
a - algoritmo
b - tamaño en bits
n - tipo de clave
y finalmente el nombre de la clave
Cuando termina nos hará un eco del nombre del fichero .key
Kdhcpupdate.+157+05787.key
Lo abrimos para ver la clave y el token
dhcpupdate. IN KEY 0 3 157 isgrJD32SZV0f0zaWIS7pw==
Paso 2. Configurar BIND
Ahora configuraremos el named.conf de BIND
Añadimos la siguiente entrada
key dhcpupdate {
algorithm hmac-md5;
secret "isgrJD32SZV0f0zaWIS7pw==";
};
Podemos hacerlo desde la opcion DNS Keys en Webmin
Paso 3. Permitir actualizacion a las zonas
En el fichero named.conf.local añadir la opcion
allow-update { dhcpupdate };
dentro de la configuracion de la zona
zone "aulaser.com" {
type master;
file "/var/lib/bind/aulaser.com.hosts";
allow-transfer {
192.168.100.11;
};
allow-update {
key dhcpupdate;
};
};
zone "100.168.192.in-addr.arpa" {
type master;
file "/var/lib/bind/192.168.100.rev";
allow-update {
key dhcpupdate;
};
};
No olvidarse de actualizar la configuracion del servidor
Paso 4. Prueba
Para probar que el servidor DNS permite actualizaciones automaticas de DNS
tenemos el comando
nsupdate
lo usaremos en modo interactivo y le iremos enviando comandos
>server servidor.aulaser.com
>key dhcpupdate isgrJD32SZV0f0zaWIS7pw==
>zone aulaser.com
>update add prueba.aulaser.com. 3600 IN A 192.168.100.199
>send
>zone 100.168.192.in-addr.arpa
>update add 199.100.168.192.in-addr.arpa. 3600 IN PTR prueba.aulaser.com.
>send
Salimos del programa nsupdate con el commando
>quit
y hacemos un
>dig prueba.aulaser.com
y un
>dig -x 192.168.100.199
Paso 5. Configuración de DHCP
En dhcpd.conf
ddns-update-style interim;
update-static-leases on;
key dhcpupdate {
secret isgrJD32SZV0f0zaWIS7pw==;
algorithm hmac-md5;
}
# Zona de resolucion directa aulaser.com
zone aulaser.com. {
primary servidor.aulaser.com;
key dhcpupdate;
}
# Zona de resolucion inversa de aulaser.com - red 192.168.100.0/24
zone 100.168.192.in-addr.arpa. {
primary servidor.aulaser.com;
key dhcpupdate;
}
# Aula de SER
subnet 192.168.100.0 netmask 255.255.255.0 {
allow unknown-clients;
allow client-updates;
ddns-rev-domainname "in-addr.arpa";
ddns-domainname "aulaser.com.";
default-lease-time 60;
ddns-updates on;
option domain-name-servers 192.168.100.254;
option domain-name "aulaser.com";
option broadcast-address 192.168.100.255;
option subnet-mask 255.255.255.0;
option routers 192.168.100.254;
pool {
range 192.168.100.101 192.168.100.150;
}
}
Los cambios de IP no surtiran efecto inmediato ya que se guardan las resoluciones en cache local de los equipos, para vaciar/limpiar la cache ejecutamos el comando
>sudo systemd-resolve --flush-caches
Fuentes:
http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/#id2255993
https://lani78.com/2012/07/23/make-your-dhcp-server-dynamically-update-your-dns-records-on-ubuntu-12-04-precise-pangolin/
https://lani78.com/2008/08/12/dhcp-server-update-dns-records/
http://www.zytrax.com/books/dns/ch9/dhcp.html
http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/
https://askubuntu.com/questions/2219/how-do-i-clear-the-dns-cache
Suscribirse a:
Entradas (Atom)