System Administration
cancel
Showing results for 
Search instead for 
Did you mean: 

bonding module recommendation

 
Maaz
Valued Contributor

bonding module recommendation

OS: SUSE Linux Enterprise 10 SP2(SLES10SP2)
HW: HP Proliant DL380 G6
NIC: Broadcom NetXtreme II BCM5709 Gigabit Ethernet

running 'ethtool' on eth0, and eth2 produces the following output

# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Link detected: yes


1) I need fault-tolerance, link agregation, and load-balancing
which bonding module(
round robing, adaptive load balancing, etc) is appropriate, or which bonding module should I use ?

when created the bond0 using 'adaptive load balancing' module
# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:25:b3:22:9c:12

Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:25:b3:22:9c:16


when created the bond0 using 'round robin' module
# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)

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

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:25:b3:22:9c:12

Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:25:b3:22:9c:16

2) created a bond0, using 'round robin' module, and got the following strange messages(see last line)
Aug 8 15:28:06 mail kernel: bonding: bond0 is being created...
Aug 8 15:28:07 mail kernel: bonding: bond0: Setting MII monitoring interval to 100.
Aug 8 15:28:07 mail ifup: bond0 enslaving interfaces: eth0 eth2
Aug 8 15:28:07 mail kernel: ADDRCONF(NETDEV_UP): bond0: link is not ready
Aug 8 15:28:07 mail kernel: bnx2: eth0: using MSIX
Aug 8 15:28:07 mail kernel: bonding: bond0: enslaving eth0 as an active interface with a down link.
Aug 8 15:28:07 mail kernel: bnx2: eth2: using MSIX
Aug 8 15:28:07 mail kernel: bonding: bond0: enslaving eth2 as an active interface with a down link.
Aug 8 15:28:08 mail ifup: bond0
Aug 8 15:28:08 mail ifup: IP address: 192.168.41.222/24
Aug 8 15:28:08 mail ifup: as bonding master
Aug 8 15:28:08 mail ifup:
Aug 8 15:28:09 mail kernel: bnx2: eth2 NIC Copper Link is Up, 100 Mbps full duplex, receive & transmit flow control ON
Aug 8 15:28:09 mail kernel: bonding: bond0: link status definitely up for interface eth2.
Aug 8 15:28:09 mail kernel: bnx2: eth0 NIC Copper Link is Up, 100 Mbps full duplex, receive & transmit flow control ON
Aug 8 15:28:09 mail kernel: bonding: bond0: link status definitely up for interface eth0.
Aug 8 15:28:10 mail kernel: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
Aug 8 15:28:11 mail kernel: bond0: duplicate address detected!



"kernel: duplicate address detected!"
why the above message(there is no duplicate IP address)


3) created a bond0, using 'adaptive load balancing' module, and got the following strange messages(see last line)
Aug 8 15:30:20 mail kernel: bonding: bond0 is being created...
Aug 8 15:30:21 mail kernel: bonding: bond0: setting mode to balance-alb (6).
Aug 8 15:30:21 mail kernel: bonding: bond0: Setting MII monitoring interval to 100.
Aug 8 15:30:21 mail ifup: bond0 enslaving interfaces: eth0 eth2
Aug 8 15:30:21 mail kernel: ADDRCONF(NETDEV_UP): bond0: link is not ready
Aug 8 15:30:21 mail kernel: bnx2: eth0: using MSIX
Aug 8 15:30:21 mail kernel: bonding: bond0: enslaving eth0 as an active interface with a down link.
Aug 8 15:30:21 mail kernel: bnx2: eth2: using MSIX
Aug 8 15:30:21 mail kernel: bonding: bond0: enslaving eth2 as an active interface with a down link.
Aug 8 15:30:22 mail ifup: bond0
Aug 8 15:30:22 mail ifup: IP address: 192.168.41.222/24
Aug 8 15:30:22 mail ifup: as bonding master
Aug 8 15:30:22 mail ifup:
Aug 8 15:30:22 mail kernel: bnx2: eth0 NIC Copper Link is Up, 100 Mbps full duplex, receive & transmit flow control ON
Aug 8 15:30:22 mail kernel: bonding: bond0: link status definitely up for interface eth0.
Aug 8 15:30:22 mail kernel: bonding: bond0: making interface eth0 the new active one.
Aug 8 15:30:22 mail kernel: bonding: bond0: first active interface up!
Aug 8 15:30:22 mail kernel: bnx2: eth2 NIC Copper Link is Up, 100 Mbps full duplex, receive & transmit flow control ON
Aug 8 15:30:22 mail kernel: bonding: bond0: link status definitely up for interface eth2.
Aug 8 15:30:23 mail kernel: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
Aug 8 15:30:24 mail kernel: bond0: duplicate address detected!

again why its saying 'duplicate address detected'... there is no IP conflict ?

Please help
Regards
4 REPLIES
Nuwan Alwis
Valued Contributor

Re: bonding module recommendation

Hi Mazz,
Did you remove all IP adresses on the slave interfaces.
eg:there should be no ip for both eth0 and eth1.

Also disable any NIC Link monitoring tool if using.

Good Luck...!
NJ
Maaz
Valued Contributor

Re: bonding module recommendation

>Did you remove all IP adresses on the slave interfaces.
>eg:there should be no ip for both eth0 and eth1.
YES.. eth0 and eth2 doesn't have any IP address.

>Also disable any NIC Link monitoring tool if using.
I am not using any monitoring tool.
Maaz
Valued Contributor

Re: bonding module recommendation

I got the solution of the 2 and 3 @
https://bugzilla.redhat.com/show_bug.cgi?id=236750

the "kernel: bond0: duplicate address detected!" messages gone by disabling IPv6.

please reply on '1' i.e
1) I need fault-tolerance, link agregation, and load-balancing
which bonding module(
round robing, adaptive load balancing, etc) is appropriate, or which bonding module should I use ?

Regards
Maaz
Ivan Ferreira
Honored Contributor

Re: bonding module recommendation

Sometimes, the switches are connected as edge switches and trunked to core switches. In this case, you may lose network connectivity if the trunk goes down, but bonding won't detect the issue. To avoid that, you should use arp monitoring (arp_ip_target).

You must also correctly configure the switches for round-robin, here is a discussion with samples about the switch configuration:

http://www.linuxquestions.org/questions/linux-networking-3/redhat-el4-bonding-round-robin-and-lacp-testin-bad-results-help-688963/
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?