Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am having an issue with bonding NICs on CentOS 4. It appears the bonding driver does work, but it is stuck in round-robin mode and I am trying to get to active-backup.

The current config is:

ifcfg-bond0

DEVICE=bond0
IPADDR=192.168.204.18
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
TYPE=Bonding
BONDING_OPTS="mode=1 miimon=100"

ifcfg-eth1

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes

ifcfg-eth3

DEVICE=eth3
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes

cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:17:a4:8f:94:b1

Slave Interface: eth3
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:1b:21:56:b8:69

cat /etc/modprobe.conf

alias eth0 tg3
alias eth1 tg3
alias eth3 e1000
alias eth2 e1000
alias bond0 bonding
options bond0 mode=1 miimon=100

I have tried moving the bonding information out of the ifcfg-bond0 into the modprobe configuration file. It seems that it is stuck in RR and I am trying to get it into the Active-backup (mode 1) state.

Any ideas what would be causing this issue?

share|improve this question
    
Any output from dmesg? –  Kyle Brandt Mar 25 '10 at 15:44
    
The only thing that stands out is: bonding: Warning: the permanent HWaddr of eth1 - 00:17:A4:8F:94:B1 - is still in use by bond0. Set the HWaddr of eth1 to a different address to avoid conflicts. (doing ifdown, ifup bond0) Other than that, the bond0 interface comes up, eth1 and eth3 gets enslaved –  jinanwow Mar 25 '10 at 16:36

3 Answers 3

Some things to try things:

  1. Check the output of dmesg
  2. You still have this situation after /etc/init.d/network restart ?
  3. modprobe -r the bonding module and then load it again.
  4. Try arp ping with arp target instead of miimon maybe.
share|improve this answer
    
1. See above comment. 2. I have not tried the network restart as it is a production environment (I have a pre-production environment that I was able to setup bonding without restarting the networking service). 3. I tried this as well, did not work 4. I used mii-tool and the NICs are supported, but this may be a possibility. –  jinanwow Mar 25 '10 at 16:42

From one of several machines I have configured:

[keiths@vm-dmz-host1 ~]$ cat /etc/redhat-release

CentOS release 4.8 (Final)

[keiths@vm-dmz-host1 ~]$

[keiths@myserver ~]$ uname -a

Linux myserver 2.6.9-34.ELsmp #1 SMP Wed Mar 8 00:27:03 CST 2006 i686 i686 i386 GNU/Linux

[keiths@myserver ~]$ sudo cat /proc/net/bonding/bond0

Password:

Ethernet Channel Bonding Driver: v2.6.1 (October 29, 2004)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 50

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0d:60:9c:35:2e

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0d:60:9c:35:2f

[keiths@myserver ~]$

[keiths@myserver ~]$ sudo cat /etc/modprobe.conf

alias scsi_hostadapter megaide

alias eth0 tg3

alias eth1 tg3

alias bond0 bonding

options bond0 mode=1 miimon=50

alias usb-controller ohci-hcd

[keiths@myserver ~]$

[keiths@myserver ~]$ sudo cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

IPADDR=192.168.46.170

NETMASK=255.255.255.224

NETWORK=192.168.46.160

BROADCAST=192.168.46.191

GATEWAY=192.168.46.161

ONBOOT=yes

BOOTPROTO=none

IPV6INIT=no

USERCTL=no

[keiths@myserver ~]$

[keiths@myserver ~]$ sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

MASTER=bond0

SLAVE=yes

HWADDR=00:0D:60:9C:35:2E

[keiths@myserver ~]$

[keiths@myserver ~]$ sudo cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

MASTER=bond0

SLAVE=yes

HWADDR=00:0D:60:9C:35:2F

[keiths@myserver ~]$

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.