Bug 607764

Summary: Check /etc/dhcp/dhclient-*.conf too
Product: [Fedora] Fedora Reporter: Dan Williams <dcbw>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: anaconda-maint-list, curtis, dcbw, iarlyy, jonathan, notting, plautrba, rvokal, rvykydal, vanmeeuwen+fedora
Target Milestone: ---Keywords: Reopened, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://www.redhat.com/archives/anaconda-devel-list/2008-October/msg00020.html
Whiteboard:
Fixed In Version: initscripts-9.12.1-1.fc13 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 468436
: 607766 (view as bug list) Environment:
Last Closed: 2010-07-01 18:45:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 468436    
Bug Blocks: 607741, 607759    

Description Dan Williams 2010-06-24 18:25:03 UTC
+++ This bug was initially created as a clone of Bug #468436 +++

Apparently introduced with NetworkManager. Anaconda no longer generates a default vendor class id in DHCP request for network installs.

Additionally, the dhcpclass= option appears to have no affect.

--- Additional comment from dcantrell on 2008-10-24 18:11:34 EDT ---

Since we're using NetworkManager in anaconda now, the proper way to get the dhcpclass= parameter to dhclient is to add a line to /etc/dhclient-DEVICE.conf and let NetworkManager pick that up.

I've patched anaconda to do just this.  This change will be in anaconda-11.4.1.51-1.  Once that appears in rawhide, can you test it out and if it works, and report findings here?

Thanks.

--- Additional comment from fedora-triage-list on 2008-11-25 23:12:36 EST ---


This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

--- Additional comment from curtis on 2008-11-28 20:54:49 EST ---

Verified fixed in f10. Now dhcpclass= works. And is *required* for legacy behavior of DHCP option 60.

--- Additional comment from curtis on 2009-10-11 22:30:45 EDT ---

Re-opening. This bug is back in Rawhide.

Even with dhcpclass=anaconda there is no more Option 60 in the lease request.

--- Additional comment from dcantrell on 2009-10-12 22:17:37 EDT ---

This is now a problem in NetworkManager.  When NM builds /var/run/nm-dhclient-ethX.conf, it's not copying over the settings from /etc/dhcp/dhclient-ethX.conf.  Here's a patch for NetworkManager:

diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhcl
index ac7d9f5..c1f76c2 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -405,7 +405,9 @@ create_dhclient_config (NMDHCPDevice *device,
 
        g_return_val_if_fail (device != NULL, FALSE);
 
-#if defined(TARGET_SUSE)
+#if defined(TARGET_REDHAT)
+       orig = g_strdup (SYSCONFDIR "/dhcp/dhclient-%s.conf", device->iface);
+#elif defined(TARGET_SUSE)
        orig = g_strdup (SYSCONFDIR "/dhclient.conf");
 #elif defined(TARGET_DEBIAN)
        orig = g_strdup (SYSCONFDIR "/dhcp3/dhclient.conf");

This is my fault.  When I owned the dhcp package, I reorganized it to keep all dhclient and dhcpd configuration files in /etc/dhcp rather than /etc.  I did this to reduce clutter in /etc.  Problem is, I needed to teach NetworkManager about this new location on Fedora.

Dan, fix should be simple enough for NM.  In loader, I am writing out /etc/dhcp/dhclient-DEVICE.conf with a single line that is "send vendor-class-identifier ...;" based on what the user provides.  Actually, there's always a vendor class identifier even if the user doesn't override it.

--- Additional comment from curtis on 2009-10-13 12:45:17 EDT ---

It would be nice if we went back to legacy behavior with "anaconda" in the default. Then we'd only need dhcpclass= option to override and set something else.

--- Additional comment from dcantrell on 2009-10-13 15:58:23 EDT ---

(In reply to comment #6)
> It would be nice if we went back to legacy behavior with "anaconda" in the
> default. Then we'd only need dhcpclass= option to override and set something
> else.  

The interface in anaconda isn't changing.  You will still just pass dhcpclass= on the boot line to override the vendor class identifier used during installation.  How that works underneath the installer is where the bug is, hence reassigning it to anaconda.

--- Additional comment from fedora-triage-list on 2009-11-16 04:33:18 EST ---


This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle.
Changing version to '12'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

--- Additional comment from dcbw on 2010-06-15 12:10:28 EDT ---

David, dhclient has afaik always used /etc/dhclient-ethX.conf.  Does anaconda use a different location?

    # allow users to use generic '/etc/dhcp/dhclient.conf' (as documented in manpage!)
    # if per-device file doesn't exist or is empty
    if [ -s /etc/dhclient-${DEVICE}.conf ]; then
       DHCLIENTCONF="-cf /etc/dhclient-${DEVICE}.conf";
    else
       DHCLIENTCONF='';
    fi;

is there some reason it's now /etc/dhcp/dhclient-<iface>.conf?

--- Additional comment from dcbw on 2010-06-23 18:29:48 EDT ---

Ok, is there any reason why the loader uses /etc/dhcp/dhclient-<iface>.conf while the rest of anaconda uses /etc/dhclient-<iface>.conf?

loader/net.c:        /* remove dhclient-DEVICE.conf if we have it */
loader/net.c:        if (asprintf(&ofile, "/etc/dhcp/dhclient-%s.conf", devs[i]->device) == -1) {
loader/net.c:    if (asprintf(&ofile, "/etc/dhcp/dhclient-%s.conf", iface->device) == -1) {
network.py:        # /etc/dhclient-DEVICE.conf
network.py:            dhclientfile = os.path.join("/etc/dhclient-%s.conf" % devName)
network.py:            self._copyFileToPath(dhclientfile, instPath)
packages.py:                glob.glob('/etc/dhclient-*.conf')

I can make NM check both locations I guess...

--- Additional comment from dcantrell on 2010-06-24 13:13:46 EDT ---

(In reply to comment #10)
> Ok, is there any reason why the loader uses /etc/dhcp/dhclient-<iface>.conf
> while the rest of anaconda uses /etc/dhclient-<iface>.conf?

The dhcp package moved configuration files to /etc/dhcp at the end of 2008:

* Thu Dec 18 2008 David Cantrell <dcantrell> - 12:4.0.0-34
- Move /etc/dhclient.conf to /etc/dhcp/dhclient.conf
- Move /etc/dhcpd.conf to /etc/dhcp/dhcpd.conf

The incorrect references in anaconda need to be changed.

--- Additional comment from dcbw on 2010-06-24 14:11:48 EDT ---

And we  need to  make sure that initscripts are updated too.

Comment 1 Bill Nottingham 2010-06-24 18:44:47 UTC
http://git.fedorahosted.org/git/?p=initscripts.git;a=commitdiff;h=774d0703bca0e21439f162b54999861bb0063be9

Will show up in rawhide and in a future F-13 update.

Comment 2 Fedora Update System 2010-06-24 19:30:26 UTC
initscripts-9.12.1-1.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/initscripts-9.12.1-1.fc13

Comment 3 Fedora Update System 2010-06-25 18:13:55 UTC
initscripts-9.12.1-1.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update initscripts'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/initscripts-9.12.1-1.fc13

Comment 4 Fedora Update System 2010-07-01 18:45:08 UTC
initscripts-9.12.1-1.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.