Ubuntu 16.04 lts server with 4 nics bonded on IEEE 802.3ad Dynamic link aggregation.
Upon reboot, the network service fails to load automatically and have to do a manual start using sudo /etc/init.d/networking start
All the interfaces including the bond have an auto load in the /etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual bond-master bond0 # The second network interface auto eth1 iface eth1 inet manual bond-master bond0 # The third network interface auto eth2 iface eth2 inet manual bond-master bond0 # The forth network interface auto eth3 iface eth3 inet manual bond-master bond0 # The bond master network interface auto bond0 iface bond0 inet static address 192.168.1.201 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 dns-nameservers xx.xx.xx.x xx.xx.xx.xx dns-search xxx.xxx.xxx.xx bond-mode 4 bond-miimon 100 bond-slaves all bond-primary eth1 eth2 eth3 eth0
This is supposed to start the network service upon reboot, but its not. What can I do to have the network start on boot?
Edit 1
Edit 2
Output of dmesg | grep -i bond0
:
borgf003@CLD01:~$ dmesg | grep -i bond0 [ 12.110687] bond0: Setting MII monitoring interval to 100 [ 12.121534] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready [ 12.191915] bond0: Adding slave eno2 [ 12.348156] bond0: Enslaving eno2 as a backup interface with a down link [ 12.350247] bond0: Adding slave enp12s0f0 [ 12.608573] bond0: Enslaving enp12s0f0 as a backup interface with a down link [ 12.608598] bond0: Adding slave enp12s0f1 [ 12.856531] bond0: Enslaving enp12s0f1 as a backup interface with a down link [ 12.856552] bond0: Adding slave eno1 [ 12.980244] bond0: Enslaving eno1 as a backup interface with a down link [ 13.980065] bond0: link status definitely up for interface eno2, 100 Mbps ful l duplex [ 13.980071] bond0: now running without any active interface! [ 13.980076] bond0: link status definitely up for interface enp12s0f0, 100 Mbp s full duplex [ 14.080093] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready [ 14.280062] bond0: link status definitely up for interface enp12s0f1, 100 Mbp s full duplex [ 14.680033] bond0: link status definitely up for interface eno1, 100 Mbps ful l duplex [ 194.727579] bond0: Removing slave enp12s0f1 [ 194.727776] bond0: Releasing active interface enp12s0f1 [ 195.010788] bond0: Removing slave eno2 [ 195.010872] bond0: Releasing active interface eno2 [ 195.010876] bond0: the permanent HWaddr of eno2 - 00:1a:a0:06:f1:dd - is stil l in use by bond0 - set the HWaddr of eno2 to a different address to avoid confl icts [ 195.010879] bond0: first active interface up! [ 195.207016] bond0: Removing slave enp12s0f0 [ 195.207075] bond0: Releasing active interface enp12s0f0 [ 195.207079] bond0: first active interface up! [ 195.278500] bond0: Removing slave eno1 [ 195.278553] bond0: Removing an active aggregator [ 195.278556] bond0: Releasing active interface eno1 [ 195.293395] bonding: bond0 is being deleted... [ 195.293460] bond0 (unregistering): Released all slaves [ 195.358558] bonding: bond0 is being created... [ 195.404957] bond0: Setting MII monitoring interval to 100 [ 195.407792] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready [ 195.462566] bond0: Adding slave eno1 [ 195.584227] bond0: Enslaving eno1 as a backup interface with a down link [ 195.665846] bond0: Adding slave eno2 [ 195.796166] bond0: Enslaving eno2 as a backup interface with a down link [ 195.864614] bond0: Adding slave enp12s0f0 [ 196.104464] bond0: Enslaving enp12s0f0 as a backup interface with a down link [ 196.167753] bond0: Adding slave enp12s0f1 [ 196.408475] bond0: Enslaving enp12s0f1 as a backup interface with a down link [ 197.204043] bond0: link status definitely up for interface eno1, 100 Mbps ful l duplex [ 197.204052] bond0: now running without any active interface! [ 197.204110] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready [ 197.504039] bond0: link status definitely up for interface eno2, 100 Mbps ful l duplex [ 197.504045] bond0: link status definitely up for interface enp12s0f0, 100 Mbp s full duplex [ 197.804037] bond0: link status definitely up for interface enp12s0f1, 100 Mbp s full duplex [ 1048.788210] bond0: Removing slave enp12s0f1 [ 1048.788421] bond0: Releasing active interface enp12s0f1 [ 1048.996159] bond0: Removing slave enp12s0f0 [ 1048.996331] bond0: Releasing active interface enp12s0f0 [ 1049.200059] bond0: Removing slave eno2 [ 1049.200152] bond0: Releasing active interface eno2 [ 1049.366490] bond0: Removing slave eno1 [ 1049.366548] bond0: Removing an active aggregator [ 1049.366551] bond0: Releasing active interface eno1 [ 1049.377410] bonding: bond0 is being deleted... [ 1049.377479] bond0 (unregistering): Released all slaves [ 1049.449847] bonding: bond0 is being created... [ 1049.507089] bond0: Setting MII monitoring interval to 100 [ 1049.510405] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready [ 1049.554116] bond0: Adding slave eno1 [ 1049.657057] bond0: Enslaving eno1 as a backup interface with a down link [ 1049.730913] bond0: Adding slave eno2 [ 1049.849103] bond0: Enslaving eno2 as a backup interface with a down link [ 1049.914038] bond0: Adding slave enp12s0f0 [ 1050.160523] bond0: Enslaving enp12s0f0 as a backup interface with a down link [ 1050.226176] bond0: Adding slave enp12s0f1 [ 1050.476519] bond0: Enslaving enp12s0f1 as a backup interface with a down link [ 1051.312039] bond0: link status definitely up for interface eno1, 100 Mbps ful l duplex [ 1051.312049] bond0: now running without any active interface! [ 1051.312103] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready [ 1051.612040] bond0: link status definitely up for interface eno2, 100 Mbps ful l duplex [ 1051.612046] bond0: link status definitely up for interface enp12s0f0, 100 Mbp s full duplex [ 1051.912060] bond0: link status definitely up for interface enp12s0f1, 100 Mbp s full duplex borgf003@CLD01:~$
Edit 3
Checking bond0
borgf003@CLD01:~$ cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) 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 802.3ad info LACP rate: slow Min links: 0 Aggregator selection policy (ad_select): stable Slave Interface: eno1 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:1a:a0:06:f1:db Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: monitoring Partner Churn State: monitoring Actor Churned Count: 0 Partner Churned Count: 0 Slave Interface: eno2 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:1a:a0:06:f1:dd Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: monitoring Partner Churn State: monitoring Actor Churned Count: 0 Partner Churned Count: 0 Slave Interface: enp12s0f0 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:15:17:4a:94:26 Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: monitoring Partner Churn State: monitoring Actor Churned Count: 0 Partner Churned Count: 0 Slave Interface: enp12s0f1 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:15:17:4a:94:27 Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: monitoring Partner Churn State: monitoring Actor Churned Count: 0 Partner Churned Count: 0 borgf003@CLD01:~$
The link is slow due to the old Cisco Catalyst Switch in place.
Edit 4
● networking.service - Raise network interfaces Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese Drop-In: /run/systemd/generator/networking.service.d └─50-insserv.conf-$network.conf Active: active (exited) since Mon 2016-12-19 16:11:01 CET; 4min 10s ago Docs: man:interfaces(5) Process: 3783 ExecStop=/sbin/ifdown -a --read-environment (code=exited, status Process: 3933 ExecStart=/sbin/ifup -a --read-environment (code=exited, status= Process: 3927 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ Main PID: 3933 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: 0 CGroup: /system.slice/networking.service Dec 19 16:11:00 CLD01 systemd[1]: Starting Raise network interfaces... Dec 19 16:11:00 CLD01 ifup[3933]: Waiting for bond master bond0 to be ready Dec 19 16:11:01 CLD01 systemd[1]: Started Raise network interfaces.
The bond seems to be initiating before the interfaces are raised
Edit 5
Problem was solved see the answer here
Best Answer
Solved - Ubuntu 16.04 lts bonding with IEEE 802.3ad Dynamic Link Aggregation
Situation
Dell PowerEdge 2950 running NextCloud Server over Ubuntu 16.04 lts with unstable bonded 802.3ad dynamic link aggregation network with intermittent running timeouts and boot errors.
Troubleshooting
Past a myriad of server side configuration testing (thanks to George for the support) the intermittent network problem persisted. A compatibility issue was deduced between the builtin Broadcom and the pci Intel nics when bonded in Ubuntu 16.04 lts.
Hardware Solution
Two dual Intel pci nics were installed on the 2950 riser pci slots, nvram cleared and the builtin broadcom were disabled from bios. This was done to favor bandwidth i.e. 4 (1Gb) nics instead of the 2 (1Gb) builtin interfaces.
Server Solution
There are conflicting bonding configuration suggestions for Ubuntu 16.04 lts and this is what worked for me.
1. Ran
ifconfig -a
to get hold of the new interface bios and dev names2. As I had bonding preconfigured before I ran
sudo apt install --reinstall ifenslave
3. Checked if bonding is loaded at boot
sudo nano /etc/modules
NOTE: I remove rtc as it is depreciated in 16.04 lts and I like a clean boot
4. Stopped networking in my case I use
sudo /etc/init.d/networking stop
5. Edited the interfaces /etc/network/interfaces with the bond as follows. Note that you need to change the interfaces name with yours, including the ips
6. Reloaded the kernel bond module
sudo modprobe bonding
7. Created a bonding configuration
/etc/modprobe.d/bonding.conf
with8. Restarted the network, in my case I use
sudo /etc/init.d/networking restart
9. Checked the bond
cat /proc/net/bonding/bond0
10. Reboot to see if all holds up!