Bug 253338

Summary: init scripts don't handle multiple channel bonds
Product: Red Hat Enterprise Linux 5 Reporter: James Fillman <jfillman>
Component: initscriptsAssignee: initscripts Maintenance Team <initscripts-maint-list>
Status: CLOSED DUPLICATE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: high    
Version: 5.0   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-08-29 17:47:24 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:

Description James Fillman 2007-08-17 22:29:49 UTC
Description of problem:
I can't create more than one ethernet bonding interface.

It seems that the init scripts are written to handle the configuration of more
than one channel bonding interface. When i try to bring up the second bonding
interface, i get this error:

[root@vlxq01md net]# ifup bond1
bonding device bond1 does not seem to be present, delaying initialization.
[root@vlxq01md net]#

Here is my config:

/etc/modprobe.conf
alias eth2 bnx2
alias eth3 bnx2
alias eth0 e1000
alias eth1 e1000
alias scsi_hostadapter aacraid
alias scsi_hostadapter1 qla2xxx
alias bond0 bonding
alias bond1 bonding

/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.19.32.11
NETMASK=255.255.255.224
GATEWAY=172.19.31.1
DNS1=172.19.131.61
DNS2=172.19.131.62
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
BONDING_OPTS="mode=1 miimon=100 primary=eth0"

/etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.19.10.4
NETMASK=255.255.255.0
GATEWAY=
DNS1=
DNS2=
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
BONDING_OPTS="mode=1 miimon=100 primary=eth2"

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
MASTER=bond1
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
BOOTPROTO=none
MASTER=bond1
SLAVE=yes
USERCTL=no

If i'm configuring multiple channel bonding incorrectly, please advise.

Version-Release number of selected component (if applicable):
RHEL5
initscripts-8.45.14.EL-1

How reproducible:
Every reboot or interface initialization

Steps to Reproduce:
1. Copy above config
2. boot up server or do shell>ifup bond0; ifup bond1

  
Actual results:
the bond that is initialized first will work, the second one will not. The
bonding driver will only create a bonding interface if the device is present in
/sys/class/net/bonding_masters. The ifup-eth script will only add a single
device to /sys/class/net/bonding_masters. 

Expected results:
both bond0 and bond1 initialized

Additional info:
The workaround is to apply this patch to
/etc/sysconfig/network-scripts/network-functions

network-functions.patch
--- network-functions   2006-11-06 13:23:36.000000000 -0800
+++ network-functions.new       2007-08-17 17:00:45.000000000 -0700
@@ -391,7 +391,7 @@
 install_bonding_driver ()
 {
    ethtool -i $1 2>/dev/null | grep -q "driver: bonding" && return 0
-   [ ! -f /sys/class/net/bonding_masters ] && modprobe bonding || return 1
+   modprobe bonding || return 1
    echo "+$1" > /sys/class/net/bonding_masters
    return 0
 }

Comment 1 Bill Nottingham 2007-08-29 17:47:24 UTC

*** This bug has been marked as a duplicate of 253339 ***