Well, this would squarely be a bind9 issue. The use of 'netplan apply' there just means that an IP might have changed, or the state of the interface changed enough (bringing it down, then up again, readding static addresses, etc) that bind couldn't make sense of it.
'netplan apply' is supposed to do just that: apply the network configuration, via systemd-networkd. If it happened to be DHCP, you could potentially use 'critical: true', but that's not really going to help much for static addresses (which you'd most likely use for a DNS server).
I think this needs to be investigated in bind9: how does it bind addresses? How does it watch for network devices changes and what does it do in that case?
Well, this would squarely be a bind9 issue. The use of 'netplan apply' there just means that an IP might have changed, or the state of the interface changed enough (bringing it down, then up again, readding static addresses, etc) that bind couldn't make sense of it.
'netplan apply' is supposed to do just that: apply the network configuration, via systemd-networkd. If it happened to be DHCP, you could potentially use 'critical: true', but that's not really going to help much for static addresses (which you'd most likely use for a DNS server).
I think this needs to be investigated in bind9: how does it bind addresses? How does it watch for network devices changes and what does it do in that case?