Rants/Link Aggregation

From TomJudge.com
Jump to: navigation, search


Contents

Link Aggregation

Aggrigation.png

Background

The most commonly supported aggregation system for Ethernet (IEEE 802.3) networks is LACP (IEEE 802.3ad). FreeBSD supports this protocol with the if_lagg interface, and should be supported in most other operating systems.

How LACP Works

This assumes a working knowledge of Ethernet. As far as the link goes you should think of the group as a single L2 link from the switch to the server. IEEE 802.3 mandates that a sequence of frames being transmitted from Alice to Bob must arrive at Bob in the same order as they where transmitted from Bob.

In order for LACP to achieve this it has to classify the traffic into flows (or streams). A flow is a stream of packets flowing from one MAC to another single MAC, i.e. traffic from Bob to Alice would be one flow. Remember: A MAC address is only valid for the L2 broadcast domain, if Alice was behind a router then her MAC address according to Bob would be the same as all the other nodes behind that router.

Once the state machine has classified at packet into a flow, that flow is assigned to a one of the group member interfaces and all packets for that flow are transmitted on that interface (unless the interface is deactivated for some reason). The switch will do the same for packets it is transmitting into the group.


How does this effect the usefulness of LACP?

If you have lots of traffic flowing between hosts in the same L2 broadcast domain then you will get good utilisation of all of the member interfaces in the aggregation group.

However if all of your hosts are on a different broadcast domain behind a router then you will find that you will not get any performance gains from aggregation. The best you can hope for is that all your transmitted traffic passes out the first member interface and that the return traffic flows in the second interface. This is not really a performance gain as most ports and NIC's these days are full duplex and you are getting the same performance as you would from a single high quality interface.

Personal tools