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_change
sebaiknya hanya memutuskan apakah tindakan perlu diambil dan menunda tindakan ke skrip/usr/local/bin/act_on_ip_change
terpisah - skrip
/usr/local/bin/act_on_ip_change
sebaiknya hanya menjalankan perubahan yang diperlukan
Alasan memisahkan kekhawatiran tersebut adalah:
- Anda dapat menguji secara terpisah apakah
dhclient
terpicu 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_change
secara 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