Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

this is an underpaid employee writing, who's apparently responsible for all the IT stuff in a very small (non-IT) company. Today said company got a bunch of PCs/workstations, a switch, a computer that's supposed to be used as a router, two DSL connections (each 16 MBit/s downstream and 1 MBit/s upstream) and a dedicated server which is hosted and managed professionally by a larger local company with some decent connection speed (1 GBit/s both directions if I'm not mistaken).

This is what I've set up (note I'm not making use of the second DSL connection at all)...

          ETH0                    ETH1
 |   |   |
PC1  |   |
    PC2  |

... when my boss asked me, if it was somehow possible to get 32 MBit/s downstream and 2 MBit/s upstream. At that time I replied "no" without thinking too much about it. Now I've just had the following idea...

                                  ETH1                                             ETH0
          ETH0                     ,---[DSL MODEM 1 (NON-STATIC IP)]---,        ,---,                  ETH0
[  SWITCH  ]---[LINUX DEBIAN ROUTER]                                   [INTERNET]   [LINUX DEBIAN SERVER]---[INTERNET]
 |   |   |                         '---[  DSL MODEM 2 (STATIC IP)  ]---'        '---'
PC1  |   |                        ETH2                                             ETH0
    PC2  |

... but I have absolutely no clue how to implement that. Would that even be possible? What would the masquerading rules look like on the router? What about the server? I didn't find anything on the internet, mainly because I couldn't come up with any good keywords to search for to begin with. English obviously isn't my first language.

Thanks in advance for your time!

Edit I stumbled across the keyword "bonding". Is it applicable in this situation?

share|improve this question
A friend of mine achieved this. For that purpose, he was force to mount N vpn (for N connection, in your case 2) toward the server. Can't get you much more info, sorry. – aif Oct 14 '12 at 11:37
This would be very interesting! – Dženis Macanović Oct 14 '12 at 18:31

This article should cover what you're trying to achieve. You should be able to update the routing tables with scripts in /etc/network/if-up.d/ (add route when interface goes up) and /etc/network/if-down.d/ (delete route when interface goes down).

share|improve this answer
We didn't get a fixed IP network assigned for one of the two connections. The IP address changes every time when reconnecting to the internet. – Dženis Macanović Oct 14 '12 at 18:33
Then you need to update the routing tables every time you reconnect to the internet. – Ansgar Wiechers Oct 14 '12 at 20:39
up vote 0 down vote accepted

I found the answer in a YouTube video. It's done the way aif has suggested. Do it Yourself: Bonding Over VPN

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.