Ubuntu – Netplan Link aggregation on Ubuntu 17.10

Ubuntu

I've successfully managed to create a bond on my Ubuntu (17.10), following the answer from: NIC Teaming on Ubuntu 17.10 via netplan . Now my bond is up and running, but it is on round robin.

Here the output of the cat /proc/net/bonding/bond0 after running netplan apply:

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp1s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:26:55:e6:9f:1a
Slave queue ID: 0

Slave Interface: enp1s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:26:55:e6:9f:1b
Slave queue ID: 0

I'd like to have it on link aggregation. I tried adding the line mode: 802.3ad directly on my .yaml config, but netplan apply will throw an error.

here the bonding part of my yaml:

bonds:
    bond0:
        interfaces: [enp1s0f0, enp1s0f1]
        addresses: [10.110.10.253/24]
        gateway4: 10.110.10.1
        mode: 802.3ad
        nameservers:
           addresses: [10.110.10.22]

removing line mode: 802.3ad bonding works, but on round-robin.

I've also tried forcing the mode on /etc/modules by added the following line:

bonding mode=4

but had no luck.

Where am I doing it wrong? I have a hunch the solution is on yaml, but I got really stuck now.

Best Answer

I've managed to solve the issue. I've returned /etc/modules to it's original state. Change it has not helped in this case.

The problem was the syntax of the yaml file. The correct way is:

bonds:
    bond0:
        interfaces: [enp1s0f0, en01s0f1]
        addresses: [10.110.1.253/24]
        gateway4: 10.1.1.1
        parameters:
                mode: 802.3ad
        nameservers:
            addresses: [10.110.10.22]

The difference is the addition of parameters: before mode: 802.3ad.