# High (double) speed with multilink DSL

## zoozo

I've two separate 3Mbit ADSL line, and I want to unite them to one double speed connection. It is much cheeper here, than an official 6Mbit DSL line. How can I do that?

My idea is to 

1. put a PC to a server hotel (call it S-pc). 

2. Connect the two adsl modem to the home PC (call it H-pc) with two ethernet card. 

3. Start both ADSL line on H-pc. They will be: ppp0 and ppp1

4. Create two separate VPN line between S-pc, and ppp0 of H-pc and ppp1 of H-pc.

5. Then start a dual speed (united) ppp interface over the two VPN. 

Anyone can help to make it? Or is there any howto about it? 

Both PC (H-pc and S-pc) have gentoo installed.

```

Home                                                                                  server hotel

                | ppp0 -------(Adsl connection1)-----|       |   

H-pc -----<                                          | ISP   |====(internet)===S-pc

                | ppp1 -------(Adsl connection2)-----|       |

```

----------

## linerminator

correct me if im wrong, but youd still have 2 different (i presume routable) ips on each connection. how would servers be responding to your queries, if they dont know which of the 2 interfaces to reply to (assuming you manage to get a single process to make the connection using both interfaces in the first place)? dont forget tcp is a reliable protocol, meaning each packet is checked for integrity with a checksum (hence retransmission if that is needed) and theres a certain degree of order in which packets have to arrive at their destination.

naturally theres a lot more to the issue, but as far as i know this cant be done, or at least it would involve some hi-tech equipment.

i think your best bet would be to purchase a dual wan port router which would at least offer some management/load balancing, but im not familiar with those as far as details are concerned. i would assume you could accomplish something similar with a linux box...Last edited by linerminator on Thu Aug 25, 2005 5:08 pm; edited 1 time in total

----------

## bigfunkymo

They can likely not be combined.  However, implimenting some sort of load balancing might work well for you.

----------

## zoozo

No it is possible. FreeBSD can do that. Here is a man page about it:

http://www.gsp.com/cgi-bin/man.cgi?section=4&topic=ng_one2many

Cisco also has special box for this.

There should be a linux solution too.

----------

## xbmodder

Yeah its possible I don't remember about this. Some guy made an experimental Kernel mode driver to do this. you'd have two virtual interfaces inside the hotel and mesh them together.

----------

## linerminator

 *zoozo wrote:*   

> No it is possible. FreeBSD can do that.

 

very interesting, didnt know about it. a quick google on NG_ONE2MANY didnt reveal too much... if you have any more links/etc. (bsd/whatever), id be very interested.

regards

----------

## zoozo

 *linerminator wrote:*   

>  *zoozo wrote:*   No it is possible. FreeBSD can do that. 
> 
> very interesting, didnt know about it. a quick google on NG_ONE2MANY didnt reveal too much... if you have any more links/etc. (bsd/whatever), id be very interested.
> 
> regards

 

Some background information that I found,

http://www.freebsd.org/cgi/url.cgi?ports/net/mpd/pkg-descr

http://www.elischer.org/netgraph/

there is not too much information about it.

I'd not able to find any other info about usage of NG_ONE2MANY, than the page I linked above.

----------

## bigfunkymo

I don't see how this could be possible without special software on both ends of the connection.  You may be able to load balance many connections and get an effective doubled throughput.  But without special software on BOTH ends of the DSL lines, you will only be able to get a single connection up to the speed of one link.  Consider this scenario for a second:

You have 2 arbitrary internet connections with 2 arbitrary ip addresses.  You initiate a connection to a HTTP server and it routes through internet connection "A".  The remote webserver will send all replies back to IP address of connection A--how would this remote server know to send every other packet to connection "B"?  

You won't be able to get a TRUE double speed connection unless you and your ISP--AT BOTH ENDS--virtualize 2 connections into one line.  Otherwise, your best bet is to do load balancing and thats a pretty good alternative.  You'll just never see a single connection go faster than the speed of one of your lines.

----------

## zoozo

Read my first post.

You are right it is impossible with a single PC, that is why I need a second PC in a server hotel. 

When my home PC (H-pc) initiate a connection to a Http server, and routes through connection A. It goes through VPNa (Virtual private Networking) to my S-pc (the PC in the serverhotel) and then S-pc forwards it to the Http server. The remote Http server "thinks" that query came from S-pc. The Http server will send all replies back to S-pc. 

S-pc will decide which VPN to use. It can forward the answer via VpnA or VpnB to H-pc.

----------

## prygme

Try this script. However this is a single router method. It can balance the internet traffic between DSL lines.

#!/bin/sh

IP_PPP0=`ifconfig ppp0 | grep inet | cut -d : -f 2 | cut -d \ -f 1`

IP_PPP1=`ifconfig ppp1 | grep inet | cut -d : -f 2 | cut -d \ -f 1`

PESO_PPP0=1

PESO_PPP1=1

LAN1=192.168.1.0/24

LAN2=10.0.0.0/16

GW_LAN1=192.168.1.1

IF_LAN=eth0

ip ru del from $IP_PPP0

ip ru add from $IP_PPP0 lookup ppp0

ip ro add $LAN1 via $GW_LAN1 table ppp0

ip ro add $LAN2 via $GW_LAN1 table ppp0

ip route add default via $IP_PPP0 table ppp0

ip ru del from $IP_PPP1

ip ru add from $IP_PPP1 lookup ppp1

ip ro add $LAN1 via $GW_LAN1 table ppp1

ip ro add $LAN2 via $GW_LAN1 table ppp1

ip route add default via $IP_PPP1 table ppp1

ip ro del default

ip route add default equalize nexthop via $IP_PPP0 dev ppp0 weight $PESO_PPP0 nexthop via $IP_PPP1 dev ppp1 weight $PESO_PPP1

----------

## bigfunkymo

I agree, that may give you increased throughput.  One possible problem I see is that by adding the extra hops to your VPN server, you may actually increase your latency while also increasing speeds.

----------

## zoozo

 *prygme wrote:*   

> Try this script. However this is a single router method. It can balance the internet traffic between DSL lines.
> 
> 

 

Well as you wrote this is a single computer solution, and I need a dual computer style one. The two Adsl lines would act as One high speed line. Thanks the script anyway.

----------

## khuongdp

I found something here maybe you can use it.

https://lists.netfilter.org/pipermail/netfilter/2004-August/055203.html

----------

