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.
Installing Homebrew and using it to installing bind seems the best route.
There are few little "gotcha's", so I put together this bash script to simplify it all.
1) Install Homebrew.
2) Save this file to your Mac as "ConfigureBrewBindOnOSX10_9.sh" and run it (sh ./ConfigureBrewBindOnOSX10_9.sh
) , or run it's commands line-by-line by hand (if you want to see more detail as you go.
Contents of ConfigureBrewBindOnOSX10_9.sh
#!/bin/bash
# Last Updated: Jun 17, 2014
# camden@arrowtech.net
#
# Run as root or sudo the commands that need it as you go.
# 1) USE HOMEBREW TO INSTALL BIND
brew install bind
# 2) CONFIGURE BIND
# Create a custom launch key for BIND
/usr/local/sbin/rndc-confgen > /etc/rndc.conf
head -n 6 /etc/rndc.conf > /etc/rndc.key
# Set up a basic named.conf file.
# You may need to replace 9.10.0-P2 with the current version number if it is out of date.
cat > /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf < /var/named/named.ca
# 3) CREATE A LuanchDaemon FILE:
cat > /System/Library/LaunchDaemons/org.isc.named.plist <
Disabled
EnableTransactions
Label
org.isc.named
OnDemand
ProgramArguments
/usr/local/sbin/named
-f
ServiceIPC
END
chown root:wheel /System/Library/LaunchDaemons/org.isc.named.plist
chmod 644 /System/Library/LaunchDaemons/org.isc.named.plist
# Shutdown bind (if it was running)
#launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist
# Launch BIND and set it to start automatically on system reboot.
launchctl load -wF /System/Library/LaunchDaemons/org.isc.named.plist
Let me know if you need any help, I've successfully configured this on quiet a few machines.