3

What is the difference between balance-rr and 802.3ad with xmit_hash_policy set to layer3+4.

https://www.kernel.org/doc/Documentation/networking/bonding.txt

layer3+4: This algorithm is not fully 802.3ad compliant. A single TCP or UDP conversation containing both fragmented and unfragmented packets will see packets striped across two interfaces. This may result in out of order delivery. Most traffic types will not meet this criteria, as TCP rarely fragments traffic, and most UDP traffic is not involved in extended conversations. Other implementations of 802.3ad may or may not tolerate this noncompliance.

kubanczyk
  • 13,502
  • 5
  • 40
  • 55
FaxMax
  • 165
  • 1
  • 2
  • 12

2 Answers2

5

802.3ad with xmit_hash_policy set to layer3+4 is a bonding mode that is one of the standard, sensible, and widely used ones. Like many others it doesn't allow >100% throughput for a single TCP connection. In practice the fragmented packet disclaimer you quoted is not relevant as far as I've seen.

balance-rr is a very specific and rarely used balancing mode. It's mainly useful for a dedicated backup-restore subnet. When maintained with the joint network and system admin staff, with the switch specifically set up and all the servers/routers specifically set up, with a little bit of testing, you could achieve >100% throughput for a single TCP connection. Don't expect 200% though. (Remember to test both directions, unless you like your restores very slow). If a link gets down, the remaining one(s) will function.

You've already linked to a detailed technical description, so I've figured out you'd like a high-level answer.

kubanczyk
  • 13,502
  • 5
  • 40
  • 55
  • 1
    Not 200% but very close: https://pastebin.com/XD5vmTr5 - balance_rr is a massive improvement for single TCP connections compared to LACP. – Stefan Seidel Jul 02 '19 at 08:28
0

Link aggregation group (LAG) is used not only to increase bandwidth, also it used to link backup. If one link of LAG will down the balance-rr  LAG won't work properly, but the 802.3ad LAG will work good with reduced bandwidth.

The balance-rr  LAG allows to use full LAG's bandwidth for one TCP/UDP connection, but the 802.3ad  LAG allows to use only one link bandwidth for it. The balance-rr  LAG isn't support backup-restore. It perfect works with Cisco Etherchannel LAG. Many Cisco switches support only Etherchannel LAG and don't support 802.3ad LACP.

Mikhail Khirgiy
  • 2,003
  • 9
  • 7
  • "_Many Cisco switches support only Etherchannel LAG and don't support 802.3ad LACP._ As far as I know, Cisco switches do support both PAgP _and_ LACP. LACP is configured on an interface with the `channel-group mode [active|passive]` command. – Ron Maupin Mar 27 '18 at 05:08
  • Only 65xx and some others, but they didn't support `layer3+4` hash. – Mikhail Khirgiy Mar 27 '18 at 05:13
  • That is completely incorrect. All current models support LACP. I think you are working from very, very old information. – Ron Maupin Mar 27 '18 at 05:14
  • I didn't say about only newest equipment. But new 2960 Catalist can't work with LACP `fast mode` or with `layer3+4` load balance. PAgP works only between Cisco equipments. – Mikhail Khirgiy Mar 27 '18 at 05:56