[Bug 889423] Re: 802.3ad bonding not configured correctly
Stéphane Graber
stgraber at stgraber.org
Thu Feb 9 21:00:28 UTC 2012
** Description changed:
- Configuring an 802.3ad bond doesn't appear to work correctly. The following entry in /etc/network/interfaces should configure an 802.3ad bond between interfaces eth2 and eth3:
- #auto bond0
- iface bond0 inet static
- address 10.191.62.2
- netmask 255.255.255.0
- broadcast 10.191.62.255
- bond-slaves eth2 eth3
- bond-primary eth2 eth3
- bond-mode 802.3ad
- bond-lacp_rate fast
- bond-miimon 100
+ SRU instructions (from comment 41 and 46):
+ === bridge-utils ===
+ So there are two things to test with that new bridge-utils:
+ 1) Bridge interface with bridge-ports set instead of bridge_ports works too
+ 2) Bridging a non-existing vlan interface will now create it
- However, after booting the system, we have:
- # ifconfig -a
- bond0 Link encap:Ethernet HWaddr 00:1b:21:b7:21:ea
- inet addr:10.191.62.2 Bcast:10.191.62.255 Mask:255.255.255.0
- inet6 addr: fe80::21b:21ff:feb7:21ea/64 Scope:Link
- UP BROADCAST MASTER MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
+ These two are in the udev hooks, so need to be tested by creating a
+ network interface, like a tap device (using uml-utilities to create it).
- eth2 Link encap:Ethernet HWaddr 00:1b:21:b7:21:ea
- UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Memory:b2420000-b2440000
+ Test for 1)
+ - Make sure uml-utilities and bridge-utils are both installed
+ - Add the following entry to /etc/network/interfaces:
+ auto br0
+ iface br0 inet static
+ address 192.168.1.1
+ netmask 255.255.255.0
+ bridge-ports eth9
+ - Create the tap device: tunctl -t eth9
+ - Check that the bridge has been created and the interface added to it (bridge shouldn't have an IP configuration at this point):
+ root at castiana:~# brctl show br0
+ bridge name bridge id STP enabled interfaces
+ br0 8000.1a6bffdb2551 no eth9
- eth3 Link encap:Ethernet HWaddr 00:1b:21:b7:21:ea
- UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Memory:b2400000-b2420000
- # cat /proc/net/bonding/bond0
- Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
+ The previous release wouldn't do anything unless you were using
+ bridge_ports.
- Bonding Mode: IEEE 802.3ad Dynamic link aggregation
- Transmit Hash Policy: layer2 (0)
- MII Status: down
- MII Polling Interval (ms): 100
- Up Delay (ms): 0
- Down Delay (ms): 0
+ Test for 2)
+ - Make sure uml-utilities, bridge-utils and vlan are all intalled
+ - Add the following entry to /etc/network/interfaces:
+ auto br0
+ iface br0 inet static
+ address 192.168.1.1
+ netmask 255.255.255.0
+ bridge-ports eth9.1010
+ - Create the tap device: tunctl -t eth9
+ - Check that the bridge has been created and the interface added to it (bridge shouldn't have an IP configuration at this point):
+ root at castiana:~# brctl show br0
+ bridge name bridge id STP enabled interfaces
+ br0 8000.06c2192d61ab no eth9.1010
- 802.3ad info
- LACP rate: fast
- Aggregator selection policy (ad_select): stable
- bond bond0 has no active aggregator
+ The previous release would create the bridge but not add the port to it
+ as the tag interface wouldn't exist.
- Slave Interface: eth2
- MII Status: up
- Speed: 1000 Mbps
- Duplex: full
- Link Failure Count: 1
- Permanent HW addr: 00:1b:21:b7:21:ea
- Aggregator ID: N/A
- Slave queue ID: 0
+ Between each test, cleanup with:
+ - tunctl -d eth9
+ - ifconfig br0 down
+ - brctl delbr br0
- Slave Interface: eth3
- MII Status: up
- Speed: 1000 Mbps
- Duplex: full
- Link Failure Count: 1
- Permanent HW addr: 00:1b:21:b7:21:eb
- Aggregator ID: N/A
- Slave queue ID: 0
+ The use of eth9 instead of tap0 is done on purpose as the vlan script
+ explicitly checks for interfaces with eth, bond or wlan in their name.
- If I do the following:
- # ip link set dev bond0 up
- # ifenslave bond0 eth2 eth3
- # ifconfig bond0 10.191.62.2 netmask 255.255.255.0
- I get:
- # ifconfig bond0
- bond0 Link encap:Ethernet HWaddr 00:1b:21:b7:21:ea
- inet addr:10.191.62.2 Bcast:10.191.62.255 Mask:255.255.255.0
- inet6 addr: fe80::21b:21ff:feb7:21ea/64 Scope:Link
- UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
- RX packets:17 errors:0 dropped:17 overruns:0 frame:0
- TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:2108 (2.1 KB) TX bytes:3126 (3.1 KB)
+ === vlan ===
+ Here's a quick example of how to test the new vlan package:
- # cat /proc/net/bonding/bond0
- Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
+ - Make sure uml-utilities and vlan are installed
+ - Add the following entry to /etc/network/interfaces:
+ auto eth9.1010
+ iface eth9.1010 inet static
+ address 192.168.1.1
+ netmask 255.255.255.0
+ - Create the tap device: tunctl -t eth9
+ - Check that the vlan interface has been created and configured correctly: ifconfig eth9.1010
+ eth9.1010 Link encap:Ethernet HWaddr ce:51:62:98:16:78
+ inet addr:192.168.1.1 Bcast:0.0.0.0 Mask:255.255.255.0
+ UP BROADCAST MULTICAST MTU:1500 Metric:1
+ RX packets:0 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:0
+ RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Bonding Mode: IEEE 802.3ad Dynamic link aggregation
- Transmit Hash Policy: layer2 (0)
- MII Status: up
- MII Polling Interval (ms): 100
- Up Delay (ms): 0
- Down Delay (ms): 0
+ Prior to this update, vlan interface creation would be racy as it'd
+ depend on the catch all networking.conf job to initialise eth9.1010 with
+ the race being that this job would be triggered before eth9 actually
+ exists.
- 802.3ad info
- LACP rate: fast
- Aggregator selection policy (ad_select): stable
- Active Aggregator Info:
- Aggregator ID: 1
- Number of ports: 2
- Actor Key: 17
- Partner Key: 24
- Partner Mac Address: 00:04:96:18:54:d5
-
- Slave Interface: eth2
- MII Status: up
- Speed: 1000 Mbps
- Duplex: full
- Link Failure Count: 0
- Permanent HW addr: 00:1b:21:b7:21:ea
- Aggregator ID: 1
- Slave queue ID: 0
-
- Slave Interface: eth3
- MII Status: up
- Speed: 1000 Mbps
- Duplex: full
- Link Failure Count: 0
- Permanent HW addr: 00:1b:21:b7:21:eb
- Aggregator ID: 1
- Slave queue ID: 0
-
- I can ping 10.191.62.2 after making the above changes. So, either I am
- configuring /etc/network/interfaces incorrectly or ifupdown/ifenslave is
- doing the wrong thing.
-
- Note also the number of dropped packages on bond0. Why should I see any
- dropped packages on the bond0 interface?
-
- DistroRelease: Ubuntu 11.10
- Package: ifupdown 0.7~alpha5.1ubuntu5
- PackageArchitecture: amd64
- ProcEnviron:
- LANG=en_US.UTF-8
- SHELL=/bin/bash
- ProcVersionSignature: Ubuntu 3.0.0-12.20-server 3.0.4
- SourcePackage: ifupdown
- Uname: Linux 3.0.0-12-server x86_64
+ === ifenslave-2.6 ===
+ TODO: Using setup from original description before/after should work but I'll comment with a simplified testcase when I have a minute.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bridge-utils in Ubuntu.
https://bugs.launchpad.net/bugs/889423
Title:
802.3ad bonding not configured correctly
Status in “bridge-utils” package in Ubuntu:
Fix Released
Status in “ifenslave-2.6” package in Ubuntu:
Fix Released
Status in “vlan” package in Ubuntu:
Fix Released
Status in “bridge-utils” source package in Oneiric:
Fix Committed
Status in “ifenslave-2.6” source package in Oneiric:
Fix Committed
Status in “vlan” source package in Oneiric:
Fix Committed
Bug description:
SRU instructions (from comment 41 and 46):
=== bridge-utils ===
So there are two things to test with that new bridge-utils:
1) Bridge interface with bridge-ports set instead of bridge_ports works too
2) Bridging a non-existing vlan interface will now create it
These two are in the udev hooks, so need to be tested by creating a
network interface, like a tap device (using uml-utilities to create
it).
Test for 1)
- Make sure uml-utilities and bridge-utils are both installed
- Add the following entry to /etc/network/interfaces:
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
bridge-ports eth9
- Create the tap device: tunctl -t eth9
- Check that the bridge has been created and the interface added to it (bridge shouldn't have an IP configuration at this point):
root at castiana:~# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.1a6bffdb2551 no eth9
The previous release wouldn't do anything unless you were using
bridge_ports.
Test for 2)
- Make sure uml-utilities, bridge-utils and vlan are all intalled
- Add the following entry to /etc/network/interfaces:
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
bridge-ports eth9.1010
- Create the tap device: tunctl -t eth9
- Check that the bridge has been created and the interface added to it (bridge shouldn't have an IP configuration at this point):
root at castiana:~# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.06c2192d61ab no eth9.1010
The previous release would create the bridge but not add the port to
it as the tag interface wouldn't exist.
Between each test, cleanup with:
- tunctl -d eth9
- ifconfig br0 down
- brctl delbr br0
The use of eth9 instead of tap0 is done on purpose as the vlan script
explicitly checks for interfaces with eth, bond or wlan in their name.
=== vlan ===
Here's a quick example of how to test the new vlan package:
- Make sure uml-utilities and vlan are installed
- Add the following entry to /etc/network/interfaces:
auto eth9.1010
iface eth9.1010 inet static
address 192.168.1.1
netmask 255.255.255.0
- Create the tap device: tunctl -t eth9
- Check that the vlan interface has been created and configured correctly: ifconfig eth9.1010
eth9.1010 Link encap:Ethernet HWaddr ce:51:62:98:16:78
inet addr:192.168.1.1 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Prior to this update, vlan interface creation would be racy as it'd
depend on the catch all networking.conf job to initialise eth9.1010
with the race being that this job would be triggered before eth9
actually exists.
=== ifenslave-2.6 ===
TODO: Using setup from original description before/after should work but I'll comment with a simplified testcase when I have a minute.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bridge-utils/+bug/889423/+subscriptions
More information about the foundations-bugs
mailing list