Seperti yang dikomentari Wouter, pengaturan Anda yang ada tampaknya sudah cukup baik.
Jika Anda menginginkan sesuatu yang kurang bergantung pada dhclient , Anda dapat melihat banyak klien DNS dinamis yang dikemas dalam Debian.
Misalnya, ddclient dapat bereaksi terhadap perubahan DHCP atau hanya memantau antarmuka Ethernet; ketika alamat IP berubah (dan hanya setelah itu), itu dapat memperbarui entri DNS dinamis (pada sejumlah penyedia), serta menjalankan skrip terpisah (yang akan mencakup kedua kasus penggunaan Anda).
Saya mengusulkan untuk lebih menyederhanakan/membagi solusi Anda mengikuti prinsip pemisahan masalah:
- skrip
/etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_changesebaiknya hanya memutuskan apakah tindakan perlu diambil dan menunda tindakan ke skrip/usr/local/bin/act_on_ip_changeterpisah - skrip
/usr/local/bin/act_on_ip_changesebaiknya hanya menjalankan perubahan yang diperlukan
Alasan memisahkan kekhawatiran tersebut adalah:
- Anda dapat menguji secara terpisah apakah
dhclientterpicu dengan benar (tanpa benar-benar mengubah apa pun di sistem Anda selama proses debug) - Anda dapat menguji "pembuatan perubahan" tanpa perlu memperbarui (dan berpotensi kehilangan) IP Anda
- Anda dapat mengeksekusi
/usr/local/bin/act_on_ip_changesecara manual jika diperlukan - bagian-bagiannya jauh lebih mudah dipahami
Singkatnya, saya sarankan untuk memiliki ini di /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