BIND Slave Not Working when Master is Down


I have a Master DNS server running on Windows 2008 and a Slave DNS server running BIND on Linux.

The slave successfully collects the zone files from the master server, and can serve dns lookup requests fine.

However, recently the Master DNS server went down and I found that the slave also stopped working. When I run a test on the slave server using nslookup, it said

server can't find SERVFAIL

The zone TTL is very low (2 minutes) to ensure we can switch to a backup server quite quickly. In the event that the Master server goes down, how can I ensure that the slave server keeps running, even when the zone files become old?

Here are the settings from windows

DNS Screenshot
And a copy of the zone file from the slave server

$TTL 120        ; 2 minutes IN SOA (
                                2012012061 ; serial
                                120        ; refresh (2 minutes)
                                120        ; retry (2 minutes)
                                120        ; expire (2 minutes)
                                120        ; minimum (2 minutes)
$TTL 86400      ; 1 day
$TTL 120        ; 2 minutes
                        A       **.222.**.254
                        MX      10
                        MX      10
autodiscover            A       **.46.**.17
backupmx                A       **.222.**.224
ftp                     A       **.222.**.254
mail                    A       **.222.**.254
my                      A       **.222.**.254
ns1                     A       **.222.**.254
ns2                     A       **.222.**.51
ns5                     A       **.222.**.254
ns6                     A       **.222.**.51
pop3                    A       **.222.**.254
sip1                    A       **.222.**.126
$TTL 86400      ; 1 day
sip2                    A       **.250.**.36
$TTL 120        ; 2 minutes
sipprovisioning         A       **.222.**.254
sipserver               A       **.222.**.126
smtp                    A       **.222.**.254
webmail                 A       **.222.**.254
webserver1              A       **.222.**.254
www                     A       **.222.**.254

Open in new window

The goals are...
1) To keep TTL at 2 minutes to ensure we can make instant changes to our domains.
2) To ensure the slave server keeps zone files for at least 2 days when the primary server is offline.

Who is Participating?
PapertripConnect With a Mentor Commented:
Your refresh, retry, and expire intervals are all a problem, especially the latter.  An expiry of 2 minutes means that after 2 minutes of no contact with the master the slave will stop responding to requests.

Some low-end values you could use for rapid/volatile changes are

retry - 1200
refresh - 800

Those are just examples but your expiry needs to be 172800 if you want the slave to answer queries for 2 days after losing contact with the master.

Read through for explanations on the different SOA fields.
Usually the lower the level the more frequent the hits on your server.

Refresh should be 3600, retry 600, expiry 30 days 25920000
DanJournoAuthor Commented:
Arnold, how would those settings ensure that any changes are updated instantly?
We need a low TTL to ensure that any ip changes are relatively quick to ensure we can switch over to a backup application server when necessary.

Its Windows 2008 Web Edition. No AD.
A proven path to a career in data science

At Springboard, we know how to get you a job in data science. With Springboard’s Data Science Career Track, you’ll master data science  with a curriculum built by industry experts. You’ll work on real projects, and get 1-on-1 mentorship from a data scientist.

DanJournoAuthor Commented:
Papertrip, I'll read through that link and post any questions.
Khandakar Ashfaqur RahmanExpert/ConsultantCommented:
Basically, SRVFAIL means server fail which is configurational error.
To check your named.conf file check the following command :
named-checkconf /etc/named.conf

Does it show any error?
I see your slave zone file has stopped updating (by checking serial number) which has still 2012012061 serial.

You can find out the cause and error by checking DNS log file.
However, I'm attaching /etc/named.conf file which could give you idea.
Part of your configuration there should be a notify within the zone transfer tab, this will notify the slave that a change has occurred which will trigger a refresh on the slave.

You should do a per host TTL rather than for the entire zone.

my                      120 A       **.222.**.254
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.