In my previous post I've talk about how to configure bonding. If you are using XEN, you'll need to configure a bridge to be able to give Internet connection to your VPS. All the examples about bridging are focused in create a bridge with a single physical network interface, but what if you want to configure the bridge on top of a bonded interfaces? I didn't found a clear answer on the Internet but is really straightforward, though.

Here is my /etc/network/interfaces file:

auto lo
iface lo inet loopback

auto bon0
#iface bon0 inet static
iface bon0 inet manual
    slaves eth0 eth1
    bond_mode active-backup
    bond_miimon 100 
    bond_downdelay 200 
    bond_updelay 200

auto xenbr0
allow-hotplug xenbr0
iface xenbr0 inet static
    bridge_ports bon0
    bridge_stp off 
    bridge_waiport 0
    bridge_fd 0

I've commented out the lines that I've changed from my previous post. I strongly recommend to setup first the bonding to the Dom-0 and after it's up and working, then try to create the bridge on top of the bond.

Again, the configuration talks by itself. In the bond, the relevant part is that has changed from static to manual. We have commented out all the network configuration, because this must be configured in the bridge. The xenbr0 is really easy to understand: bridge_ports bon0 tells the bridge to use the bond0 as underlying interface (remember, bond0 cannot have network configuration!!). Then we configure the network, and then set up some useful bridge parameters such as switching off the STP protocol.

And basically this is it. Remember, if you are tying to configure bonding/bridging or networking stuff in general on a remote server.... well, maybe it could be useful to have a script that restarts the machine and sets up the "working values" of the network every hour or so. Same as if you are playing with iptables or alike.

Take care.