Comme Wouter l'a commenté, votre configuration existante semble déjà assez correcte.
Si vous voulez quelque chose de moins dépendant de dhclient
, vous pouvez jeter un œil aux nombreux clients DNS dynamiques fournis avec Debian.
Par exemple, ddclient
peut réagir aux modifications DHCP ou simplement surveiller une interface Ethernet ; lorsque l'adresse IP change (et seulement alors), il peut mettre à jour une entrée DNS dynamique (sur n'importe quel nombre de fournisseurs), ainsi qu'exécuter un script séparé (qui couvrirait vos deux cas d'utilisation).
Je vous propose de simplifier/scinder davantage votre solution en suivant le principe de séparation des préoccupations :
- un script
/etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change
devrait seulement décider si une action doit être entreprise et reporter l'action à un script séparé/usr/local/bin/act_on_ip_change
- le script
/usr/local/bin/act_on_ip_change
ne doit exécuter que les modifications nécessaires
Les raisons de séparer ces préoccupations sont :
- vous pouvez tester séparément si
dhclient
se déclenche correctement (sans rien modifier sur votre système pendant le débogage) - vous pouvez tester le "change making" sans avoir besoin de renouveler (et donc de perdre potentiellement) votre IP
- vous pouvez exécuter
/usr/local/bin/act_on_ip_change
manuellement en cas de besoin - les parties sont beaucoup plus faciles à comprendre
En bref, je suggérerais d'avoir ceci dans /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