Bind9 master-slave setup is designed for failover, however when the primary dns server in /etc/hosts is down, there's a 5 second timeout by default before giving up, and trying the secondary server. This is experienced as everything being slow.
In order to avoid this 5 second lag, a virtual IP can be used - in order to simply move the primary ip over to the secondary server.
There's however one problem with this, and that is that Bind9 doesn't support listening to 0.0.0.0, as it actually looks up the ips when loading configuration (with listen {any;} set).
To solve this, the following configuration solves this quite nicely (thanks Christoph Berg)
In order to avoid this 5 second lag, a virtual IP can be used - in order to simply move the primary ip over to the secondary server.
There's however one problem with this, and that is that Bind9 doesn't support listening to 0.0.0.0, as it actually looks up the ips when loading configuration (with listen {any;} set).
To solve this, the following configuration solves this quite nicely (thanks Christoph Berg)
# cat /etc/ha.d/haresources server01 bind9release IPaddr::10.0.0.3 bind9takeover
# cat /etc/ha.d/resource.d/bind9release #!/bin/sh # when giving up resources, reload bind9 case $1 in stop) /etc/init.d/bind9 reload ;; esac exit 0
# cat /etc/ha.d/resource.d/bind9takeover #!/bin/sh # on takeover, reload bind9 case $1 in start) /etc/init.d/bind9 reload ;; esac exit 0