Como comentó Wouter, su configuración existente ya parece bastante decente.
Si quieres algo menos dependiente de dhclient
, podría echar un vistazo a los muchos clientes DNS dinámicos empaquetados en Debian.
Por ejemplo, ddclient
puede reaccionar a los cambios de DHCP o simplemente monitorear una interfaz Ethernet; cuando la dirección IP cambia (y solo entonces), puede actualizar una entrada DNS dinámica (en cualquier número de proveedores), así como ejecutar un script separado (que cubriría ambos casos de uso).
Propongo simplificar/dividir aún más su solución siguiendo el principio de separación de preocupaciones:
- un guión
/etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change
solo debe decidir si es necesario realizar una acción y diferir la acción a un script separado/usr/local/bin/act_on_ip_change
- el guión
/usr/local/bin/act_on_ip_change
solo debe ejecutar los cambios necesarios
Las razones para separar esas preocupaciones son:
- puede probar por separado si
dhclient
se activa correctamente (sin modificar nada en su sistema durante la depuración) - puede probar la "realización de cambios" sin la necesidad de renovar (y, por lo tanto, perder potencialmente) su IP
- puedes ejecutar
/usr/local/bin/act_on_ip_change
manualmente en caso de que sea necesario - las partes son mucho más fáciles de entender
En resumen, sugeriría tener esto en /etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change_action
:
# based on /etc/dhcp/dhclient-exit-hooks.d/debug
if [ "$reason" = "BOUND" -a "$old_ip_address" != "$new_ip_address" ]; then
/usr/local/bin/act_on_ip_change
fi