Bonding/link aggregation combine ports

Hello !,

So I was thinking about this... slowly I see more and more routers come with 2.5gb/s wan ports and often with 1gb/s lan ports, so I came up with the idea of combining the lan ports to be able to get the full speed via bonding/LAG (albeit ignoring the cpu limitations that is a different story :stuck_out_tongue:).

Now I did found a opkg package called luci-proto-bonding but from here I'm clueless how to configure it, on the start page I see that I need to use a ip address would it be like any ip like you also can do with pppoe-server for those who are known with this?

When I click on the advanced tab I see I can add slaves?, what are those? can I just add lan which shares all ports on br-lan? or do I have to create for each network port a exclusive interface and use those as slave?

if someone can show me a tutorial which is up to date that would be awesome :D, I noticed alot of threads getting stuck.


I noticed the slaves part is getting more confusing I can add both bridge devices and port devices...

Just a remark, any single transfer won't be faster than 1gbit...

1 + 1 = 1 in this case

1 Like
  • CPU load
  • bond-xmit-hash-policy problems...
    some devices does not support layer3+4 so theoretical 1+1 will often be 1+0 :frowning:

true I realize that :wink: , though I just wanna know how it works for when it becomes usefull :slight_smile:

Based on @NPeca75's reply, never :slight_smile:

Sorry, don't want to be negative, but ...

when we bought new HP servers, someone was very "smart" and ordered servers with 4x1G cards
explanation was, that we will make bonding, it will be very 'cool'
well, it is not so cool :frowning:
but, it is only my private opinion
one good thing is that you will have some sort of cable failure backup, yes, it is nice
but speed ... it is far far away from theoretical 4*1
depends on traffic type, how clients are coming in (L2, L3, L4) and, equipment on other side of bond

1 Like

ah thanks, well I guess I will not try it then anymore I guess it only adds up to more complication :stuck_out_tongue:

1 Like

As an aside, the simplest and best way of thinking of bonding is not a way of combining channel bitrates (the channel bit rates stay the same, 2*1 Gb/s is still going at 1Gb/s). Rather, bonding is a way of using multiple channels to send packets in parallel and at the far end recombine them to send onwards in series in the correct order.

Lets say we have two 1Gb/s ethernet channels. Lets also say the average packet size is 1500 bits.
So very simplistically that is 1x1024x1024x1024/1500 = 715,000 packets per second.
Bonding two such ethernet channels together will give 715,000x2 = 1,430,000 packets per second.

Now, to make sure the parallel bonded streams are buffered and reconstructed into a single serial stream with all the packets in the correct order can take considerable amounts of memory and cpu cycles, so a lot of compute power and resource is needed.

In the real world there are also many overheads this simplistic view has not taken into account so the achieved output packet rate is always going to be less than this simple model predicts.

Where bonding becomes realistic in the world of "normal" router type devices, is combining multiple low bandwidth channels together into something more useful.

Long distance point to point wireless links using multiple radio channels on the same link has been a well used application, particularly before the current state of the art high bandwidth professional but proprietary hardware became available.

Shorter distance venue or community mesh systems are a current popular application using dual 5GHz radios on each mesh node to give a significant performance increase for the mesh network backhaul without having to resort to very expensive and proprietary hardware.

I hope this adds some context to the presence of bonding in OpenWrt.


This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.