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.
Foolishly I decided to upgrade to OSX Mavericks overnight and it appears BIND is no longer installed - even when the command line developer tools are added.
Anyone have a suggestion of how to restore this functionality, or if the latest OSX has an alternative DNS solution in place?
Thanks, Steve
Step 1: Open System Preferences and go to Network settings. Step 2: Go to Advanced network settings. Step 3: Then go to TCP/IP and on the right side you will see Renew DHCP Lease. Select it and It will automatically release and renew your IP address on Mac.
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 # [email protected] # # 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 <<END // // Include keys file // include "/etc/rndc.key"; // Declares control channels to be used by the rndc utility. // // It is recommended that 127.0.0.1 be the only address used. // This also allows non-privileged users on the local host to manage // your name server. // // Default controls // controls { inet 127.0.0.1 port 54 allow {any;} keys { "rndc-key"; }; }; options { directory "/var/named"; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; logging { category default { _default_log; }; channel _default_log { file "/Library/Logs/named.log"; severity info; print-time yes; }; }; END # Symlink Homebrew's named.conf to the typical /etc/ location. ln -s /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf /etc/named.conf # Create directory that bind expects to store zone files mkdir /var/named curl http://www.internic.net/domain/named.root > /var/named/named.ca # 3) CREATE A LuanchDaemon FILE: cat > /System/Library/LaunchDaemons/org.isc.named.plist <<END <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>EnableTransactions</key> <true/> <key>Label</key> <string>org.isc.named</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/named</string> <string>-f</string> </array> <key>ServiceIPC</key> <false/> </dict> </plist> 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With