I have grouped two ports of a switch into a channel and specified load balancing based on source and destination MAC address. I do not understand how will the switch do load balancing, using which hash algorithm,please explain with an example? the switch is CTS FOS-3124
1 Answer
LACP is nowadays in IEEE802.1AXbk-2012. The abstract reads:
Link Aggregation allows one or more links to be aggregated together to form a Link Aggregation Group, such that a Media Access Control (MAC) Client can treat the Link Aggregation Group as if it were a single link. To this end, it specifies the establishment of data terminal equipment (DTE) to DTE logical links, consisting of N parallel instances of full-duplex, point-to-point links operating at the same data rate. The MAC independent Link Aggregation capability, and general information relevant to specific MAC types that support Link Aggregation, are defined in this standard.
It standardizes the connectivity and communication between devices but it does not describe how the device internally handles the packets. The actual algorithm is proprietary to the manufacturer, and normally device design including functionality is confidential to the company. If it isn't you're likely to find it in the device manual or other documentation.
LACP does not have actual load balancing intelligence, it does not take existing link load into account when deciding where to forward the traffic. The devices participating in LACP aggregation do not exchange information about forwarding decisions either, it's done independently per conversation on each switch. How this works in general:
.-------. .-------. .-------.
|client1|---| | | |
'-------' | | | | .------.
.-------. | |---| | | |
|client1|---|switch1| |switch2|---|server|
'-------' | |---| | | |
.-------. | | | | '------'
|client1|---| | | |
'-------' '-------' '-------'
Client1 connects to the server
- Switch1 decides using sa/da-based algorithm to assign this conversation to leg 1 (top link)
- Server responds, and switch2 decides to assign this conversation to link 2
Client2 connects to the server
- Switch1 assigns this conversation to leg 2
- Server responds, and switch2 assigns this conversation to leg 2
Client3 connects to the server
- Switch1 assigns this conversation to leg 2
- Server responds, and switch2 assigns this conversation to leg 1
Note that we are now in a situation where 2 conversations are flowing on leg 1, 4 conversations on leg 2. This is normal behavior, since existing load isn't taken into account at any point. However the more conversations you have running in the network, the more evenly the traffic usually gets distributed.
"How this will help" is a bit of an open question. Many manufacturers offer their own, proprietary aggregation method, which usually is protocoll-less. These tend to work together between manufacturers, but there is no standardization.
So that's one advantage of LACP - it's a standard, so you know how devices are supposed to behave. You can configure your switch to static LACP and connect it to another switch with similar configuration (or to a server NIC team - they also usually have LACP capability) and if everything is correctly configured, you will have a working aggregated link.
Another advantage is that you can configure LACP to be dynamic. In this mode you have an active and a passive partner. For example you can configure all your core switch ports for active LACP and your edge switch ports for passive LACP. If you run out of bandwidth on an edge switch link, the only thing you need to do is connect another cable between the devices and they will form an aggregated link without any other configuration. The downside in dynamic mode is that since the aggregated link doesn't actually exist until the cables are connected, you can't assign it to a given VLAN. A dynamic LACP link usually drops to the default VLAN.