What is the difference between Bond and LACP?
Short answer
Both combine more than one physical port into a single logical interface (link aggregation); the aim is to increase bandwidth and to keep the connection going with the remaining members when a member goes down. In TR7, Bond works in balance-rr (round-robin) mode: it distributes packets to the members in turn and does not speak a protocol with the switch; according to the Linux bonding documentation, this mode requires the ports to be grouped statically on the switch side and can cause packets to reach the other side out of order. LACP, on the other hand, works by negotiating with the switch through the IEEE 802.3ad (802.1AX) protocol; the switch ports must be configured as an LACP group, and it is recommended for production environments. LACP Transmit Rate determines how often LACP messages are requested from the other side: 1s (fast) (default) or 30s (slow). In both types, a member failure is detected by monitoring the link state at 100 ms intervals, and traffic continues over the remaining members.
Where It Is Used in TR7
| Where | Field / label | What for |
|---|---|---|
| Network → Interfaces → Actions → Add Interface | Type = Bond / LACP, Bond Members | Combining physical ports into a single interface |
| LACP form | LACP Transmit Rate: 1s (fast) (default), 30s (slow) | The LACP message frequency requested from the switch |
| Network → Interfaces list and Network Topology view | Member interfaces under the Bond/LACP; Add IP and Add Route disabled on the members | Seeing which ports are members of which group |
| Network job applied in the background | Messages such as "…" is becoming bond member, "…" is becoming LACP member | Following membership changes |
| WEB-CLI | network interface add (type bond / type lacp, --bondMemberIds) (network interface) | Creating Bond and LACP interfaces from the command line |
Comparison
| Bond (balance-rr) | LACP (IEEE 802.3ad) | |
|---|---|---|
| Protocol with the switch | None | LACP messaging |
| Switch side | Defining the ports as a static group (a port group without LACP) | Defining the ports as an LACP group |
| Traffic distribution | Packets are sent to the members in turn | Traffic is distributed to the members according to the source and destination MAC address (layer2 hash); traffic going to the same remote device goes over a single member |
| Packet order | Can reach the other side out of order | Preserved, since traffic going to the same remote device goes over a single member |
| Member failure | The link state is monitored; a failed member is removed from the distribution | The link state and LACP messages are monitored; a failed member is removed from the distribution |
| Recommended use | Environments that do not support LACP, testing | Production |
Membership Rules in TR7
- Members can only be of the ETH type; an ETH that has an IP, a route or a sub-interface such as VLAN, V-ETH or VXLAN on it cannot be made a member (errors such as
Interface '…' has N IPs). - Protected interfaces (those that carry a management access IP or are the cluster sync interface) cannot be made members.
- Members follow the route table of the group; IPs and routes are added to the Bond/LACP interface itself.
- When the Bond or LACP is deleted, the members are released (
Member interfaces will be released: …).
Common Misconceptions
- "Bond requires no setting on the switch side." balance-rr mode does not speak a protocol with the switch, but since packets leave all the members with the same MAC address, the switch ports must be defined as a static group.
- "No setting is needed on the switch for LACP." The switch ports must also be configured as an LACP group; otherwise the group is not formed.
- "Bond and LACP always multiply the bandwidth of a server." In LACP, traffic going to the same remote device (MAC address) goes over a single member; the total bandwidth increases when the traffic is spread across different remote devices (Linux bonding documentation).
How it is done in the documentation
