Cisco and LACP

I have a FreeNAS machine which has 4 ethernet ports on it. I’d like to setup LACP so I can get more than 1 Gbit of traffic on/off the NAS. In order to do this, I need to make some changes to both my FreeNAS machine and my switch.

Something that should be kept in mind is that LACP doesn’t give you more bandwidth between a fixed pair of entities. It gives you more bandwidth total, but it can’t exceed 1 Gbit (for 1 Gbit ports) between any 2 entities. Thus, if you have 3 systems, one of which uses 2x 1 Gbit ports in LACP, the other 2 systems could each copy files on/off at 1 Gbit.

Configuring an LACP Port Channel

The order of operations here is:

  • (re)configure FreeNAS
  • (re)configure the switch ports

(re)configuring FreeNAS

(re)configuring the switch ports

The switch I’m currently using is a Cisco 2960G. Its currently setup with a sinigle port (gi0/40) as an access port on vlan 200:

	int gi0/40
	  description FreeNAS
	  switchport access 200

It needs to be changed. We want to end up with 4 ports configured the same. Same channel group, same channel protocol. Then we want to configure our port-channel (cisco speak for a logical port aggregation). The port-channel is where we will define our port mode and vlan.

	int port-channel 1
	  description FreeNAS
	  switchport access 200
	int gi0/40
	  description FreeNAS
	  channel-group 1 mode on
	  channel protocol lacp
	int gi0/41
	  description FreeNAS
	  channel-group 1 mode on
	  channel protocol lacp
	int gi0/42
	  description FreeNAS
	  channel-group 1 mode on
	  channel protocol lacp
	int gi0/43
	  description FreeNAS
	  channel-group 1 mode on
	  channel protocol lacp

If all went well, you should be able to run:


	Router# show interface port-channel 1
	Port-channel1 is up, line protocol is up
	Hardware is GEChannel, address is 0013.19b3.7748 (bia 0000.0000.0000)
	MTU 1500 bytes, BW 4000000 Kbit, DLY 10 usec,
	reliability 255/255, txload 1/255, rxload 1/255
	Encapsulation ARPA, loopback not set
	Keepalive set (10 sec)
	ARP type: ARPA, ARP Timeout 04:00:00
	No. of active members in this channel: 4
	Member 0 : GigabitEthernet0/40 , Full-duplex, 1000Mb/s Member 1 :
	GigabitEthernet0/41 , Full-duplex, 1000Mb/s Member 2 : GigabitEthernet0/42
	, Full-duplex, 1000Mb/s Member 3 : GigabitEthernet0/43 , Full-duplex,
	1000Mb/s
	Last input 00:00:05, output never, output hang never
	Last clearing of "show interface" counters 00:04:40
	Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
	Interface Port-channel1 queueing strategy: PXF First-In-First-Out
	Output queue 0/8192, 0 drops; input queue 0/75, 0 drops
	5 minute input rate 0 bits/sec, 0 packets/sec
	5 minute output rate 0 bits/sec, 0 packets/sec
	0 packets input, 0 bytes, 0 no buffer
	Received 0 broadcasts (0 IP multicasts)
	0 runts, 0 giants, 0 throttles
	0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
	0 watchdog, 0 multicast, 0 pause input
	3 packets output, 180 bytes, 0 underruns
	0 output errors, 0 collisions, 0 interface resets
	0 babbles, 0 late collision, 0 deferred
	0 lost carrier, 0 no carrier, 0 PAUSE output
	0 output buffer failures, 0 output buffers swapped out

and see that all 4 ports are being used. If you want to test failover, you should be able to unplug 1 (or more, but not a total greater than the number of ports - 1) cable and continue talking to your device (for example, ping).