My Netgear ReadyNAS 214 has two Ethernet ports. It is used as a safe place to store my data as well has hosting an iSCSI target that all my backups are done to (with regular off-site copies made to mitigate against failure or physical damage/loss of the NAS) so some extra bandwidth would not hurt and the web user-interface provides the option to bond them. Since my managed switch also supports bonding, I have decided to do this.
Process I followed
- Firstly logout of all the iSCSI targets on any clients using them and un-mount shares from elsewhere.
- Shutdown the NAS (strictly speaking this should be doable on-line but it was easier this way as I was moving it and swapping the network cables too).
- Plug-in the 2nd interface. I have used two identical (in every respect, including length) cables for the 2 connections, although the 802.3ad protocol is supposed to be fine with different packet transit times (and this is less than 2m copper cable so the differences should be minor anyway).
- Power on the NAS. Both interfaces should come up with IP addresses and be on the same network segment.
- Follow NetGear’s instructions for creating a bond: In the web admin interface, click on the settings icon for eth0 and choose ‘New Bond’. Tick ‘eth1’ under ‘Bond with’ and set the teaming mode to ‘IEEE 802.3ad LACP’ with ‘Layer 3+4’ as the hash type (which will use a single physical link per connection but allow hosts to span links - see the Linux documentation for the precise algorithm (under heading xmit_hash_policy)).
Configure the interfaces on the switch:
First select the inferfaces (from configure mode):
interface range gigabitEthernet 1/0/11-12
Disable VLANs on the physical ports:
no switchport general allowed vlan all no switchport pvid
Configure the ports into a LACP controlled LAG:
channel-group 1 mode active
Exit back to configure:
Select the channel-group:
interface port-channel 1
Configure the VLAN on the LAG:
switchport general allowed vlan 20 untagged switchport pvid 20
Once happy it is working, persist the changes:
copy running-config startup-config
If needed, details of the LAG status can be seen on the switch with
show etherchannel 1 detail
And we can verify traffic is using both ports by comparing the LAG and individual port counters:
show interface counters port-channel 1 show interface counters gigabitEthernet 1/0/11 show interface counters gigabitEthernet 1/0/12
I don’t use NetworkManager on my machines, but I did find a blog post on LACP bonding and Linux that does which might be useful if that changes in the future.