I’ll start out by saying I’m just doing this to see if it can be done.
So, I’ve got a 2.5GbE switch that supports LACP/interface bonding, so I thought it would be interesting to see if I could bond together the Pi 4’s onboard 1GbE with a 1GbE USB dongle.
Good news: I managed to create the bond. It gets an IP from the router.
Bad news: It can’t route anywhere on the network. Not even to the router it’s getting an IP from. Somehow.
Bizarre News: Nomachine, which uses some sort of smart discovery protocol to find servers, can still connect to it just fine. I’m remoted in to it right now, which is great since it’s a headless machine. So it can communicate with the outside world, but it just can’t route via IPv4 or IPv6.
Diagnostics below. Any ideas?
$ ip addr show bond1
5: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether $MAC brd ff:ff:ff:ff:ff:ff
inet 10.0.4.58/24 brd 10.0.4.255 scope global dynamic noprefixroute bond1
valid_lft 85319sec preferred_lft 85319sec
inet6 $IPv6ADDR/64 scope global dynamic noprefixroute
valid_lft 603720sec preferred_lft 603720sec
inet6 fe80::6f08:13a6:7ca1:1889/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Some things in in the bond description seem a bit off (slow rate?), but I’m not sure how to fix them. All the documentation I find on the internet appears to be (1) outdated; (2) inapplicable to Manjaro ARM (there’s no “netcl” service running); or (3) assuming that just creating the bond in Network Manager’s GUI is enough to make it work.
$ cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v5.10.9-1-MANJARO-ARMBonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 1
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stableSlave Interface: enp1s0u1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: $MAC
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: monitoring
Partner Churn State: monitoring
Actor Churned Count: 0
Partner Churned Count: 0Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: $MAC
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: monitoring
Partner Churn State: monitoring
Actor Churned Count: 0
Partner Churned Count: 0