Assistance with bonding vlans and bridges on Ubuntu 12.04

bridgeubuntu-12.04vlan

We're trying to set up four nics in bond0 with 3 tagged vlan's and three bridges for KVM VM's on Ubuntu 12.04.

Using the interfaces file below I can manually start and stop networking and get the interfaces up but they do not survive a reboot and I get the dreaded "waiting 60 more seconds for network…"

Also I see these messages in dmesg:

br168: received packet on vlan168 with own address as source address

And the interfaces are not stable (Virtual Machines drop off the bridge)

cat /proc/net/vlan/config

VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_PLUS_VID_NO_PAD
vlan168        | 168  | bond0
vlan169        | 169  | bond0
vlan340        | 340  | bond0

brctl show

bridge name bridge id       STP enabled interfaces

br168       8000.e4115bea0110   no      vlan168
br169       8000.e4115bea0110   no      vlan169
br340       8000.e4115bea0110   no      vlan340

The interfaces file

##################interfaces###################### #
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto eth2
iface eth2 inet manual
bond-master bond0

auto eth3
iface eth3 inet manual
bond-master bond0

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

# The primary network interface
auto vlan168
iface vlan168 inet manual
vlan_raw_device bond0

# The private net
auto vlan169
iface vlan169 inet manual
vlan_raw_device bond0

# Storage network
auto vlan340
iface vlan340 inet manual
vlan_raw_device bond

auto br168
iface br168 inet static
address xxxx.xxxx.xxxx.6
netmask 255.255.255.128
network xxxx.xxxx.xxxx.0
gateway xxxx.xxxx.xxxx.1
# dns-* options are provided by the reolvconf package if installed
dns-nameservers xxxx.xxxx.xxxx.xxxx
dns-search search.domain
bridge_ports vlan168
bridge_maxwait 0
bridge_fd 0
bridge_stp off

auto br169
iface br169 inet static
address xxxx.xxxx.xxxx.134
netmask 255.255.255.128
gateway xxxx.xxxx.xxxx.129
bridge_ports vlan169
bridge_maxwait 0
bridge_fd 0
bridge_stp off

auto br340
iface br340 inet static
address xxxx.xxxx.xxxx.6
netmask 255.255.255.128
gateway xxxx.xxxx.xxxx.1
bridge_ports vlan340
bridge_maxwait 0
bridge_fd 0
bridge_stp off
######################interfaces################## ######

Like I said I can get the interfaces up by consoling in and issuing:

service networking stop/start
or
/etc/init.d/networking stop/start

In order to get the interfaces up.

Best Answer

I seem to have worked this out for myself. Turned out to be the bond mode - when set to 1 all seems fine. I still get several "VLANs not supported on bond0" messages but no "Recieved a packet with it's own address" errors.

And Generally the interfaces come up much more smoothly. We'll see if it survives the week :)

I did need to add these entries to /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0

and then

sysctl -p

As well as flush ebtables

ebtables -F

Then I took down the non functional bridge interfaces

ifconfig brxx down
....
brctl delbr brxx
...

then change the bond mode to 1 in the interfaces file

bond-mode 1

then started the networking.

Even seems to survive a reboot