D
D
dollar2011-09-03 15:02:09
Load balancing
dollar, 2011-09-03 15:02:09

How to sum up the bandwidth of several Internet channels from different providers?

Obviously, in the most general form, this problem is unsolvable, since when “transferring” to another provider, the IP will change, and almost all connections will have to be re-established.
Therefore, I immediately specify the question: It is
necessary to forward through several providers one or more TCP connections that are critical to the gap and to the channel width, having any equipment and software on hand and at the “other end”. “A” is a computer (conditionally a laptop) that needs a wide channel, while there is no channel itself, but there are many small providers. Each provider is extremely unstable - it can increase ping at any time, greatly increase packet loss, or even turn off for a while. However, in total, their throughput is enough with a margin.
habr-inet-channels-s.png
It is also possible to deploy a certain network segment (from one or more devices). Let's conditionally call "segment X". So far, this is a black box for me.
"B" - a computer that is obviously connected to a high-quality channel. Nearby we can also deploy any scheme and install any software.
Naturally, “B” (or “Y”) gets a white ip, and for “A” (or “X”) all ips are gray (unless 1-2 providers may give out, but not a fact).
Actually, the question is: is there a ready-made solution? And if not, where to look? The price and dimensions "X" and "Y" do not matter (within reason).
Here it is necessary not only and not so much to reserve traffic, but to create a single stable wide channel from many unstable and narrow ones.

Answer the question

In order to leave comments, you need to log in

10 answer(s)
K
Kindman, 2011-09-05
@dollar

What about Multilink PPP?

A
amc, 2011-09-03
@amc

en.wikipedia.org/wiki/Link_aggregation#Link_Aggregation_Control_Protocol
I'm really not sure if you can use this over PPP links.

S
square, 2011-09-03
@square

Nine women cannot have a baby in one month.

S
smartlight, 2011-09-03
@smartlight

from G. a bullet? this is hardly possible.

N
nuzni, 2011-09-03
@nuzni

Not to combine, but to correctly divide by tasks (type of traffic, address, etc.) But 2 + 2 = 4 is unlikely. One hell of a next package from the second provider will wait for the previous one ... How it turns out even in my head

L
Lampus, 2011-09-05
@Lampus

As for torrents, the author above is right. A lot of TCP / IP sessions are created there, which can be scattered over the channels. I used to do this on Linux, just like it is written in LARTC: lartc.org/howto/lartc.rpdb.multiple-links.html
But it seems to me that torrents went as they did.
There is a suggestion to look towards OpenVPN, in theory, you can write a patch for it, which will allow you to scatter traffic over several connections, and on the server side to collect them all in a heap.

K
Kindman, 2011-09-05
@Kindman

By the way, you can deploy
PPP over TCP (superposes PPP frames on a TCP connection. Frames are encoded in the same way as with an asynchronous serial connection) or
PPP over UDP (superposes PPP frames on a UDP connection. Each frame is encapsulated in a UDP datagram packet).

V
ValdikSS, 2011-09-05
@ValdikSS

If you want to split a single TCP connection across multiple providers... Damn, that's hard. Extremely difficult. But, for example, the same torrents, where there is a bunch of TCP, can easily be parallelized into several providers in Linux, for example.

M
Maxim Makhnyuk, 2012-05-11
@djem

www.peplink.com/

J
JDima, 2012-05-11
@JDima

1) Any options for spreading one TCP session over 2+ channels, especially with obviously unstable characteristics, are absolutely excluded. Packets may arrive in the wrong order, this is critical. And LACP does not allow you to spread one session over two channels (not to mention the fact that it is not designed to interface with different providers). Even in a controlled local area network with minimal charge variation, it is strongly discouraged to use per-packer loadbalancing.
2) In order for the session to be transferred to another without interruption during the collapse of one channel, you need to purchase PI AS and make friends with providers via BGP, and set extremely strict timers / BFD / PfR. Not the easiest option for a small company, and impossible for a private trader. But the most optimal.
Bottom line: the easiest way is to abandon the "failover without breaking the session" and, if possible, use multi-threaded data transfer, with uniform balancing of connections across channels.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question