I need to test various DNS changes on my domain which require that the zone file changes I make are updated quickly.
I'm a bit confused between Refresh, Retry, Expire and TTL values. Which is the one I need to set to a minimum, to "propogate DNS changes" (if I may use the term) without much latency? I'm rather new to nameservers, but have three nameservers set to rsync their zone files every 2 minutes. The first server (ns1.mydomain) has the following setup:
mydomain.com. IN SOA ns1.mainnameserver.co.in. admin.mydomain.com. ( 2007010401 ; Serial 1800 ; Refresh [1h=3600] 1800=30m 600 ; Retry [10m] 86400 ; Expire [2weeks] 86400=1day 600 ) ; Negative Cache TTL [1h] ; $TTL 3m; mydomain.com. IN NS ns1.mainnameserver.co.in. mydomain.com. IN NS ns2.mainnameserver.co.in. mydomain.com. IN NS ns3.mainnameserver.co.in. mydomain.com. IN MX 10 her.mainnameserver.co.in. mydomain.com. IN A 184.108.40.206 www.mydomain.com. IN A 220.127.116.11 ns1.mydomain.com. IN A 18.104.22.168 ns2.mydomain.com. IN A 22.214.171.124 ns3.mydomain.com. IN A 126.96.36.199 mydomain.com. 3501 IN TXT "v=spf1 a:her.mainnameserver.co.in mx:hermes.mainnameserver.co.in mx: ip4:188.8.131.52 ~all" *.mydomain.com. 3600 IN CNAME mydomain.com.
I've assumed that TTL is the value I need, and have set it as above, to 3 minutes. Is it the right way to do it?
On a related note..With the above zonefile, when I do a named-checkzone, I get
/var/lib/bind/db.mydomain.com:1: no TTL specified; using SOA MINTTL instead. Why is this message shown? How do I avoid the warning and do it properly?