DNS - Any way to force a nameserver to update the record of a domain?
I am doing some work on some domain names. I'm updating them. By using dig
I can query our nameserver and I can see that the correct name has been updated. However our office dns cache is still showing the old name. Yesterday I set the TTL down to 10 minutes, so I don't have to wait long. However is there any way to trick the office's dns cache to update? Any sneaky little trick I can do to make things easier?
UPDATE Let's assume I don't have access to the server, and can't restart it? Is there anything else I can do?
Solution 1:
Assuming your DNS server is on a PC and not a router etc:
Linux cache flush:
/etc/init.d/nscd restart
Or for distros without nscd
/etc/init.d/named restart
Windows client cache flush for individual machines:
ipconfig /flushdns
Windows server cache flush for office server (thanks to ericmayo for the correction):
- Navigate to Administrator Tools
- expand the server object
- right click cached objects
- select clear cache
Mac (possibly?!):
dscacheutil -flushcache
If you have a web GUI etc for a router, there will be an option in there somewhere.
Cross platform cache flushing as above
About DNS and caching
Solution 2:
If you are running BIND as a resolver for your office - ie. not forwarding to another a resolver.
Flush everything in the cache:
rndc flush
Flush a specific record:
rndc flushname example.com
If you are forwarding then you are at the mercy of the forwarder's cache.
Solution 3:
With the Windows DNS just restarting the service flushes the cache. Worth a try on your office server.
JR
Solution 4:
If your using Windows, you can use nltest.
/DSREGDNS - Force registration of all DC-specific DNS records
/DSDEREGDNS:<DnsHostName> - Deregister DC-specific DNS records for specified DC
/DOM:<DnsDomainName> /DOMGUID:<DomainGuid> /DSAGUID:<DsaGuid>
/DSQUERYDNS - Query the status of the last update for all DC-specific DNS records
And if your using WINS, nbtstat.