[Linux] Verschillende internetverbindingen samenvoegen?

Pagina: 1
Acties:
  • 188 views sinds 30-01-2008
  • Reageer

  • lvh
  • Registratie: Juli 2001
  • Laatst online: 02-11-2022
Ik ga binnenkort een servertje maken die Debian gaat draaien. Deze server moet vooral firewall en internet sharing doen. Nu is mijn vraag, als ik meerdere internetverbindingen via meerdere ethernetkaarten (server hangt ook nog op andere netwerken waar aan internet sharing wordt gedaan) samenbrengen en dan op een ethernetkaart zetten? Zodanig dat ik bijvoorbeeld van drie DSL-abonnementen die zeg maar 3MBit leveren eentje kan maken die iets van rond de acht levert.

Ik heb al gegoogled, maar die bracht weinig op behalve www.netfilter.org, een site die er kwa informatie handig uit ziet (gelinkt met het iptables project).

Van wat ik daar lees zou ik dus het samenvoegen van de internetverbindingen en het verdelen van de samengevoegde als iets aparts moeten zien.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23-02 22:21
racoontje schreef op 12 december 2003 @ 14:03:
Nu is mijn vraag, als ik meerdere internetverbindingen via meerdere ethernetkaarten samenbrengen en dan op een ethernetkaart zetten?
Dit ziet er niet uit als een Nederlandse zin - misschien even editen zodat het wat duidelijker wordt? :P


Wat je vraagt kan in principe, maar is in de praktijk heel erg tricky. Antwoorden op verstuurde berichten komen per definitie via hetzelfde IP terug; je hebt uiteraard controle over wat je verstuurd, maar niet over wat (en vooraal hoeveel) anderen terug naar jou sturen, dus het load-balancen is per definitie lastig.

Ik neem hierbij maar aan dat je 3 externe IP's hebt en die wilt 'poolen' (dat moet haast wel, tenzij je echt een koele deal hebt met je DSL-provider) - en als je 'round robin' pakketjes gaat sturen, dan snappen internet hosts natuurlijk totaal niet wat er gebeurt, omdat ieder pakketje dan een ander extern IP lijkt te hebben - dat kan dus niet binnen een TCP/IP connectie.

Dus moet de server 'stateful' zijn (zodat een bepaalde TCP/IP verbinding de hele tijd op dezelfde lijn blijft, zowel met zenden als ontvangen). Dat helpt uiteraard ook niet voor het load-balancen, en is bovendien aardig belastend voor de server (iig wel als er veel gelijktijdige verbindingen zijn).

Dus het kan wel, maar is zeker niet heel gemakkelijk (tenzij ik iets gemist heb en nu veel te moeilijk zit na te denken ;) ).

[ Voor 7% gewijzigd door Wilke op 12-12-2003 14:22 ]


  • freggy
  • Registratie: Juli 2002
  • Niet online

Verwijderd

2 Default gateways is zeker mogelijk onder linux.
Je moet het iproute2 package hebben.

Debian heeft deze wel in haar deb collectie als ik het goed heb.
Anders haal je hem hier: ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz

Verder is het zeer aan te raden om deze howto aandachtig door te lezen:
http://lartc.org/howto/

Je kernel moet dit aanhebben staan:
CONFIG_IP_MULTIPLE_TABLES
CONFIG_IP_ROUTE_MULTIPATH (deze weet ik niet zeker meer, ff howto lezen!)

Verder heb ik mijn kernel gepatched met deze diff:
http://www.ssi.bg/~ja/patch-2.4.23-ja1.diff


Ik heb bijvoorbeeld dit lopen:
eth0 (lan, 192.168.0.1)
eth1 (wan ip van de kabel)
eth2 (lan ip van adsl router, 192.168.6.2)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ip link set lo up
ip addr add 127.0.0.1/8 brd + dev lo
ip rule add prio 50 table main
ip route del default table main

ip link set eth0 up
ip addr flush dev eth0
ip addr add 192.168.0.1/24 brd + dev eth0

ip link set eth1 up
ip addr flush dev eth1
ip addr add 212.142.x.x/24 brd + dev eth1

ip link set eth2 up
ip addr flush dev eth2
ip addr add 192.168.6.2/24 brd + dev eth2

ip rule add prio 201 from 212.142.x/24 table 201
ip route add default via 212.142.x.y dev eth1 src 212.142.x.x proto static table 201
ip route append prohibit default table 201 metric 1 proto static

ip rule add prio 202 from 192.168.6/24 table 202
ip route add default via 192.168.6.1 dev eth2 src 192.168.6.2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static

ip rule add prio 222 table 222
ip route add default table 222 proto static 
                nexthop via 212.142.x.y dev eth1 weight 1 
                nexthop via 192.168.6.1 dev eth2 weight 2

212.142.x.y = default gateway van kabel

Aangezien mijn dsl een keer zo snel is als de kabel, krijgt ie met die weight meuk dus meer traffic voor zijn kiezen.

Let wel!! Dit is niet bundeling, maar balancing.
Zie: http://lartc.org/howto/lartc.rpdb.multiple-links.html

Met mijn setup is de ssh/ftp/http ect, via zowel kabel als adsl te bereiken.
Tevens wordt al het LAN maquerading verkeer gebalanced tussen de 2 gateways.

Verkeer van mijn werkstation in het lan, gaat alleen via de dsl verbinding:
code:
1
2
ip rule add from 192.168.0.143 table 224
ip route add default via 192.168.6.1 dev eth2 table 224


Hopelijk heb je er wat aan.
Om mijn setup werkende te krijgen heb ik echter wel veel trial and error gehad.
Het is veel lezen, succes er mee.

[ Voor 15% gewijzigd door Verwijderd op 12-12-2003 15:22 ]