How to add some additional DNS search domains without ignoring the DHCP ones?

I just want to add my own list of Search Domains but without overriding the ones returned by the DHCP?

As anyone would imagine I already tried to add them to Network > Advanced > DNS but adding them there it will override the ones from DHCP, which is not my intend.

It would be perfect if I could add them after the ones form DHCP, but I would also accept a solution that adds them after.

2nd try would be /etc/resolv.conf but the message from the file is as clear as it can be:

# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.

Personally, I would send the guy who wrote this message to do some phone support for two months. So, he would learn to add some hints next time he documents things: where are you supposed to tune the settings? or include a link to a knowledge base article.

Still, I don't want something that is lost on minor OS X update.

How can I do this for OS X 10.7 ?


Solution 1:

Perhaps try adding/appending them to /etc/resolv.conf? You cannot add them to the end of the list manually, delimiting with a comma in Lion? It seems to work in 10.6, it adds it in addition to the DHCP supplied ones, and the entire lot of them show up in resolv.conf instantly.

Perhaps this won't work for your purposes, but why not just manually add the ones DHCP supplied and the ones you want to add and save them in System Preferences? Then you won't need to worry about overwriting anything as you will be manually adding them. I don't suppose your domain is going to change names very frequently.

I can tell you as of Snow Leopard mDNSResponder (Bonjour) handles all the DNS (not just Multicast DNS).

Solution 2:

Just put a file in /etc/resolver/ with a name such as "searchappend" with these contents:

search example.com

Just don't name the file "com" or some other valid TLD. This works because of OSX's resolver magic. For more info, read through the documentation on your mac with this command:

man 5 resolver

I have a file there called "consul" that looks like this:

nameserver 127.0.0.1
port 8600
search consul

That magically makes it so .consul is appended to the search path, and any resolving for .consul TLDs uses my local nameserver.