>>Does the second bonding interface have no primary interface, then? What >>exactly happens? Yes, exactly. The second bond comes up with no primary interface: # cat /proc/net/bonding/bond0 Bonding Mode: fault-tolerance (active-backup) Primary Slave: eth0 Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 # cat /proc/net/bonding/bond1 Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth2 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 On Sat, Jul 5, 2008 at 9:45 AM, Art Age Software <artagesw at gmail.com> wrote: >>>Hi, >>> >>>could you describe in more detail? >>>What exactly is ignored? The options do not look much different. > > As I said, I am trying to set a different primary interface for each > bond: eth0 for bond0, and eth2 for bond1. > >>>Did you try without renaming? I do not use it, but it works nonetheless: >>>alias bond0 bonding >>>options bond0 mode=2 >>>alias bond1 bonding >>>options bond1 mode=2 > > You are setting identical options for both bonds. This masks the fact > that your second options line is ignored and essentially does nothing. > Try changing an option on bond1 (eg. set a different mode or a > different miimon value), and I think you will see that it is ignored. > > On Fri, Jul 4, 2008 at 1:11 PM, Art Age Software <artagesw at gmail.com> wrote: >> 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. >> >