[CentOS] Problem with Bonding Driver

Fri Jul 4 20:11:45 UTC 2008
Art Age Software <artagesw at gmail.com>

Hi,

I've using linux bonding in active-backup mode to combine two pairs of
GigE NICs (eth0/eth1, eth2/eth3) into two logical bonds (bond0/bond1).
All is working fine. However, I would like to specify a primary
interface for each bond. This means I need to specify different
options to the bonding module for each bond. I have tried every
conceivable incantation of options and cannot get the kernel to
recognize the second set of options.

Initially, my modprobe.conf looked like this:

alias bond0 bonding
alias bond1 bonding
options bonding mode=active-backup miimon=100 max_bonds=2

What I am trying to achieve should be possible by changing
modprobe.conf to this:

alias bond0 bonding
options bond0 -o bond0 miimon=100 mode=active-backup primary=eth0
alias bond1 bonding
options bond1 -o bond1 miimon=100 mode=active-backup primary=eth2

But this results in fatal errors while bringing up the bonding interfaces.

Changing to this eliminates the errors, but bond1 ignores the different options:

alias bond0 bonding
options bond0 -o bond0 miimon=100 mode=active-backup primary=eth0 max_bonds=1
alias bond1 bonding
options bond1 -o bond1 miimon=100 mode=active-backup primary=eth2 max_bonds=1

I have tried many other combinations as well:

install bond1 /sbin/modprobe --ignore-install bonding -o bond1
mode=active-backup primary=eth2

Nothing works.

I also came across this note in the bonding docs:

"NOTE: It has been observed that some Red Hat supplied kernels are
apparently unable to rename modules at load time (the "-o bond1"
part). Attempts to pass that option to modprobe will produce an
"Operation not permitted" error. This has been reported on some Fedora
Core kernels, and has been seen on RHEL 4 as well. On kernels
exhibiting this problem, it will be impossible to configure multiple
bonds with differing parameters."

I have seen that error as well with certain combinations of options in
my modprobe.conf.

Am I simply out of luck here? Does anyone know of a solution?

Thanks.