I have always used BIND on OSX to provide a local DNS resolver for my local development machines, particularly to facilitate virtual machines accessing my local dev environment.
Men & Mice is offering BIND installers for free at http://support.menandmice.com/download/bind/macosx/10.9-Mavericks/
MacOS X 10.4 (PPC), 10.5/10.6 (x86) and 10.7/10.8 (and new) 10.9 (x86_64)
Here is my recommendation for a basic "/etc/named.conf" file for BIND 9.9.4. Many basic configuration recommendations in the Internet and templates from BIND installations in Linux/BSD distributions have not been updated to recent updates in BIND and are not optimal (although they continue to work)
// BIND named.conf caching only DNS server
// configuration file for
// BIND 9.7 and up
options {
// set the DNS servers "home" directory
// all files with relative path names
// will be read or written from this
// directory
directory "/var/named";
// disable query-logging on start
// query-logging can be enabled using
// "rndc querylog"
querylog no;
};
// automatic empty zone for the "localhost" name
zone "localhost" IN {
type master;
database "_builtin empty . nothing.invalid.";
};
// logging template for a caching DNS server
logging {
channel syslog { syslog daemon; severity info; };
channel security { file "security.log" versions 10 size 50M; print-time yes; };
channel query_log {
file "query.log" versions 10 size 50M; severity debug; print-time yes;
};
category general { syslog; };
category security { security; };
category queries { query_log; };
category dnssec { security; };
category default { syslog; };
category resolver { syslog; };
category client { syslog; };
category query-errors { query_log; };
category edns-disabled { syslog; };
};
Some comments:
if no "control" block is defined, the defaul control statement is being used. The default control configuration is
controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; };
never specify "query-source" with an port number for an caching DNS server (I would prefer not to see it even it commented out, someone might enable it and create a security hole), it is a security risk (it disables UDP port randomization abd therefor enables easy DNS cache spoofing)