DNS zone transfer interval

binddomain-name-systemsolaris

I've never made a change to a DNS record before. In researching the DNS servers I inherited (Solaris 5.6 with BIND v9.2.3), I found that DNS_A (private) is the primary DNS server and it replicates to DNS_B and DNC_C (both public) via the zone's db file option:

allow-transfer { 192.in.ter.nal; 173.ex.ter.nal; };

The header from the zone file is:

@ IN SOA DNS_A.redacted.com. postmaster.redacted.com. (
    2013010401  ; serial
    300 ; refresh
    120 ; retry
    6048000 ; expire
    300 )   ; ttl

I understand that I have to increment the serial number when I make the change so that the secondary DNS servers recognize a change, but will my secondary DNS servers not look for a change until the "expire" time is reached? If that's specified in seconds, that's 70 days.

What do the refresh, retry, expire, and ttl times mean?

Best Answer

You have to change the serial value to send a notification to all your slave servers telling them that the zone just changed so they can get the update.

Here follows the meaning of these items:

  • ttl: default time-to-live for cached entries, defines how long those entries should be considered fresh;
  • refresh: the time used by slave to check for updates on master;
  • retry: time between retries when slave fails to contact master after refresh time;
  • expiry: indicates that the zone is no longer valid after this time, used by slave servers only.

More on: http://www.zytrax.com/books/dns/ch8/soa.html