Due to an environment variable not being cleared, ethernet bonding configuration can prevent other non-bonded ethernet interfaces from being activated on boot. It depends on the order that the intfaces are activated. Version-Release number: initscripts-7.31.9.EL-1 How reproducible: Assume bond0 is the master for eth0 and eth1 and that eth2 is a separate dhcp configured interface. The ifcfg-eth0 and ifcfg-eth1 files both contain "SLAVE=yes". Each configured interface is configured by a loop in /etc/init.d/network. If the interface is a slave it is skipped. The trouble is, the environment variable is not cleared between each iteration so when it gets to the dhcp interface eth2 "SLAVE" still contains "yes" (from eth1's config) and is therefore skipped. Manually ifupping the interface works fine. Workaround: add SLAVE=no to ifcfg-eth2
*** Bug 115312 has been marked as a duplicate of this bug. ***
My config is a little different .. my bond is between eth2 and 3 .. but upon boot I loose eth0 and the only thing that shows active with ifconfig is bond0 and lo. I tried placing Slave=no on the eth0 and 1 interfaces and including the TYPE=bonding on ifcfg-bond0 as was suggested in another bug hit ,, but this did not solve this problem. Your solution absolutely sounded like my problem as the VERY FIRST time I booted the system with the bond everthing came up beautifully,, however ,, the second time I lost eth0 and 1,, it was as if the environment variable was stored. Anyhow .. I am terribly frustrated. It works perfectly on RH9 ,, but I have not been able to configure a successful bond on EL3 without putting commands in /etc/rc.local..... Please help !
Variable unsetting is also omitted for "DEVICE" and "TYPE" in the iteration in /etc/rc.d/init.d/network: # bring up all other interfaces configured to come up at boot time for i in $interfaces; do eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) eval $(LANG=C fgrep "TYPE=" ifcfg-$i) eval $(LANG=C fgrep "SLAVE=" ifcfg-$i) So a mixture of xDLS, bonding and single network devices may also fail. Adding an "unset <variable>" before each eval statement helped me. I did not have to modify the network scripts in /etc/sysconfig/network-scripts
Christian - what vesion of the scripts are you looking at?
sorry to be such a ditz ... but is the unset like this unset eth0 eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) unset eth1 eval $(LANG=C fgrep "DEVICE=" ifcfg-$i etc .. thanks
An errata 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-080.html