On a net-booted system with a read-only NFS-mounted root filesystem, NetworkManager tries to take control of the interface that the initrd already set up, killing the NFS mount and hanging the system. With the old-fashioned network scripts, I could add keep_old_ip=yes PERSISTENT_DHCLIENT=yes to ifcfg-eth0 to get dhclient to start without monkeying with the interface. I can't find a way to achieve the same thing with NetworkManager. Adding NM_CONTROLLED=no to ifcfg-eth0 doesn't help unless I also add the right HWADDR=... This is impractical since the root filesystem is shared among many clients and I don't know the MAC address ahead of time, anyway. There needs to be a way to tell NetworkManager to start dhclient on an interface that's already up and configured, without doing anything that would kill NFS like bringing the interface down.
Of course not using NetworkManager is an option, but I am hoping to eliminate differences between net-booted and local configurations in our cluster. And it's nice to be able to use NM for wireless on a laptop that net-booted from a wired interface.
NM will "take over" an existing interface configuration if: 1) the interface's current configuration is reflected in backing system configuration in an ifcfg file in /etc/sysconfig/network-scripts/ 2) if the interface uses DHCP, that the current dhclient leasefile exists in /var/lib/dhclient-<uuid>-<iface>.lease where <uuid> is the same as the UUID key in that ifcfg file this "takeover" stuff was done a year ago exactly for this reason; if there's no backing configuration, the applications have no idea what network connection the interface is actually using, and you can't even "ifdown eth0" because there's no valid ifcfg-eth0 file to take down (or if there is, it almost certainly doesn't match whatever dracut configured the interface with). If there's no dhclient leasefile in the specific location, then we can't direct dhclient to renew the current least because we can't find it. We need to launch our own dhclient because the normal dhclient-script is insufficient for NM's purposes, and thus NM uses its own script when launching dhclient. (and leases are connections specific, not interface specific, since you don't use the same lease at home and at work even though both might use interface eth0, hence the UUID requirement as part of the leasefile name) I've discussed this issue with network-mounted root at length with Warren when he was still at Red Hat; basically dracut should be creating an ifcfg file using the current interface configuration (adding the UUID key using 'uuidgen'), after switchroot copying the ifcfg file and the dhclient leasefile to the the right places in the normal system. NM will then seamlessly take over the interface and will not interrupt the existing connection. If the dracut folks have any questions let me know...
(In reply to comment #2) > I've discussed this issue with network-mounted root at length with Warren when > he was still at Red Hat; basically dracut should be creating an ifcfg file > using the current interface configuration (adding the UUID key using > 'uuidgen'), after switchroot copying the ifcfg file and the dhclient leasefile > to the the right places in the normal system. NM will then seamlessly take > over the interface and will not interrupt the existing connection. > > If the dracut folks have any questions let me know... there is no UUID used.. everything is in /dev/.initramfs/state/ There is no dracut script taking care of that stuff in post... I thought this was all set and done by Network-Manager?
(In reply to comment #3) > (In reply to comment #2) > > I've discussed this issue with network-mounted root at length with Warren when > > he was still at Red Hat; basically dracut should be creating an ifcfg file > > using the current interface configuration (adding the UUID key using > > 'uuidgen'), after switchroot copying the ifcfg file and the dhclient leasefile > > to the the right places in the normal system. NM will then seamlessly take > > over the interface and will not interrupt the existing connection. > > > > If the dracut folks have any questions let me know... > > there is no UUID used.. everything is in /dev/.initramfs/state/ > > There is no dracut script taking care of that stuff in post... I thought this > was all set and done by Network-Manager? does that mean, that this does not work in Fedora 13, 14, RHEL6?
reassigning back
This message is a reminder that Fedora 12 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 12. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '12'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 12's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 12 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.