Most workstations and NAS come with multiple Ethernet ports nowadays, so one would assume that port bonding with 802.3ad is a popular and easy to configure option. Port bonding can double the bandwidth while maintaining a single IP address, at least if you have multiple connection active at the same time. Of course, it is not so simple in practice. The main issue is how the devices split the data across the two links.

This hash policy needs to be configured on each source device (and every switch in between) individually. The simple policies (layer2 or layer2+3) base the routing decision on MAC or IP addresses, so all connections between two hosts (e.g. workstation to NAS) always go over the same link. In order to get the actual benefit of port bonding for multiple connections between two hosts one would need to use the layer3+4 policy, which also takes port numbers into account.

This was easy to configure for my workstation and my NAS, and it was also easy to enable Link Aggreagtion on my Unifi switch by following the instructions here. However, it turns out the UniFi switch does not yet have a configuration option for setting the hash policy. One can change the policy manually to layer3+4 by opening a session in the switch’s debug terminal and then typing:

telnet localhost
enable
configure
port-channel load-balance 6 all

The setting is lost when you restart the switch, but that is hopefully not very common.

Some people are concerned that the layer3+4 hash is not strictly 802.3ad compliant, but as far as I can tell that is rarely an issue in practice. It seems the main problem would be slower speeds for some specific services in some specific configurations, see e.g. here.