With the ‘new’ style for configuring bonding under Ubuntu your bond device will not always have the same MAC address across reboots.
For example, you configure your bond in the /etc/network/interfaces file:
auto p9p1 iface p9p1 inet manual bond-master bond0 auto p10p1 iface p10p1 inet manual bond-master bond0 auto bond0 iface bond0 inet manual bond-slaves none bond-mode 4 bond-miimon 100 bond-updelay 5 bond-downdelay 5
During boot, both interface p9p1 and p10p1 will be hot-plugged under bond0. The first device to be plugged into the bonding device determines which MAC address the bonded device gets.
Due to hardware timing it might be p9p1 OR p10p1 which is the first. This behavior makes the MAC address selection inconsistent between reboots and that might cause problems with:
- DHCP for IPv4
- IPv6 with SLAAC (Stateless Auto Configuration)
- DHCPv6
This has been filed as bug #1288196 with Ubuntu, but no fix from that side so far.
The solutions for now:
auto p9p1 iface p9p1 inet manual bond-master bond0 auto p10p1 iface p10p1 inet manual pre-up sleep 5 bond-master bond0
This makes sure p10p1 always comes online 5 seconds after p9p1.
But you can also set a static MAC address for the bonding device:
auto bond0 iface bond0 inet manual hwaddress fe:80:12:04:6d:6f bond-slaves none bond-mode 4 bond-miimon 100 bond-updelay 5 bond-downdelay 5
Choose what you prefer or works best in your situation.