Draft

The “problem” is caused by dhcp server that overwrite our resolv.conf script and we lose this personalization during the IP release session. Not even is a good idea to replace the dns configuration proposed by the dhcp server, if it push that to you, probably there is a reason. But some time you want to use your own configuration such as when you use your broadband router and you want your /etc/resolv.conf has been preserved fron updates.

To prevent this nasty situation we can operate in two ways, determined by which dhcp client you are using: dhcpcd ord dhclient.

In the first case, dhcpcd (as in my Slackware laptop), prevent overriding can be obtained simply add the -R option to the dhcpcd command:

# dhcpcd -R eth0

In the second case, we must read the man page about dhclient-script which is invoked any time you use dhclient.
In:

man 8 dhclient-script

at the HOOKS section we can read:

HOOKS

When it starts, the client script first defines a shell function, make_resolv_conf , which is later used to create the /etc/resolv.conf file. To override the default behaviour, redefine this function in the enter hook script.

This means that we must to create /etc/dhclient-enter-hooks and redefine the make_resolv_conf function to satisfy our needs.
If we simply wants to prevent resolv.conf updates only, the fastest way is to redefine the function to do nothing:

# cat /etc/dhclient-enter-hooks
make_resolv_conf() {
exit 0
}

Then save the file and ensure it is executable:

# chmod a+x /etc/dhclient-enter-hooks

Note that, as explained in the man page, the dhclient-script is not standard so if this configuration doesn’t work, please read the man page.

Next: How to merge dns addresses pushed by the dhcp server and my own dns.