Leonardo Borda
2011-Mar-16 19:15 UTC
[Bridge] bonding inside a bridge does not work when using arp monitoring
Hi Guys, In case you're interested or you guys have some hints to add to this thread, I've opened a bug in Ubuntu Launchpad regarding Bonding + Bridge issues. https://bugs.launchpad.net/bugs/736226 Please let me know your thoughts about it. -- Leonardo Borda Server Support Analyst Canonical Canada
Nicolas de Pesloüan
2011-Mar-16 20:47 UTC
[Bridge] [Bonding-devel] bonding inside a bridge does not work when using arp monitoring
Le 16/03/2011 20:15, Leonardo Borda a ?crit :> Hi Guys, > > In case you're interested or you guys have some hints to add to this > thread, I've opened a bug in Ubuntu Launchpad regarding Bonding + Bridge > issues. > > https://bugs.launchpad.net/bugs/736226 > > Please let me know your thoughts about it. >Hi Leonardo, I'm afraid I don't understand your setup. See my comments below. > auto bond0 > iface bond0 inet manual > post-up ifconfig $IFACE up > pre-down ifconfig $IFACE down > bond-slaves none > bond-mode active-backup > bond_arp_ip_target 10.153.107.1 > bond_arp_interval 100 > auto eth0 > allow-bond0 eth0 > iface eth0 inet manual > bond-master bond0 > auto eth1 > allow-bond0 eth1 > iface eth1 inet manual > bond-master bond0 eth0----+ | +----bond0 | eth1----+ 'sounds good up to this point. > auto bond0.100 > iface bond0.100 inet manual > post-up ifconfig $IFACE up > pre-down ifconfig $IFACE down > vlan-raw-device bond0 > auto bond0.200 > iface bond0.200 inet manual > post-up ifconfig $IFACE up > pre-down ifconfig $IFACE down > vlan-raw-device bond0 eth0----+ +----bond0.100 | | +----bond0----+ | | eth1----+ +----bond0.200 So you split based on the VLAN ID. > auto br0 > iface br0 inet static > address 10.153.107.110 > netmask 255.255.255.0 > gateway 10.153.107.1 > bridge_ports bond0 > bridge_stp off > bridge_fd 0 > bridge_maxwait 0 eth0----+ +----bond0.100 | | +----bond0----+----br0 | | eth1----+ +----bond0.200 br0 clearly is built on bond0. Starting from this point, I'm not sure I understand your setup. Because bond0.100, bond0.200 and br0 are all built on bond0, I can imagine bonding will take the frame before bridge have a chance to see it (because bonding handling happens before bridge handling in __netif_receive_skb(), in the kernel version you use). > auto br0-100 > iface br0-100 inet manual > post-up ifconfig $IFACE up > pre-down ifconfig $IFACE down > bridge_ports bond0.100 > bridge_stp off > bridge_fd 0 > bridge_maxwait 0 > auto br0-200 > iface br0-200 inet manual > post-up ifconfig $IFACE up > pre-down ifconfig $IFACE down > bridge_ports bond0.200 > bridge_stp off > bridge_fd 0 > bridge_maxwait 0 eth0----+ +----bond0.100----br0-100 | | +----bond0----+----br0 | | eth1----+ +----bond0.200----br0-200 br0-100 is built on bond0.100 and br0-200 is built on bond0.200. So you end up with 3 bridges, all having a single port... this sounds useless, from my point of view. Can you do some sort of ascii art to describe your expected setup? The only reason I can imagine to stack a bridge on top of bonding is the following: eth0----+ | +----bond0----+ | | eth1----+ | +----br0 eth2----+ | | | +----bond1----+ | eth3----+ That way, the bridge becomes 802.3ad capable, thanks to bonding. And if you want to do vlan on top of that: eth0----+ | +----bond0----+ | | +----br0.100 eth1----+ | | +----br0----+ eth2----+ | | | | +----br0.200 +----bond1----+ | eth3----+ The following (untested) setup should provide this configuration: auto bond0 iface bond0 inet manual bond-slaves none bond-mode active-backup bond_arp_ip_target 10.153.107.1 bond_arp_interval 100 auto eth0 allow-bond0 eth0 iface eth0 inet manual bond-master bond0 auto eth1 allow-bond0 eth1 iface eth1 inet manual bond-master bond0 auto eth2 allow-bond1 eth2 iface eth0 inet manual bond-master bond1 auto eth3 allow-bond1 eth3 iface eth1 inet manual bond-master bond1 auto br0 iface br0 inet static bridge_ports bond0 bond1 bridge_stp off bridge_fd 0 bridge_maxwait 0 auto br0.100 iface br0.100 inet manual vlan-raw-device br0 address 10.153.107.110 netmask 255.255.255.0 gateway 10.153.107.1 auto br0.200 iface br0.200 inet manual vlan-raw-device br0 Nicolas.