I’ve installed dnsmasq on my Linux server (Centos 5.1) and stopped BIND and dhcpd. I checked prior to stopping them, and BIND was taking up ~200 MB RAM. I run a mail server (Postfix) so the large amount of RAM used by BIND is probably due to all the DNS look-ups it has to perform. I will be interested in seeing how much RAM I now use.
Configuration was quite easy, certainly a lot easier than BIND and dhcpd. I did hit two challenges:
I started accepting lots of email for a domain that I do host a website for, but I don’t run email services for it. So it was never in my local named files, but I did include it in the /etc/hosts file which is where dnsmasq reads the dns names and ip addresses from. So I removed it from the hosts file and the email was still being accepted. When it couldn’t find the host, it sent a request to the upstream dns servers. That was solved by adding the parameter “local=/domain.tld” (with “domain.tld” being replaced with the domain name I use on the internal network).
I noticed a “log-queries” command which is supposed to log each DNS query. I was curious as to what that would look like, so I enabled it. Only, nothing happened. Strange, as the “log-dhcp” command worked fine. Eventually I found a reference in a mailing list somewhere that your syslog facility must be in debug mode, and it does mention that in the sample log file, but as the log-dhcp command worked without that, I had paid no attention to it.