Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OSX Mavericks - BIND no longer installed... how to get local DNS server working?

Tags:

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

like image 504
steve Avatar asked Oct 23 '13 09:10

steve


People also ask

How do I fix the DNS server IP Cannot be found Mac?

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.


1 Answers

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.

like image 83
Camden S. Avatar answered Nov 11 '22 12:11

Camden S.