From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030625
Mozilla Firebird/0.6
Description of problem:
*Note: this is not a bug in dhcp, this is a bug in dhclient. However,
there appears to be no dhclient package in the Bugzilla list, so I
chose this as a best guess.*
When dhclient updates /etc/resolv.conf, it overwrites whatever is there
with no opportunity to include or preserve any of its contents. In
some cases, network admins set up DHCP systems to exist in a separate
subdomain: e.g. if the organization's domain is "somedomain.tld",
then they might use "foo.somedomain.tld" for static IP addresses, and
"foo.dhcp.somedomain.tld" for DHCP-assigned addresses. In this case,
/etc/resolv.conf should include "search" entries for both
"somedomain.tld" and "dhcp.somedomain.tld". However,
/sbin/dhclient-script will only add "somedomain.tld".
See the attached patch, which is a trivial modification to
/sbin/dhclient-script to include the contents of
/etc/sysconfig/resolv.conf in /etc/resolv.conf, if and only if the
file in sysconfig exists. Please include this patch or another like
it in the next build of dhclient RPM.
Thanks! - Dan Morrill
Version-Release number of selected component (if applicable):
How reproducible:
Always
Steps to Reproduce:
1. echo "search dhcp.somedomain.tld" >> /etc/resolv.conf
2. ifdown eth0; ifup eth0 # if eth0 is a DHCP interface
3. observe that dhcp.somedomain.tld is no longer in resolv.conf
Actual Results: /sbin/dhclient-script overwrites /etc/resolv.conf w/ no
mechanism to include arbitrary lines in it.
Expected Results: There needs to be a way to include persistent lines in
/etc/resolv.conf (esp. "search" entries.)
Additional info:
--- dhclient-script 2003-08-14 13:55:42.000000000 -0400
+++ /sbin/dhclient-script 2003-08-14 13:56:34.000000000 -0400
@@ -24,6 +24,9 @@
function make_resolv_conf() {
if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then
echo '; generated by /sbin/dhclient-script' > /etc/resolv.conf
+ if [ -f /etc/sysconfig/resolv.conf ]; then
+ cat /etc/sysconfig/resolv.conf >> /etc/resolv.conf
+ fi
if [ -n "$new_domain_name" ]; then
echo search $new_domain_name >> /etc/resolv.conf
fi

Instead of adding your patch I added a variable SEARCH that can be set in the
ifcfg-* file. If this is set then it will be added to the /etc/resolv.conf,
otherwise it will work as it currently does.
So if you were using eth0 you could add the following to it
SEARCH="somedomain.tld foo.dhcp.somedomain.tld"
Available in dhcp-3.0pl2-6.13.src.rpm.

An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.
http://rhn.redhat.com/errata/RHBA-2004-566.html

Note

You need to
log in
before you can comment on or make changes to this bug.