[Bridge] [Bonding-devel] bonding inside a bridge does not work when using arp monitoring

Leonardo Borda leonardo.borda at canonical.com
Wed Mar 23 14:13:14 PDT 2011


Hi Nicolas,

Thank you for answering my question.
Actually this is what I want to achieve:

eth0----+               +----bond0.100----br0-100---{+virtual machines
          |             |
          +----bond0----+----br0---(LAN)
          |             |
eth1----+               +----bond0.200----br0-200---{+virtual machines


br0 --> br0 in my understanding is an untagged vlan therefore it
provides access to my LAN. So i am able to access that server from my
internal network.
br0-100 and br0-200 -> Vlans over a bridged interface will allow me to
have many virtual machines in the same vlan on each bridged interface.

I am misunderstanding concepts, maybe?
If you need to do further tests I have a test environment ready for use.

Leonardo


On Wed, 2011-03-16 at 21:47 +0100, Nicolas de Pesloüan wrote: 
> 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.

-- 
Leonardo Borda
Server Support Analyst
Canonical Canada



More information about the Bridge mailing list