1. SOA records
A problem I've found in quite some nameservers is that the various timers have been set (far) too low. Especially for top level domain nameservers this causes unnecessary traffic over international and intercontinental links. Unfortunately the examples given in the BIND manual, in RFC's and in some expert documents give those very short timer values, and that's most likely what people have modeled their SOA records after. First of all a short explanation of the timers used in the SOA record: - Refresh: The SOA record of the primary server is checked every "refresh" time by the secondary servers; if it has changed, a zone transfer is done. - Retry: If a secondary server cannot reach the primary server, it tries it again every "retry" time. - Expire: If for "expire" time the primary server cannot be reached, all information about the zone is invalidated on the secondary servers (i.e., they are no longer authoritative for that zone). - Minimum TTL: The default TTL value for all records in the zone file; a different TTL value may be given explicitly in a record when necessary. (This timer is named "Minimum", and that's what it's function should be according to STD 13, RFC 1035std13, but most (all?) implementations take it as the default value exported with records without an explicit TTL value). For top level domain servers I would recommend the following values: 86400 ; Refresh 24 hours 7200 ; Retry 2 hours 2592000 ; Expire 30 days 345600 ; Minimum TTL 4 days For other servers I would suggest: 28800 ; Refresh 8 hours 7200 ; Retry 2 hours 604800 ; Expire 7 days 86400 ; Minimum TTL 1 day but here the frequency of changes, the required speed of propagation, the reachability of the primary server etc. play a role in optimizing the timer values.
