Refresh = Time when slave will try to refresh zone from the master (recommend 1200-43200 seconds)
Retry = Time between retries if slave fails to contact master (180-900)
SOA Fields
241920 ; Expire
60) ; Negative Cache TTL
Expire = When zone data is no longer authoritative (used by slave only)
Everytime refresh expires the slave will attempt to read the SOA record from the zone master (if sn is higher). If contact is made the expiry and refresh values are reset and the cycle starts again. If the slave fails to contact the master it will retry every retry period but continue to respond authoritatively for the zone until the expiry value is reached at which point it will stop answering authoritatively for the domain. (2-4 weeks)
Negative cache ttl = If i request a domain that doesn't exist, client should cache for this long.
DNS Debugging
Steps (order matters)
Configure master
Configure slave
Delegation (recursive lookups)
not just yet
Can we dig an A record for a host inside our domain?
How about outside our domain?
dig
Examples:
dig @nameserver.ip hostname RECORDTYPE
dig @ns1.thegummibear.com www.thegummibear.com A
dig @ns1.thegummibear.com www.nfl.com A (will fail until we enable recursion)
dig @ns1.thegummibear.com thegummibear.com NS
dig @ns2.thegummibear.com thegummibear.com SOA
Master Troubleshooting
Only 2 files we edited:
/etc/bind/named.conf.local
/etc/bind/db.yourzonefile
Did you increment Serial after making change?
ALWAYS READ SYSLOG MESSAGES FOR ERRORS
Test from same machine, different machine, test A records, NS, SOA,