Comment 0 for bug 1003656

we're trying to migrate our network configuration from lucid to precise. in 10.04 we tied eth0+eth1 together into bond0, then set br0 up on top of that and assigned an address via dhcp. in 12.04 this only works if br0 is configured with a static ip address. it fails when trying to use dhcp. to simplify testing i've removed eth1 from the configuration (sanity checked against http://www.stgraber.org/2012/01/04/networking-in-ubuntu-12-04-lts/ ):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
  bond-master bond0

auto bond0
iface bond0 inet manual
  bond-slaves none
  bond-mode 802.3ad
  bond-miimon 100

auto br0
iface br0 inet dhcp
  bridge_ports bond0
  bridge_stp off

the above results in a system w/o network connectivity. the dhcp server reports requests from an unexpected mac addr (different each boot). udevd logs "timeout 'bridge-network-interface'". poking around a little before the timeout shows the following 2 groups of processes:

  |-ifup,1361 --allow auto eth0
  | `-sh,1363 -c run-parts /etc/network/if-pre-up.d
  | `-run-parts,1364 /etc/network/if-pre-up.d
  | `-ifenslave,1392 /etc/network/if-pre-up.d/ifenslave
  | `-sleep,2380 0.1

  | |-udevd,599 --daemon
  | | `-bridge-network-,1429 /lib/udev/bridge-network-interface
  | | `-ifup,1457 --allow auto br0
  | | `-sh,1540 -c dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.br0.pid -lf /var/lib/dhcp/dhclient.br0.leases -1 br0
  | | `-dhclient3,1541 -e IF_METRIC=100 -pf /var/run/dhclient.br0.pid -lf /var/lib/dhcp/dhclient.br0.leases -1 br0

the ifenslave appears to be looping over that `sleep` (testing for /run/network/ifenslave.bond0) until it is killed and the dhclient is making its request w/the unexpected mac addr (also reported in `ip link show br0`). interestingly br0's mac addr matches that of eth0 (as expected) once bridge-network-interface has timed out and been killed.

a workaround appears to be adding the line:
  pre-up /sbin/ifup --allow auto bond0
to the "auto br0" stanza.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: bridge-utils 1.5-2ubuntu6
ProcVersionSignature: Ubuntu 3.2.0-24.38-generic 3.2.16
Uname: Linux 3.2.0-24-generic x86_64
ApportVersion: 2.0.1-0ubuntu7
Architecture: amd64
Date: Wed May 23 13:44:43 2012
ProcEnviron:
 TERM=xterm
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/usr/bin/zsh
SourcePackage: bridge-utils
UpgradeStatus: No upgrade log present (probably fresh install)