Traffic Shaping zwischen lokalem DSL und VPN

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich hab mir folgendes Projekt vorgenommen:

    Ich will das mein Pi in der Lage ist Traffic wahlweise eine (von mehreren) VPN Verbindungen entlang zu schicken oder über das lokale Internetgateway meiner Fritzbox. Die Auswahl soll abhängig davon sein welche Webseite aufgerufen wird.

    Meine Hardware Konfiguration ist wie folgt
    - Lokales Gateway zum Internet wird durch einen Fritzbox router mit der IP x.x.1.254 zur Verfuegung gestellt.
    - Der Pi hängt wie alle anderen Endgeräte über einen Switch an der Fritzbox, der Pi hat die IP x.x.1.81 im Lokalen Netz.
    - Zusätzlich gibts lokale Endgeräte mit verschiedenen IPs im x.x.1.x Netzwerk. Exemplarisch will ich mal meinen SmartTV mit x.x.1.7 herausgreifen.

    Software Konfiguration auf dem Pi:
    Auf dem Pi hab ich ein akutelles RaspBMC installiert, da er in der jetztigen experimentierphase noch als mediaplayer doubelt. Ich hab bereits erfolgreich OpenVPN am laufen, der PI bietet einen tun-Server auf y.y.y.1 und einen tab-Server mit brigde br0, unter der IP x.x.1.81. Weiter wird der Pi noch ein PPTP client werden mit der IP x.x.10.6.

    Wie schaffe ich es das Traffic an z. B. 8.8.8.8 und 8.8.4.4 über den PPTP tunnel geht während traffic an alle anderen Addressen direkt über das Lokale Internet Gateway gehen soll?

    Danke schon mal im vorraus!

  • Das was Du willst ist kein Traffic-Shaping, Du willst Routing machen.

    Also entweder trägst Du die Routen manuell ein oder lässt sie vom OpenVPN Server pushen.

    Wenn Du jetzt Anfragen an 8.8.8.8 über VPN (PI: 10.10.1.81 und Endpunkt: 10.10.1.1) schicken willst:

    Code
    ip route add 8.8.8.8 10.10.1.1 dev br0

    Auf dem VPN Endpoint und auf dem PI musst Du dann noch ip_forward aktivieren und die IPs aus dem lokalem Netzwerk maskieren.

    Code
    echo 1 > /proc/sys/net/ipv4/ip_foward 
    /sbin/iptables -t nat -A POSTROUTING -o br0 -s  192.168.1.0/24 -j MASQUERADE
  • Gut zu wissen, dass es auch mit routing geht. Wenn ich jetzt den Traffic über den PPTP Tunnel statt über die bridge routen will, dann nehme ich an, ist das Interface anzupassen und als Endpunkt der PPTP server (x.x.10.1) zu wählen?

    Einmal editiert, zuletzt von Piminator (31. Juli 2014 um 14:13)

  • Vorsicht nur das du nix über das VPN routest was zum Aufbau und Betrieb des VPN gebraucht wird ;)

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Ok, erstes Problem in der Umsetzung. Meine PPTP Verbindung sieht so aus:

    Link encap:Point-to-Point Protocol
    inet addr:192.168.10.2 P-t-P:192.168.2.1 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1450 Metric:1
    RX packets:15 errors:0 dropped:0 overruns:0 frame:0
    TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:3
    RX bytes:581 (581.0 B) TX bytes:147 (147.0 B)

    Was bedeutet inet addr und P-t-P adresse? Welche soll ich für die route nehmen?

  • Erste Erfolge mit folgenden Befehlen. Um die Route einzurichten hat sich:

    route add 8.8.8.8 ppp0

    als erfolgreich erwiesen.

    Die nat muss dan wie folgt konfiguriert werden.

    iptables -t nat -A POSTROUTING -d 8.8.8.8 -j SNAT -to-source 192.168.10.2

    Jeder PC im LAN mit dem pi als default gateway wird nun zu 8.8.8.8 über den Tunnel geleitet und zu allen anderen Webseiten über das lokale DSL. Nächste Frage ist: Wie krieg ich es hin, dass ich allen Traffic der von einem LAN PC kommt, egal welcher, über den Tunnel schicke?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!