Hi everyone, are there any problems with 802.3ad bonding? I configured a bonding between two routerboards with version 7.16 using two 1gbps ports for each side. All traffic passes on the first slave interface. To make it work I set it to layer3/4 but it doesn’t seem correct. It should be on layer2/3. The configuration is this:
L2+L3 means IP is taken into consideration, so all traffic between two same hosts will go through single link. This will shine when you have multiple devices behind bonding
L3+L4 is less common tho, but it should work good between two mikrotiks
L3+L4 can spread traffic between one pair of devices to both bond links … if devices use multiple connections in parallel. However, a single connection (e.g. single file transfer using SMB - windows file sharing) will still only utilize single bond link.
or maybe you mean that more than one host must generate traffic to use both interfaces? By setting layer3/4 the traffic passes on both interfaces even with only one host
When bond does hash (and based on hash value selects bond link to transmit frame), it takes whatever info configured:
L2 - MAC address of source and destination
L3 - IP address of source and destination
L4 - source and destination port (if L4 protocol, e.g TCP or UDP) uses them.
So with L2+L3 any packet between same pair of hosts will end up with same hash value.
True, I’ve just meant that L3+L4 is rare on low-end equipment and can cause problems between different vendors, but between two RBs its ok to leave L3+L4 if it works. For SMB it’s better to use SMB-related stuff like SMB multichannel tho
According to my experience, Tx hash policies on both ends of bond don’t have to be the same. Receiver will accept frames no matter via which bond link they arrive. It’ll only use Tx hash policy (as configured locally) when selecting between (working) links members of same bond for Tx.
So it will be fine if one end uses e.g. L2 and the other one e.g. L3+L4 … only traffic distribution between links may be (signifficantly) different in both directions. E.g. when a single TCP connection is going on, then all traffic in given direction will use same link. But one direction might use one link and the opposite direction (of same bidirectional TCP connection) might use the other link. Or the same link. And this can happen regardless the Tx hash policy used (even if both sides use same policy).
However, it is crucial to use same bond mode on both sides (e.g. 802.3ad a.k.a. LACP … or … active/backup … or … balance-rr …), otherwise funny things can happen.