4.16. Managing dnsmasq's DNS Cache
Problem
You know that dnsmasq automatically creates a local DNS cache. How do you know it's working? How do you see what's in it, and how do you flush it when you're making changes to DNS and want to be sure it's caching fresh data?
Solution
It's easy to see if it's working. From any Linux client or from your Pyramid server, query any Internet site with the dig command twice:
$ dig oreilly.com<snip much output> ;; Query time: 75 msec ;; SERVER: 192.168.1.50#53(192.168.1.50)$ dig oreilly.com<snip much output> ;; Query time: 3 msec ;; SERVER: 192.168.1.50#53(192.168.1.50)
The second request is answered from your local dnsmasq cache, so it is faster. This also verifies that your clients are querying the correct DNS server.
What if you want to flush dnsmasq's cache? Just restart it:
pyramid:~# killall dnsmasqdnsmasq is controlled from /etc/inittab, so it will automatically restart.
To view the contents of the cache, first open /etc/inittab and comment out the line that starts dnsmasq:
pyramid:~# /sbin/rw
pyramid:~# nano /etc/inittab
# dnsmasq. This should always be on.
# DN:23:respawn:/sbin/dnsmasq -k > /dev/null 2>&1Tell init to reread inittab, stop the active dnsmasq process, then start dnsmasq in debugging mode:
pyramid:~# telinit q pyramid:~# killall dnsmasq pyramid:~# dnsmasq -d
This runs it in the foreground, so the next thing you need to do is open a second SSH session, or log in on the serial console, and run this command:
pyramid:~# killall -USR1 ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access