systemadmin.es > Redes > Actualización zonas DNS con las concesiones DHCP

Actualización zonas DNS con las concesiones DHCP

Al hacer una concesión DHCP, nos puede ir bien que se actualice la zona DNS directa e inversa, por lo que deberemos hacer que el DHCP actualize el bind.

Para permitir que el DHCP actualice el named, deberemos generar una clave para las actualizaciones de dichas zonas. Podemos hacerlo mediante rndc-confgen:

# rndc-confgen
# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "iT3HYP45Zl4TgXp3bOBEFg==";
};
(...)

A continuación añadimos la clave en el fichero /etc/bind/dhcpupdate.key, pero debemos hacerlo SIN comillas para hacer la configuración compatible con el DHCP (por lo tanto debemos escoger una clave que no las necesite si no queremos diferenciar la configuración del BIND y la del DHCPd):

key "dhcpupdate" {
        algorithm hmac-md5;
        secret iT3HYP45Zl4TgXp3bOBEFg==;
};

Cambiamos los permisos del fichero para que lo pueda leer el daemon:

chown bind:bind /etc/bind/dhcpupdate.key 

Deberemos añadir a la configuración del named las zonas directas e inversas para nuestro dominio de ejemplo (lolcathost.systemadmin.es):

include "/etc/bind/dhcpupdate.key";

zone "lolcathost.systemadmin.es" {
  type master;
  file "master/lolcathost.db";
  allow-update { key rndc-key; };
};

zone "1.168.192.in-addr.arpa" {
  type master;
  file "master/1.168.192.in-addr.arpa";
  allow-update { key rndc-key; };
};

Los ficheros de zonas deberán contener la parte fija que necesitemos definir, por ejemplo el resolver. El caso de la zona inversa sería:

$TTL	3600
@		IN SOA	ns1701.lolcathost.systemadmin.es. jordi.systemadmin.es. (
					2010112407		; serial
					5H			; refresh
					15M			; retry
					2W			; expiry
					1D )			; minimum

1.168.192.in-addr.arpa.	       		IN NS		ns1701.lolcathost.systemadmin.es.

222					IN PTR		ns1701.lolcathost.systemadmin.es.

Para la zona directa podemos hacer:

$TTL	3600
@		IN SOA	ns1701.lolcathost.systemadmin.es. jordi.systemadmin.es. (
					2010112407		; serial
					5H			; refresh
					15M			; retry
					2W			; expiry
					1D )			; minimum

	       		IN NS		ns1701.lolcathost.systemadmin.es.

ns1701			IN A		192.168.1.222

En la configuración del DHCP deberemos añadir las siguientes directivas para habilitar la actualización dinámica de las zonas:

#DDNS
ddns-update-style interim;
update-static-leases on;

Y finalmente deberemos incluir la clave que hemos añadido también en el BIND y añadir las zonas a actualizar con la clave:

include "/etc/bind/dhcpupdate.key";

#zones DDNS
zone 1.18.172.in-addr.arpa {
  primary 172.18.1.222;
  key dhcpupdate;
}

zone lolcathost.perdiguer.com {
  primary 172.18.1.222;
  key dhcpupdate;
}

En los logs del equipos podremos ver como cuando se concede una IP a un dispositivo se actualizan las zonas DNS:

Feb  5 17:45:57 localhost dhcpd: DHCPREQUEST for 192.168.1.39 from cc:fa:00:aa:aa:aa via eth0
Feb  5 17:45:57 localhost dhcpd: DHCPACK on 192.168.1.39 to cc:fa:00:aa:aa:aa via eth0
Feb  5 17:45:57 localhost dhcpd: Added new forward map from android-d32dc32d23.lolcathost.systemadmin.es to 192.168.1.39
Feb  5 17:45:57 localhost dhcpd: Added reverse map from 39.1.168.192.in-addr.arpa. to android-d32dc32d23.lolcathost.perdiguer.com

Para poder definir un nombre a los dispositivos independiente del que ellos anuncian para la zona DNS deberemos usar la opción ddns-hostname en la reserva DHCP:

host nexus5 {
        option host-name        "nexus5";
        ddns-hostname           "nexus5";
        hardware ethernet       cc:fa:00:aa:aa:aa;
        fixed-address           172.18.1.39;
}

Podremos ver que mediante dicha opción se actualiza a dicho nombre:

Feb  5 19:14:19 localhost dhcpd: DHCPREQUEST for 192.168.1.39 from cc:fa:00:aa:aa:aa via eth0
Feb  5 19:14:19 localhost dhcpd: DHCPACK on 192.168.1.39 to cc:fa:00:aa:aa:aa via eth0
Feb  5 19:14:20 localhost dhcpd: Added new forward map from nexus5.lolcathost.systemadmin.es to 192.168.1.39
Feb  5 19:14:21 localhost dhcpd: Added reverse map from 39.1.168.192.in-addr.arpa. to nexus5.lolcathost.systemadmin.es

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>