Sie sind nicht angemeldet.

1

18.02.2013, 20:21

Link Aggregation / Load Balancing

Hi@all,

ich habe vor, mit Hilfe von drei 3G-Sticks eine simultane Verbindung zu meinem Server aufzubauen, und dabei die Bandbreite aller drei Sticks zu aggregieren. Der Hintergrund ist dieser, dass die Sticks schnell jeweils auf 64kbit/s vom Provider gedrosselt werden. Ich habe nun vor, die jeweils 64kbit/s zu bündeln, sodass ich auf einem Endgerät 192kbit/s zur Verfügung habe.

Zuerst habe ich es versucht, mithilfe von mehreren default Routen und Round Robbin Routing zu realisieren. Das hier habe ich dafür verwendet.. Bei ICMP-Ping funktioniert das sehr gut, doch sobald ich zusammenhängenden Traffic wie VPN oder HTTP darüber Route wird die Verbindung extrem langsam, da 2/3 der Pakete verlohren gehen. Das ist logisch, da mein Server nicht erwartet das erste HTTP Request Paket von IP1/Port1 die anderen Pakete aber von IP2/Port2 und IP3/Port3 zu erhalten. Deshalb beantwortet er immer nur dann das Paket, wenn die Anfrage über die initiale IP1/Port1 Kombination eintrifft, so wie es bei normalen Verbindungen auch immer der Fall ist.

Ich suche nun nach einem Programm dass folgendes leistet:
Erzeugung eines Virtuellen Netzwerk Interfaces auf beiden Seiten (Client mit 3 UMTS-Sticks / Server mit einer öffentlichen IP). Über dieses Nic soll ein Tunnel zwischen diesen beiden Punkten load balanced aufgebaut werden. So kann ich dann über diesen Link einen VPN-Tunnel direkt zu meinen Server aufbauen. Über das Round Robbin Routing funktioniert das nicht, da der TLS-Handshare wegen den wechselnden Absender IPs fehlschlägt. Nach Möglichkieten sollte, das Tool auch für OpenWRT verfügbar sein...
Techno4ever

2

18.02.2013, 21:54

Ich weiß zwar nicht ob es für OpenWRT gibt, aber kannst du nicht die 3 UMTS Schnittstellen in ein Bonding zusammen führen?

http://www.gentoo.org/doc/en/handbook/ha…hap=3#doc_chap6


ist nur eine Idee und von mir nicht getestet.
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -

3

19.02.2013, 18:57

Nein das funktioniert nicht, weil ich keinen Layer 2 ZUgriff auf das mobile Internet habe. AUßerdem müsste das ja auf der anderen Seite vom Provider wieder zusammengeführt werden.

Momentan habe ich mir folgendes zur Lösung überlegt. Nachfolgend die Routingtabellen und IPs:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Routingtabelle Client:

Ziel                       Gateway  Maske    Interface
10.64.64.64          *              32           WAN0
10.64.64.65          *              32           WAN1
10.64.64.66          *              32           WAN2

IP_WAN0 = 10.0.0.1
IP_WAN1 = 10.0.0.2
IP_WAN2 = 10.0.0.3

Routungtabelle Server:
192.168.0.0          *              24           br0
0.0.0.0                  1.2.3.4   0             ppp0

IP_ppp0 = 3.4.5.6
IP_br0 = 192.168.0.1



Schritt 1:
OpenVPN auf dem Server so einrichten, dass es von außen auf drei unterschiedlichen Ports erreichbar ist. zb 10000, 10001 und 10002
Ein einfaches Forwading mit iptables sollte genügen.

Schritt 2:
Drei VPN Verbindungen vom Client über die drei Interfaces anhand der Zielports zum Server aufbauen. (Unterschiediche Ports sind notwendig, um die richtige Routingentscheidung treffen zu können)

Schritt 3:
Aggregation des Links Server -> Client sowie Client -> Server mittels Round Robbin über die drei IPs in beide Richtungen.
Techno4ever