I was happily using a pair of bonded NIC until recently. I tried a fresh install of ubuntu and everything works fine until I install zentyal and enable the networking module. I have a network.postsetconfig script to prevent zentyal overwritting the /etc/network/interface file.
Here are the relavant lines from the syslog:
Apr 1 11:06:04 Server64 kernel: [ 11.161659] Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Apr 1 11:06:04 Server64 kernel: [ 11.161664] bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details.
Apr 1 11:06:04 Server64 kernel: [ 11.165760] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:04 Server64 kernel: [ 11.165767] bonding: bond0: Adding slave eth1.
Apr 1 11:06:04 Server64 kernel: [ 11.165770] bonding bond0: master_dev is not up in bond_enslave
Apr 1 11:06:04 Server64 kernel: [ 11.193159] bonding: bond0: enslaving eth1 as an active interface with an up link.
Apr 1 11:06:04 Server64 kernel: [ 11.195824] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:04 Server64 kernel: [ 11.195828] bonding: bond0: Adding slave eth2.
Apr 1 11:06:04 Server64 kernel: [ 11.195830] bonding bond0: master_dev is not up in bond_enslave
Apr 1 11:06:04 Server64 kernel: [ 11.291776] bonding: bond0: Warning: failed to get speed and duplex from eth2, assumed to be 100Mb/sec and Full.
Apr 1 11:06:04 Server64 kernel: [ 11.291791] bonding: bond0: enslaving eth2 as an active interface with an up link.
Apr 1 11:06:04 Server64 kernel: [ 11.292723] bonding: bond0: setting mode to balance-rr (0).
Apr 1 11:06:04 Server64 kernel: [ 11.292758] bonding: bond0: Setting MII monitoring interval to 100.
Apr 1 11:06:04 Server64 kernel: [ 11.292787] bonding: bond0: Setting up delay to 100.
Apr 1 11:06:04 Server64 kernel: [ 11.292809] bonding: bond0: Setting down delay to 100.
Apr 1 11:06:04 Server64 kernel: [ 11.299371] bonding: bond0: link status down for interface eth2, disabling it in 100 ms.
Apr 1 11:06:05 Server64 kernel: [ 11.402539] bonding: bond0: link status definitely down for interface eth2, disabling it
Apr 1 11:06:06 Server64 kernel: [ 12.902508] bonding: bond0: link status up for interface eth2, enabling it in 100 ms.
Apr 1 11:06:06 Server64 kernel: [ 13.012519] bonding: bond0: link status definitely up for interface eth2.
Apr 1 11:06:35 Server64 kernel: [ 41.610984] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:35 Server64 kernel: [ 41.610989] bonding: bond0: Removing slave eth1
Apr 1 11:06:35 Server64 kernel: [ 41.610993] bonding: bond0: Warning: the permanent HWaddr of eth1 - 00:e0:4c:68:1a:c9 - is still in use by bond0. Set the HWaddr of eth1 to a different address to avoid conflicts.
Apr 1 11:06:35 Server64 kernel: [ 41.610996] bonding: bond0: releasing active interface eth1
Apr 1 11:06:35 Server64 kernel: [ 41.702351] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:35 Server64 kernel: [ 41.702354] bonding: bond0: Removing slave eth2
Apr 1 11:06:35 Server64 kernel: [ 41.702356] bonding: bond0: releasing active interface eth2
Apr 1 11:06:45 Server64 kernel: [ 52.004033] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:45 Server64 kernel: [ 52.004039] bonding: bond0: Adding slave eth1.
Apr 1 11:06:45 Server64 kernel: [ 52.004042] bonding bond0: master_dev is not up in bond_enslave
Apr 1 11:06:45 Server64 kernel: [ 52.043026] bonding: bond0: enslaving eth1 as an active interface with an up link.
Apr 1 11:06:45 Server64 kernel: [ 52.045587] bonding: bond0: doing slave updates when interface is down.
Apr 1 11:06:45 Server64 kernel: [ 52.045592] bonding: bond0: Adding slave eth2.
Apr 1 11:06:45 Server64 kernel: [ 52.045594] bonding bond0: master_dev is not up in bond_enslave
Apr 1 11:06:45 Server64 kernel: [ 52.151701] bonding: bond0: enslaving eth2 as an active interface with a down link.
Apr 1 11:06:45 Server64 kernel: [ 52.152471] bonding: bond0: setting mode to balance-rr (0).
Apr 1 11:06:45 Server64 kernel: [ 52.152502] bonding: bond0: Setting MII monitoring interval to 100.
Apr 1 11:06:45 Server64 kernel: [ 52.152504] bonding: bond0: Note: Updating updelay (to 100) since it is a multiple of the miimon value.
Apr 1 11:06:45 Server64 kernel: [ 52.152506] bonding: bond0: Note: Updating downdelay (to 100) since it is a multiple of the miimon value.
Apr 1 11:06:45 Server64 kernel: [ 52.152539] bonding: bond0: Setting up delay to 100.
Apr 1 11:06:45 Server64 kernel: [ 52.152560] bonding: bond0: Setting down delay to 100.
Apr 1 11:06:45 Server64 kernel: [ 52.252524] bonding: bond0: link status definitely up for interface eth1.
Apr 1 11:06:47 Server64 kernel: [ 53.750020] bonding: bond0: link status up for interface eth2, enabling it in 100 ms.
Apr 1 11:06:47 Server64 kernel: [ 53.852520] bonding: bond0: link status definitely up for interface eth2.
Apr 1 11:09:06 Server64 kernel: [ 193.053774] bonding: bond0: link status down for interface eth1, disabling it in 100 ms.
Apr 1 11:09:07 Server64 kernel: [ 193.152580] bonding: unable to update mode of bond0 because interface is up.
Apr 1 11:09:07 Server64 kernel: [ 193.153802] bonding: bond0: link status down for interface eth2, disabling it in 100 ms.
Apr 1 11:09:07 Server64 kernel: [ 193.153806] bonding: bond0: link status definitely down for interface eth1, disabling it
Apr 1 11:09:07 Server64 kernel: [ 193.153810] bonding: bond0: now running without any active interface !
Apr 1 11:09:07 Server64 kernel: [ 193.166774] bonding: bond0: Setting MII monitoring interval to 100.
Apr 1 11:09:07 Server64 kernel: [ 193.166776] bonding: bond0: Note: Updating updelay (to 100) since it is a multiple of the miimon value.
Apr 1 11:09:07 Server64 kernel: [ 193.166779] bonding: bond0: Note: Updating downdelay (to 100) since it is a multiple of the miimon value.
Apr 1 11:09:07 Server64 kernel: [ 193.166807] bonding: bond0: Setting up delay to 100.
Apr 1 11:09:07 Server64 kernel: [ 193.166829] bonding: bond0: Setting down delay to 100.
Apr 1 11:09:07 Server64 kernel: [ 193.253772] bonding: bond0: link status definitely down for interface eth2, disabling it
Resetting the network interfaces solves the problem
here is the contents of my /etc/network/interface file:
# The loopback network interface
auto lo eth0 bond0
iface lo inet loopback
# The primary network interface
iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.255
gateway 192.168.0.1
iface bond0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
network 10.0.0.0
bond_mode 0
bond_miimon 100
bond_updelay 100
bond_downdelay 100
slaves eth1 eth2