[gelöst]VPN Client(pptp) routing Problem

gamf

Neuer User
Mitglied seit
22 Mrz 2006
Beiträge
71
Punkte für Reaktionen
0
Punkte
0
Also ich habe es ja geschafft den pptp Client erfolgreich zu kompillieren, das ganze läuft auch. Er baut schon brav die VPN auf und gibt mir ne lokale und ne remote ip. So jetzt muss man das ganze noch routen.
route add -host Server dev dsl
route add default dev ppp0
So das biegt dann das Standard routing um. Alles schön und gut auf der Fritzbox funzt das auch, das ich in dem anderen Netz die Computer erreiche und auch dortrüber ins Internet komme. Nur komme ich von Computern die an meiner Fritzbox nicht in das andere Netz, also werden diese Pakete dann nicht über die VPN geroutet und werden irgendwie gedropt. Jutt über hilfe wäre ich sehr dankbar. Bei Openvpn scheint das ganze über tun devices zu laufen, das kann nur leider der pptp Client nicht. Über iptables soll man das ganze auch realisieren können, wenn man iptables als nat benutzt, so auf der box ist ja kein iptables. Das ganze muss doch auch anders funktionieren.
 
Zuletzt bearbeitet:
Die zwei Routing-Befehle sehen aus der kalten eigentlich ok aus, aber vielleicht kannst Du der Vollständigkeit halber doch noch mal die Ausgabe von "route -n" auf der Box posten (was passiert z.B. mit der ursprünglichen Defaultroute?) ?!

Ob das Device pppX (PPTP) oder tunX (OpenVPN) heißt, ist eigentlich völlig Wurst, daran kann's nicht liegen.

Ähm, Moment: Wie lauten denn die IP-Adressen für die Rechner hinter der Fritzbox? Und wie lauten die Adressen in dem anderen Netz? Kann es sein, dass Dir einfach nur die "Rück-route" im anderen Netz fehlt?
 
@kreideholer ja das erste kenn ich, da hab ich das ja her mit den iptables.

@derheimi Hmm also das sind natürlich ganz verschiedene Ip-Bereiche. Einmal ein normale home adresse wie zB 192.168.178.1 mit subnetz 255.255.255.0. Und das remote Netz mit einem Class B Netz. Aber ich denke auch das die Rückrichtung net funzt, aber wie bring ich das der fritzbox bei? Bei OpenVPN scheint es ja zu funzen mit dem Client. Also bei PPTP-Client Routing haben die das mit Ip-tables beschieben, aber das hat die Fritzbox ja net.

PS: Die default route wird einfach überschrieben. In meinen Tests hab ich ja auch nur die subbereiche umgeroutet, das wollte ich hier aber net schreiben, deswegen das beispiel mit der default route. Also mit dem subbereich, kann ich normal ins Internet, aber wenn ich dann das VPN Netz erreichen will geht es mit dem Rechner net, aber halt mit der Fritzbox.
 
[ot]Also wenn Du hier Probleme beschreibst und das in Wirklichkeit ganz anders machst, ist es natürlich schwierig, Dir da zu helfen. Und ne Signatur wäre auch nicht schlecht... Nix für ungut.[/ot]

Wenn Du von der Fritzbox aus die Rechner im ClassB-Netz pingen kannst, und von den Rechner hinter der FB nicht, dann stimmt definitiv die Rückroute nicht. Das kannst Du aber auf der Fritzbox wirklich nur beheben, wenn Du NAT (Masquerading) verwendest und dafür brauchst Du wirklich iptables & Co, also z.B. den dsmod.
Alternativ (und das wäre die IMHO technisch bessere Variante) müsstest Du auf dem PPTP-Server eine Route für die Rechner hinter der Fritzbox anlegen, ala "route add -net 192.168.178.0 netmask 255.255.255.0 gw $PPTP_IP_DER_FB". Ich weiß jetzt allerdings nicht, welchen PPTP-Server Du einsetzt und ob man das da irgendwie in der Konfiguration hinterlegen kann, weil die PPTP-IP der FB ändert sich vermutlich (zumindest kann) ja bei jedem neuen VPN-Aufbau. Daher müsste diese Route dynamisch angelegt und entfernt werden...
 
ok werd ich genauer. Also zu Hause 192.168.178.x subnetz 255.255.255.0. So und verbinden will ich mich zur uni. pptp Server ist 130.149.145.10 subnetz 255.255.0.0. Die adressen dahinter sind teilweise auch aus dem Ineternet erreichbar. Also wenn ich mich dann schön brav mit dem uni Server verbinde:
Code:
pppd call uni debug dump logfd 2 nodetach
krieg ich dann folgende Ip Adressen:
local IP address 130.149.146.10
remote IP address 130.149.145.8
so dann mach ich ein:
Code:
route add -host 130.149.145.10 dev dsl
route -net 130.149.0.0 netmask 255.255.0.0 dev ppp0
So das ist dann die Route... Damit kann ich dann Uniserver von der Fritzbox anpingen. Aber halt die Rechner hinter der Fritzbox nicht. An den VPN Server in der uni kann ich natürlich nix drehen. Hmm bleibt da wirklich nur die möglichkeit Iptables einzusetzen oder geht das auch irgendwie anders?

PS: Das peer file das oben uni heisst:
Code:
pty "pptp prima.cs.tu-berlin.de --nolaunchpppd"
name USERNAME
remotename PPTP
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
mppe required,stateless
file /var/flash/options.pptp
ipparam uni
options.pptp:
Code:
lock
noauth
nobsdcomp
nodeflate
 
Zuletzt bearbeitet:
Danke für die vielen Infos, damit kann man doch viel besser arbeiten :)

Die gute Nachricht zuerst: Du hast soweit alles richtig gemacht.
Die schlechte: ohne NAT & iptables kommst Du leider wirklich nicht weiter, denn wenn Du an den Routern der Uni nix drehen kannst, musst Du alle Deine Rechner hinter der Fritzbox "verstecken", anders gehts einfach nicht.

Naja, eine Möglichkeit gäbe es noch: wenn Du auf der Fritzbox nen Proxy-Server installierst (für HTTP, oder sogar nen Socks-Proxy)... aber das macht deutlich mehr Aufwand.

Anhand der Sig nimmst Du den "originalen" dsmod von danisahne, ist da kein iptables mit drin? Das könnte man doch eventuell nachpatchen... Sorry, ich hab mich mit diesem noch nicht so sehr beschäftigt... Werd ich mir gleich mal anschauen.
 
naja ich weiss ja net wie das aussieht, wenn man da iptables reinpackt mit dem multid. Der übernimmt ja eigendlich das NAT zeugs und besonders das Trafficshaping. Den müsste man ja dann villeicht ausschalten sonst kommen die sich ja in die Quere... Kann da jemand was aus erfahrung sagen?

PS: Irgendwie scheint es ja für OpenVPN zu funzen, wie hab ich keine Ahnung, aber ich hab den Verdacht, das es über das tun device klappt.
 
Zuletzt bearbeitet:
Also in die Quere kommt sich da nix, denn Du würdest ja das NAT nur für das pppX-Device konfigurieren, nicht für das dsl-Device, um das sich der multid kümmert. Und auch das Traffic-Shaping spielt da gar nicht rein. Von daher kannst Du das ruhig mit einbauen und aktivieren...

Das es bei OpenVPN geht, ist allerdings merkwürdig... Hast Du Zugriff auf den OpenVPN-Server? Vielleicht ist dort ne Route händisch eingetragen?
 
Das es bei OpenVPN geht, ist allerdings merkwürdig... Hast Du Zugriff auf den OpenVPN-Server? Vielleicht ist dort ne Route händisch eingetragen?

Naja das war mehr ne annahme, da es ja im OpenVPN Package zur verfügung steht. Ausprobiert habe ich es natürlich net. Aber die haben da ja auch nen Client drin, und ich würde behaupten, das es für das Senario was ich habe dort funktioniert. Aber villeicht spielen die da auch mit dem Routing des Servers rum ka. Ich kann das auch so net testen, uni hat kein OpenVPN Server.

Aber bist du dir da sicher das iptables und multid in die Quere kommen, da die ja dann beide an eth0 lauschen von Verbindungen aus dem lokalen netz, der multid will die Packete dann über dsl routen und iptables würde es dann über pppX versuchen.
 
Nebenbei: bei OpenVPN musst Du den Server auch entsprechend konfigurieren, sonst geht das dort auch nicht.

Zu iptables und multid: die stören sich wirklich nicht im geringsten, weil die quasi nicht "lauschen", sondern nur "zugeteilt" bekommen. Genau das regelst Du ja mit der Routingtabelle. Die wird von oben nach unten durchgearbeitet. Beispiel:
"Ausgabe" von "/sbin/route -n" (mal schnell händisch, wird ein bisschen anders aussehen, aber die Reihenfolge sollte ungefähr passen):
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
130.149.145.10  0.0.0.0         255.255.255.255 U     0      0        0 dsl
130.149.X.Y     0.0.0.0         255.255.255.255 U     0      0        0 ppp0
192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
130.149.0.0     0.0.0.0         255.255.0.0     U     0      0        0 ppp0
0.0.0.0         0.0.0.0         0.0.0.0         UG    0      0        0 dsl

Der Linuxkernel sucht anhand der Ziel-IP die entsprechende Zeile raus und schickt das Paket über das passende Interface aus der letzten Spalte. Wenn es übers VPN geht, dann macht er halt vorher noch ein NAT und legts auf das ppp0-Device. Dort holt es sich der PPTP-Client ab. Der wiederum verpackt es in ein neues Paket, was er an die 130.149.145.10 schicken muss, und da bekommt es der multid in die Finger. Der "sieht" das eingepacktet Paket aber gar nicht, weil er nur binäre Daten sieht - das könnte genauso gut ne HTML-Seite oder nen Bild sein. Daher macht der damit auch gar nichts weiter sondern schickt das einfach nur über die dsl-Leitung raus.
Ne super Anleitung, wie die Paket durch den Kernel fliegen, gibts übrigens im
Linux Advanced Routing & Traffic Control-Howto.
 
ajo erstmal danke, so geläuftig iss mir das innere des Linux Kernels net ;-) Dann werd ich wohl mal iptables checken müssen. Aber das kann eventuell noch etwas dauern, hab grad net so die Zeit dafür.
 
jutt nach nem bischen basteln mit den Kernel-modulen und iptables modulen funzt es bei mir. Ich werd dann irgendwann nochwas in dem pptpd Thread was zu schreiben wie das ganze funzt. Das ganze ist etwas kompliziert, aber naja hauptsache es funktioniert.
 
@gamp: Wie hast du es denn jetzt lösen können???
(Stehe vor ähnlichen Problemen)
 
ich habe es eingestellt(nicht mehr weiterverfolgt), da es nicht stabil läuft, es liegt an dem iptables Problem das glaube ich noch nicht gelöst wurde, zumindest weiss ich nichts davon. Aber wenn du sowas machen willst dann musst du das über iptables oder ähnliches machen. Ich glaube irgendwo im forum steht nen bischen was zu nat mit iptables und openvpn oder ähnliches.
 
iptables mit ip_conntrack ist nach wie vor nicht stabil.

MfG Oliver
 
heißt das, es gibt momentan keine möglichkeit sein kompletten traffic über ein vpn (per pptp) abzuwickeln ?..schade...
 
Hi,

ich wollte mich mal versuchen und den pptp client auf der box zum laufen zu bekommen. leider komme ich mit der anleitung aus dem wiki nicht weiter, um die software zu kompilieren.
Nach dem setzen des Pfads bekomme ich bei ./configure eine Fehlermeldung, dass es den Befehl nicht gibt (Datei oder Verzeichnis nicht gefunden).

Mir ist auch nicht ganz klar, wie ich das ganze auf Mipsel kompilieren kann. Ein make läuft erfolgreich durch, startet aber dann nicht auf der Box....

Über ein Hinweis wäre ich dankbar!

Grüße

D00m
 
Bist du sicher, dass die Anleitung aktuell ist? pptp ist als Paket über menuconfig auswählbar.

MfG Oliver
 
ich meinte die allgemeine anleitung zum cross compile aus dem wiki...

unter welchem name ist denn der PPTP Client auswählbar?

bin jetzt noch einmal die listen durchgegangen, ich find es nicht..??
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.