DSL bonding, dritter Versuch

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
erzich
Beiträge: 16
Registriert: 29.07.2013 18:24:18

DSL bonding, dritter Versuch

Beitrag von erzich » 16.08.2013 01:12:22

Hallo,

nachdem ich bei zwei bisherigen Versuchen bereits bei an der Grundvoraussetzung, den zwei VPN Verbindungen, gescheitert
bin nun etwas anderes. Der link ist zwar etwas älter aber ich habe die dort angegebenen Versionen installiert (vtun und olsr) um
der Anleitung 1 zu 1 folgen zu können.

http://www.howtoforge.de/anleitung/bund ... indigkeit/

Bis zum letzten Punkt hat sogar alles funktioniert doch der olsr client verbindet sich nicht zum server. Sonst geht alles !
Jetzt ist alles ausgeschaltet aber die Meldung war in etwa das die Adresse nicht vom Protokoll unterstützt wird, die
Anweisungen vom server wurden aber empfangen. Alles ist genau so wie im link konfiguriert, wo liegt der Fehler ?

Immerhin funktioniert die Netzwerkkonfiguration der router und NICs, ping ist von bond0 zu bond0 auf beiden Seiten
möglich, da sieht man auch schön an der Zeit das beide Verbindungen abwechselnd genommen werden, SSH/SCP
geht auch, in der ifconfig Ausgabe werden beide eth und beide tap Schnittstellen fast exakt gleich ausgelastet.
Da liegt das nächste Problem, eine Leitung hat 150%download/50%upload und die andere 100%download/100%upload.
Der upload läuft nach 30 sek. auf 800-1000kb/s, die doppelte Geschwindigkeit der schlechteren Leitung, download von
der anderen Seite ist kaum möglich. Trotzdem werden auf beiden Seiten beide interfaces gleich benutzt, daher
schon mal ein Erfolg, die Leitungen sind vielleicht einfach zu unterschiedlich aber da lässt sich in der Konfiguration
sicher noch was machen, leider weiß ich nicht was. Ideen ? Was nicht funktioniert: olsr client Einwahl und internet gateway.

Es muss doch möglich sein die Sch... zum laufen zu bekommen, bitte helft mir :)

Wenn ich das wieder anmache kann ich gerne noch meine config posten aber wie gesagt, alles 1zu1 wie im link.

Problem hier war nur:

Code: Alles auswählen

modules=( "iproute2" )

config_eth0=( "192.168.1.2/30 brd 192.168.1.3" )
config_eth1=( "192.168.1.6/30 brd 192.168.1.7" )
config_eth2=( "192.168.1.10/30 brd 192.168.1.11" )
config_bond0=( "192.168.10.2/30 brd 192.168.10.3" )

routes_eth0=( "default via 192.168.1.1 table default metric 10"
              "default via 192.168.1.1 table dsl-connection-001"
)

routes_eth1=( "default via 192.168.1.5 table default metric 10"
              "default via 192.168.1.5 table dsl-connection-002"
)

routes_eth2=( "default via 192.168.1.9 table default metric 10"
              "default via 192.168.1.9 table dsl-connection-003"
)
Ich habe daraus abgeleitet:

1. die /etc/network/interfaces Konfiguration

2. die Routen bzg. table dsl-connection-001/2

3. (Problem) die Routen auf table default, so wie im link geht es nicht da bei der zweiten Route die Datei schon vorhanden ist.


Mit freundlichen Grüßen

erzich
Beiträge: 16
Registriert: 29.07.2013 18:24:18

Re: DSL bonding, dritter Versuch

Beitrag von erzich » 16.08.2013 20:38:03

Keine Ideen ? :)

Das die VPN Tunnel sich bündeln lassen ist ja eigentlich schon genug, leider passen meine Leitungen nicht
zu der 1:1 Verteilung. Kennt sich jemand mit vtun aus ?

Kann man in der Zeile etwas einfügen um die verteilung zu beeinflussen ?

Code: Alles auswählen

ip "link set up %% multicast off mtu 1460"; 
"metric X" hat leider nicht funktioniert.


Aus diesem Abschnitt (vtund.conf):

Code: Alles auswählen

options {
    port      5000;                  # Listen on this port.
    bindaddr {
        iface eth0;                  # Listen only on ETH0 device only
    };

    # Syslog facility
    syslog    daemon;

    # Path to various programs
    firewall  /sbin/iptables;
    ip        /sbin/ip;
}

# Default session options
default {
    compress no;          # Compression is off by default
    speed 0;              # By default maximum speed, NO shaping
    encrypt no;           # Disable SSL-Encryption
    keepalive yes;        # Enable KeepAlive
    proto udp;            # Use UDP as Data-Protocoll
    multi killold;        # Allow new connection and kill old one
}

# First Interface Profile
dsl-bonding-if-001 {
    passwd my_secreat_password;     # Change password to your liking
    type ether;                     # Use Universal TUN / TAP Driver

    up {
        ip "link set up %% multicast off mtu 1460";      # Use your current MTU on your ISP - 40 Bytes for your tunnel's MTU
        program "/sbin/ifenslave bond0 %%";              # Attach TUN / TAP Device to port-channel
    };
}

# Second Interface Profile
dsl-bonding-if-002 {
    passwd my_secreat_password;     # Change password to your liking
    type ether;                     # Use Universal TUN / TAP Driver

    up {
        ip "link set up %% multicast off mtu 1460";      # Use your current MTU on your ISP - 40 Bytes for your tunnel's MTU
        program "/sbin/ifenslave bond0 %%";              # Attach TUN / TAP Device to port-channel
    };
}

### REPEAT THIS PROFILE MANY TIMES AS YOUR NEED
### YOU NEED ONE PROFILE FOR EACH CONNECTION


Ich könnte das einfach aufgeben aber das Thema lässt mich nicht mehr los, bis Sylvester sind noch beide
Leitungen da.


Mit freundlichen Grüßen

debnuxer
Beiträge: 236
Registriert: 10.03.2012 12:12:21

Re: DSL bonding, dritter Versuch

Beitrag von debnuxer » 17.08.2013 18:04:58

So richtig weiterhelfen kann ich dir leider nicht.

Habe auch schon diverse Howtos ausprobiert und immer hing es am Ende an irgendeiner Kleinigkeit und niemand konnte mir weiterhelfen.

Aber da kommt mir eine Idee, die sorgt allerdings nur für mehr HTTP-downstream unter bestimmten Bedingungen:


Man nimmt 2 Netzwerkkarten, an jeder hängt ein anderer Modemrouter mit eigenem Internetzugang.

Dann weist man jeder Netzwerkkarte ihren eigenen Gateway zu.

Dann installiert man Tinyproxy und lässt ihn auf der einen Netzwerkkarte lauschen.

Dann installiert man Privoxy, lässt ihn auf der zweiten Netzwerkkarte lauschen und stellt ihn auf intercepted Modus um.

Nun lässt man Privoxy im intercepted Modus arbeiten und erstellt mit Iptables einen Redirect, damit alles wo auf Port 80 durch die Output Chain fließt an Privoxy weitergeleitet wird. Mit Port 443 geht das natürlich nicht wegen MitM.

Jetzt wird also alles auf Port 80 sowie die Verbindungen von den angewiesenen Anwendungen (HTTP und HTTPS) an Privoxy weitergereicht.

Jetzt lässt man Privoxy alles außer Port 443 alle Verbindungen an Tinyproxy forwarden.
forward / 127.0.0.1:8888
forward :443 .

Das heißt HTTP geht über Tinyproxy und HTTPS geht über Privoxy, sowie durch das Interface auf dem diese laufen und dann an den entsprechenden Gateway (Modemrouter).

Wenn man nun gleichzeitig Downloads mit HTTP und HTTPS macht kann man mehr Bandbreite nutzen.

Durch das Addon HTTPS-Everywhere nutzt der Iceweasel öfters HTTPS, Youtubevideos kann man z.B. generell via HTTPS herunterladen.

Probleme sollte es keine geben denn der Firefox blockiert seit kurzem teilweise mixed Content und in Zukunft möglicherweise auch statischen mixed Content. Man kann das jetzt schon über about:config freischalten. Also so schlimm sollte das nicht sein, falls eine Webseite Probleme macht kann man sie einfach komplett von Privoxy auflösen lassen.

forward / 127.0.0.1:8888
forward :443 .
forward .ebay.de .
forward .ebay.com .
forward .ebaystatic.com .


Oder man lässt einen alten Laptop hinter dem anderen Modemrouter mit Tinyproxy Proxy spielen, und leitet dann HTTP Port 80 an diesen, dann braucht man nur noch bei einer Netzwerkkarte einen Gateway.

Natürlich ist es auch besser, man verwendet 2 verschiedene Browser und stellt bei dem einen als HTTP sowie HTTPS Proxy den Tinyproxy ein und bei dem anderen den Privoxy.

Oder man lässt auf dem einen PC am einen Modemrouter nur einen Downloadmanager durchrattern und macht die Daten in einem NAS dem LAN zugänglich.

Dann könnte man als dritten Internetzugang noch das Smartphone als WLAN Hotspot und LTE-Modem benutzen, wobei die hohe Latenz dort eher selten zu verkraften ist. Wobei man da ggf. mit /proc/sys/net/ipv4/tcp_early_retrans und /proc/sys/net/ipv4/tcp_reordering etwas ausbessern könnte.

Beim Privoxy sollte man die default.action deaktivieren und in der match-all.action alle filternden Zeilen, löschen, damit es keine Verzögerung wegen der Filterung gibt.


PS: Wie wäre es statt mit 2 Internetverbindungen mit einem Vserver für ein paar Euro im Monat. Über diesen kann man durch einen SSH-Tunnel surfen, SSH beherrscht Komprimierung. Man kann einen PC mit Debian und Squid und dem Modemrouter als Gateway eingestellt als Proxy im LAN aufstellen. Squid dient als Cache und leitet den Verkehr über einen komprimierten SSH-Tunnel an den Vserver weiter. Auf allen Webbrowsern, Downloadmanagern etc. im LAN wird der Squid als Proxy eingestellt. Wenn man sich mal in einem öffentlichen WLAN befindet schützt der verschlüsselte Tunnel ebenfalls. Falls der Vserver im Ausland steht ist man die Gemasperre auf Youtube auch gleich los.
Das Leben ist wie ein überdimensionales Schachbrett.

erzich
Beiträge: 16
Registriert: 29.07.2013 18:24:18

Re: DSL bonding, dritter Versuch

Beitrag von erzich » 18.08.2013 19:29:16

Danke für deine Antwort debnuxer, genau so ist es, es scheitert meist an einer Kleinigkeit.

Die proxys sind garnicht nötig, mit passender route und downloadmanager als firefox addon habe ich knapp 15MB/s erreicht,
Surfen allein ist aber auch garnicht so wichtig, es soll möglich sein mit der kombinierten Geschwindigkeit alles ganz normal
überall hin zu senden und empfangen. An einem eigenen torrent tracker bin ich leider auch gescheitert, damit könnte man
auch ohne großen Aufwand beide Leitungen nutzen. Interessant war jedoch bittorrent sync.

Einen proxy (in dem Fall Squid) auf einem Server hatte ich aus Spaß auch mal eingerichtet, hier gibt es aber keinen
Geschwindigkeitsvorteil weil ja doch immer alles noch über die eigene leitung muss. Vorteil ist wie Du schon sagst natürlich
unzensiertes Youtube u.s.w. Lustig ist auch Firefox über VNC falls man einfach mal schnelle Geschwindigkeiten sehen will,
bringt aber nichts.

Könnte man eigentlich SSH Tunnel wie VPN als internetgateway verwenden und bündeln, wie z.B. tap0 und tap1 ?

debnuxer
Beiträge: 236
Registriert: 10.03.2012 12:12:21

Re: DSL bonding, dritter Versuch

Beitrag von debnuxer » 18.08.2013 23:02:40

erzich hat geschrieben:Surfen allein ist aber auch garnicht so wichtig, es soll möglich sein mit der kombinierten Geschwindigkeit alles ganz normal überall hin zu senden und empfangen.
Dann macht meine Idee natürlich keinen Sinn.
erzich hat geschrieben:Könnte man eigentlich SSH Tunnel wie VPN als internetgateway verwenden und bündeln, wie z.B. tap0 und tap1 ?
Man kann nur den Tunnel als Proxy verwenden und die Verbindung an einen Port auf dem SSH-Server leiten, z.B. wenn tinyproxy dahinter läuft.


Aber Openvpn+bonding sollte bei Google gute Ergebnisse liefern.

Und ich bin nun auch etwas schlauer:

Es gibt unterschiedliche Ansätze.
viewtopic.php?f=30&t=143989&hilit=wan+b%C3%BCndeln

Bei Multilink PPP geht nichts ohne Hilfe vom Provider.
viewtopic.php?f=30&t=134072&hilit=dsl+b%C3%BCndeln

Ob folgendes Sinn macht bin ich mir nicht sicher.
http://www.shorewall.net/MultiISP.html
Hab es mir noch nicht durchgelesen aber dass sieht auf den ersten Blick so aus als ob IP-Packete zwischen den Leitungen verteilt werden.

IP-Packete abwechselnd über 2 verschiedene Leitungen zu schicken kann definitiv nicht funktionieren.

Aber mit irgendwelchem dynamischen, lastabhängigen Routing sollte es gehen, also dass wie bei einer Art Loadbalancing eine neue Verbindung immer auf die gerade weniger ausgelastete Leitung verteilt wird.

Dann wird die Bandbreite bei mehreren gleichzeitigen Downloads irgendwo zwischen der maximalen Bandbreite von einer Leitung und der zusammengerechneten Bandbreite von beiden Leitungen liegen.

Letztendlich ist es aber einfacher und wahrscheinlich auch billiger einen einzelnen schnelleren Anschluss zu buchen, wenn man nicht bereits den schnellstmöglichen besitzt.

Auch sollte es über Routing-Einträge möglich sein bestimmte IP-Adressen oder eine IP-Range auf die beiden DSL-Router aufteilen.

Mit iproute2 kann man auf Routingebene einigen Anstellen.
http://packages.debian.org/wheezy/iproute

Folgender Link wurde schon öfters hier im Forum genannt, dass sollte wohl machbar sein.
http://www.tldp.org/HOWTO/Adv-Routing-H ... links.html
Bedenke:
viewtopic.php?f=18&t=101093&hilit=multi+wan#p634019

Ansonsten wäre vielleicht OLSR noch eine Möglichkeit, da ja zwei Router existieren:
viewtopic.php?t=63708

Irgend etwas wird schon funktionieren.

In der Zukunft wird es auf jedenfall einfacher:
http://www.heise.de/netze/meldung/IETF- ... 27504.html
Das Leben ist wie ein überdimensionales Schachbrett.

Antworten