OpenVPN-Paket

Freetz OpenVPN Client Routing-Probleme bei Fritzbox als IP-Client

Hallo,

ich bin ein wenig ratlos hinsichtlich meiner openVPN-Konfiguration. Habe hier in den letzten Tagen viele Threads gelesen und vor allem die Tipps von MaxMuster alle beherzigt und ausprobiert. Es kann gut sein, dass ich einfach was Banales übersehen habe, was schon 100mal erklärt wurde. Ich würde mich über Tipps freuen.

EDIT: Oh, ich habe wahrscheinlich auch im falschen Unterforum gepostet... My bad.

Mein Setup: Ich habe einen OpenVPN-Server auf einem eigenen VPS außerhalb meines lokalen Netzes aufgesetzt (der funktioniert gut und ich kann mich von verschiedenen Clients aus einloggen.) Ich kann also die Konfiguration des Servers kontrollieren. Von einer Fritz!Box 7170 mit Freetz möchte ich mich nun über OpenVPN als Client auf diesem externen OpenVPN-Server einloggen (das klappt auch, der Traffic, den ich direkt auf der Box per Konsoleneingabe erzeuge, geht durch's VPN). Nur möchte ich gern den Traffic von allen Geräten, die an dieser Fritz!Box über WLAN angebunden sind, direkt an den VPN-Server routen.

Dafür habe ich verschiedenes auf der Fritz!Box probiert (Routen hinzufügen, Standard Gateway umschießen, iptables Regel anlegen) und auf dem Server habe ich mit Optionen (route, iroute, redirect-gateway) gespielt. Leider komme ich da nicht voran.

Wichtig: In meinem lokalen Netzwerk sind zwei Fritz!Boxen aktiv: Eine Fritz!Box 7390 hängt an meinem Internet-Zugang (nicht DSL, an LAN1) und ist mein Standard-Gateway zum WWW. Die oben genannte Fritz!Box 7170 ist als IP-Client konfiguriert, das bedeutet wohl, dass eben der DHCP-Server von der 7390 die 7170 versorgt und auch alle anderen Geräte, die hinter der 7170 hängen.

Nun argwöhne ich, dass die 7390 immer "gewinnt" und den Clients immer ihr Standard-Gateway unterschiebt über DHCP. Deshalb habe ich schonmal auf einem Client hinter der Fritzbox 7170 ein anderes Gateway erzwungen, aber ohne Erfolg. Ich frage mich auch, ob die Fritz!Box 7170 sich für's Routing zuständig fühlt, wenn sie als IP-Client konfiguriert ist.

Details wie die route von meiner 7170 liefer ich gerne nach, ich wollte erstmal einen Überblick über die Situation geben.

Danke für Eure Hilfe im Voraus!

Viele Grüße
signaltonoise
 
Zuletzt bearbeitet:
Ich füge mal eine konkrete Frage hinzu:

Meine Fritz!Box 7170 ist im lokalen Netz über 192.168.31.29 erreichbar oder über fritz7170.fonwlan.box. Alle Geräte in meinem lokalen Netz sind über 192.168.31.xxx erreichbar.

Intern verwendet diese Fritz!Box aber noch die IP 192.168.32.1, wie man sehen kann in der Freetz Box-Info:

Code:
Netze: 	IP-Adresse 	Hostname
Öffentlich 	xxx.xxx.xxx.xxx
Intern 	192.168.32.1 	fritz7170.fonwlan.box
Urloader 	192.168.178.1
Schnittstellen:  	Protokoll 	IP-Adresse	Namen
lan	Ethernet	192.168.31.29
Nach einem frischen Reboot hat meine Fritz!Box 7170 (mit Freetz und gestopptem OpenVPN) folgende Route:

Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.31.0    *               255.255.255.0   U     0      0        0 lan
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         fritz.box       0.0.0.0         UG    9      0        0 lan
Wenn ich nun auf der Fritz!Box per telnet eingeloggt bin und ein "ping fritz.box" mache, kommt als Antwort nur eine Zeile:
Code:
PING fritz.box (192.168.32.1): 56 data bytes

Man beachte die "32" in der IP-Adresse. Das ist wohl die interne IP-Adresse, welche für den IP-Client/LAN1 genutzt wird?

In der /etc/hosts von meiner Fritz!Box 7170 steht drin:
Code:
192.168.32.1 	fritz.box fritz7170.fonwlan.box
Wenn ich nun aber von einem Laptop, welches über wlan an der Fritz!Box hängt, ein Ping auf den Hostnamen fritz.box mache, antwortet meine Standard-Gateway-Fritz!Box 7390 darauf:

Code:
ping fritz.box
PING fritz.box (192.168.31.1) 56(84) bytes of data.
64 bytes from fritz.box (192.168.31.1): icmp_req=1 ttl=64 time=2.05 ms
Ich frage mich, ob dieser Hostname fritz.box zu Problemen führen kann, weil er einmal 192.168.31.1 und einmal 192.168.32.1 zugewiesen wird, je nach Kontext? Ich nehme an, das lief schon immer so und hat bisher zu keinen Problemen geführt. Könnte es jetzt mit dem OpenVPN und der Route problematisch sein?

Wenn ich OpenVPN starte, erhalte ich auf der Fritz!Box 7170 folgende Route: (Die IP von meinem VPS habe ich mit vpn.vpn.vpn.vpn anonymisiert.)

Code:
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
vpn.vpn.vpn.vpn fritz.box       255.255.255.255 UGH   0      0        0 lan
192.168.254.13  *               255.255.255.255 UH    0      0        0 tun0
192.168.31.0    *               255.255.255.0   U     0      0        0 lan
192.168.254.0   192.168.254.13  255.255.255.0   UG    0      0        0 tun0
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         192.168.254.13  128.0.0.0       UG    0      0        0 tun0
128.0.0.0       192.168.254.13  128.0.0.0       UG    0      0        0 tun0
default         fritz.box       0.0.0.0         UG    9      0        0 lan

Die hinzugefügten Routen für's VPN werden vom Server gepusht, ich habe das eingerichtet analog zum Beispiel "Including multiple machines on the client side when using a routed VPN (dev tun)" von hier: http://openvpn.net/index.php/open-source/documentation/howto.html#scope

Gruß
signaltonoise
 
Zuletzt bearbeitet:
Okay, ich bin einen großen Schritt weiter:

Auf der 7170 läuft OpenVPN als Client.
Wenn ich auf meinem Laptop nun mich ins WLAN von der 7170 einbuche, bekomme ich vom DHCP-Server der 7390 alle Infos zugewiesen. Standard-Gateway ist dann 192.168.31.1, das ist die IP der 7390. Wenn ich nun manuell das Standard-Gateway in den Netzwerksettings des Laptops ändere (entweder über Ubuntu Network-Manager oder per route auf der Konsole), dann klappt das Routing über VPN.

Ich muss als Standard-Gateway und Nameserver auf dem Lapzop dann die IP der 7170 eingeben (192.168.31.29).

Ich frage mich nun, wie ich dieses manuelle Nachtragen ausmerzen kann. Brauche ich einen DHCP-Server auf der 7170, dort wo OpenVPN als Client läuft?

Oder reicht eine zusätzliche Route auf der 7170?

Viele Grüße
signaltonoise
 
Zuletzt bearbeitet:
Habe hier in den letzten Tagen viele Threads gelesen und vor allem die Tipps von MaxMuster alle beherzigt und ausprobiert.
:D Ein sehr guter Start ;-)

Wenn die 7170 mit Internet über LAN 1 konfiguriert ist, gibt es zwei Möglichkeiten, du hast ja scheinbar "Internet mitbenutzen" (IP Client) gewählt.

Dann ist es egal, ob ein Gerät an der 7390 oder der 7170 hängt, der DHCP läuft nur auf der 7390.

Etwas "blöd" ist, dass AVM die Möglichkeit aus den Boxen genommen hat, das WLAN als getrenntes Netz zu betreiben.
Daher ist die "einfachste" Möglichkeit (wenn die 7170 nur das WLAN bedienen soll):

Bei Internet über LAN nicht "mitbenutzen", sondern "selbst aufbauen" wählen. Dann bekommen die WLAN-Clients alles von der 7170 (auch der DHCP mit einem eigenen Netz ist dann dort) und auch das Routing läuft darüber...

EDIT:
Bitte hänge nicht mehrere Beiträge direkt aneinander. Ergänzungen lassen sich per "Bearbeiten" hinzufügen (ehe die Mod's motzen ;-))
 
Zuletzt bearbeitet:
Hallo MaxMuster,

Bei Internet über LAN nicht "mitbenutzen", sondern "selbst aufbauen" wählen. Dann bekommen die WLAN-Clients alles von der 7170 (auch der DHCP mit einem eigenen Netz ist dann dort) und auch das Routing läuft darüber...

Das klingt nach einem guten Plan, leider habe ich es nicht geschafft, es so einzurichten, aber zumindest habe ich einen Workaround gefunden, der für's erste halbwegs funktioniert.

Der Reihe nach:

Was ich versucht habe, ist: Unter Internet -> Zugangsdaten -> Anschluss -> Internetzugang über LAN 1 habe ich gewählt "Internetverbindung selbst aufbauen (NAT-Router mit PPPoE oder IP)" und dann habe ich beide Möglichkeiten erfolglos ausprobiert, also

a) Zugangsdaten werden benötigt (PPPoE) und
b) Zugangsdaten werden nicht benötigt (IP) mit "IP-Adresse automatisch über DHCP beziehen" oder "IP-Adresse manuell festlegen".

Es funktionierte nie: Weder die Verbindung ins Netz der 7390 noch ins Internet klappte. Das wunderte mich sehr, aber auch mehrere Reboots beider Fritz!Boxen halfen nicht weiter. Vielleicht habe ich beim Freetzen der 7170er irgendwas rausgepatcht, um Platz zu sparen? (Die 7390 ist übrigens nicht gefreezt.) Mein Plan war, jeder Fritzbox ein eigenes Subnetz zu geben und zwischen den beiden Subnetzen zu routen.

Mein Workaround:

Ich habe auf der 7170 ein neues Freetz-Image aufgespielt, in das ich dnsmasq aufgenommen habe. Wenn ich dann temporär den DHCP-Server der 7390 ausschalte und den DHCP-Server von dnsmasq anschalte, kann ich den (WLAN-)-Clients hinter der 7170 ein manuell gesetztes Gateway aufzwingen.

Was ich noch nicht gemacht habe: Ich kann dnsmasq dann auch noch eine Liste aller MAC-Adressen mitteilen, für die es sich nicht zuständig fühlen soll. Denn streng genommen geht es mir momentan nur um ein Gerät, welches nur WLAN hat, aber keine Ethernet-Buchse (und man kann seine Netzwerk-Settings nicht konfigurieren, braucht also DHPC). Dieses eine Gerät soll über das VPN geroutet werden. Trotzdem bleibt das Problem, dass dann für dieses eine Gerät zwei DHCP-Server antworten würden.

Gruß
signaltonoise
 
Zuletzt bearbeitet:
a) Zugangsdaten werden benötigt (PPPoE) und
b) Zugangsdaten werden nicht benötigt (IP) mit "IP-Adresse automatisch über DHCP beziehen" oder "IP-Adresse manuell festlegen".
PPPoE kann nicht funktionieren, Du brauchst Variante b.
Wichtig dabei ist, dass die zweite Box einen anderen Adress-Bereich hat. Wenn die 7170 die Adresse 192.168.31.29/24 hat, wird sie sich selbst für 192.168.31.1 zuständig halten und das nicht an die andere Box weiterleiten. Ein Reboot der 7390 ist dabei nie notwendig, ebenso wenig eine Änderung der Einstellungen. Ob Du lieber DHCP oder eine feste Adresse verwendest, bleibt Dir überlassen, DHCP ist aber einfacher.
 
Danke an Ralf und Max für die Tipps,

ich bin inzwischen wieder weiter gekommen: Beim Erstellen des Freetz-Images für die 7170 habe ich Platzprobleme gehabt (weil ich zwischenzeitlich iptables mit aufnehmen wollte). Da zu dem Zeitpunkt die 7170 als IP-Client lief, habe ich in der Freetz-menuconfig einiges weg-gepatcht inklusive dsld (multid?). Das war der Grund, warum dann meine 7170 bei "Internetverbindung selbst aufbauen" nicht zum Erfolg kam. Ein neues Freetz-Image mit dsld hat das Problem behoben.

Nun habe ich also zwei getrennte Subnetze, einmal für die 7170 und einmal für die 7390. Ich kann auch von dem Netz der 7170 auf die Rechner des lokalen Netzes der 7390 zugreifen (umgekehrt nicht, dass wird wohl die AVM-Firewall der 7170 vereiteln). Seit der Umstellung funktioniert nun aber meine bisherige OpenVPN-Konfiguration für's Routing nicht mehr... An der Stelle hänge ich jetzt momentan fest.

Ein Login bei meinem externen OpenVPN-Server klappt wie immer von der 7170 aus, aber mehr auch nicht. Vorher wurden, wenn ich per telnet auf der 7170er war, schon die Internetzugriffe an den OpenVPN-Server geroutet, das passiert jetzt nicht mehr.

Vorher gab es nur das Device lan und tun0, nun gibt es die Devices dsl, lan und tun0. Darauf muss ich beim Routing irgendwie reagieren. Wenn ich mein Problem genauer formulieren kann, werde ich diesen Beitrag editieren.

Viele Grüße
signaltonoise

P.S.: Mein für den Workaround genutztes dnsmasq ist übrigens komplett deaktiviert momentan.
 
Zuletzt bearbeitet:
Wenn du dich zum VPN-Server verbinden kannst, sollte bei ansonsten unveränderter Konfig "alles gleich bleiben", du also auch weiter durch das VPN ins Internet kommen. Wie sieht denn jetzt die Routingtabelle aus?
Hinweis: Das Netz der 7170 im (W)LAN muss aber jetzt ein anderes sein, als das der 7390, sonst sind am "dsl", dem externen Interface, und im LAN ("lan") die gleichen Adressen. Dieses "neue" Netz muss vom Server dann zu diesem Client geroutet werden...
 
Die Route auf der 7170 nach frischem Reboot:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.180.1 * 255.255.255.255 UH 2 0 0 dsl
192.168.31.201 * 255.255.255.255 UH 2 0 0 dsl
169.254.180.2 * 255.255.255.255 UH 2 0 0 dsl
192.168.32.0 * 255.255.255.0 U 0 0 0 lan
192.168.31.0 * 255.255.255.0 U 2 0 0 dsl
169.254.0.0 * 255.255.0.0 U 0 0 0 lan
default * 0.0.0.0 U 2 0 0 dsl

Mein Problem ist beim Aufbauen des VPN-Tunnels die Fehlermeldung:

freetz NOTE: unable to redirect default gateway -- Cannot read current default gateway from system

Abhilfe schafft ein manuelles Nachtragen dieser Routen:

route add [staticserverip] dev dsl
route add -net 0.0.0.0/1 dev tun0
route add -net 128.0.0.0/1 dev tun0

Mit Hilfe dieser Routen bekomme ich auf allen Geräten hinter der Fritz!Box und auf der Fritz!Box selbst zum Ziel, also kompletter Traffic via VPN.

Es ist wohl das alte Problem, das schon in vielen Threads diskutiert wurde.

Gruß
 
Das sollte mit neuerem OpenVPN (2.3.x) behoben sein. Mit einer "trunk"-Version oder dem stable-2.0 bekommst du schon eine solche OpenVPN-Version.
 
Hallo MaxMuster,

ich wollte gerade meinen openvpn-client auf meiner 7390 aktualisieren.
Dazu habe ich dein Binary auf die Box kopiert.
Wenn ich nun aber das binary "openvpn" aufrufe bekomme ich diese Meldung:
Code:
openvpn: line 1: syntax error: unexpected "("

hast du eine Idee woran das liegen kann?
Auf der 7390 ist die 5.52 Firmware installiert.

Vielen Dank.

Gruß

Tobias
 
In der Regel kommt diese Fehlermeldung, wenn das Kopieren nicht "binär" erfolgt ist, dann geht die Box davon aus, dass das ein "Skript" und kein Programm ist...
 
hmm.

Ich habe die Datei auf meinem Win7 entpackt und auf einen USB-Stick kopiert.
Diesen habe ich dann an die FB angeschlossen und mittels cp die Datei in den Ordner kopiert.

Trotzdem bekomme ich die oben genannte Meldung.

Mache ich da was falsch?

Danke

Tobias
 
Ich habe jetzt auch mal mir die gz selber auf die FB kopiert und mit gunzip entpackt.
Leider habe ich weiterhin das selbe Problem.


In einem Anderen Thread habe ich gelesen, das der Fehler auch dann auftritt wenn man ein falsches Binary hat.
Es existieren wohl unterschiede für die 7270 und 7390. Aber ich hatte ja mir das "openvpn_2.3.2-mipsel-openssl-static" heruntergeladen.

Gruß

Tobias
 
Zuletzt bearbeitet:
Wo hast du denn die mipsel Version (für eine 7270) heruntergeladen? Dann kann ich da nochmal schauen. Die 7390 braucht die oben angehängten mips-Versionen
 
Danke für den Hinweis, nun bin ich auf trunk (10947) und das Starten des VPN-Tunnels klappt super, bin begeistert. Beim Beenden des VPN-Tunnels wird jedoch die Standard-Route nicht wieder hergestellt, wenn ich über die Freetz-Oberfläche dsld neu starte, wird das aber repariert. Das ist nur ein Mausklick mehr.

Anfang des Monats habe ich das erste Mal freetz selbst genutzt, obwohl ich schon seit Jahren davon weiß. Und spätestens heute Abend bin ich schwer begeistert davon! Hut ab für die Leute, die freetz ins Leben gerufen haben. Ein großes Dankeschön!

Gruß
signaltonoise
 
Wie schickst du denn die Default-Route? Mit "redirect-gateway def1"? Wie sieht denn nach dem Abbau der Verbindung die Routingtabelle aus?
 
Also, ich kann es mir wirklich nur mit "falschem" Übertragen vorstellen (wenn es denn die mips-Version von oben ist und nicht wie von dier geschrieben eine mipsel-Version).
Ich habe die nochmal selbst herunter geladen (habe es allerdings mit einer 05.55-er Firmware getestet):
Auf dem PC:

Code:
joerg@joerg-desktop:/tmp$ scp openvpn_2.3.2-mips-openssl-static.gz [email protected]:/tmp
[email protected]'s password: 
openvpn_2.3.2-mips-openssl-static.gz                                         100%  569KB 568.6KB/s   00:01    
joerg@joerg-desktop:/tmp$

Auf der Box:

Code:
root@fritz:/var/tmp# gzip -d openvpn_2.3.2-mips-openssl-static.gz 
root@fritz:/var/tmp# chmod +x openvpn_2.3.2-mips-openssl-static 
root@fritz:/var/tmp# ./openvpn_2.3.2-mips-openssl-static --version
OpenVPN 2.3.2 mips-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [IPv6] built on Jul 13 2013
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <[email protected]>
root@fritz:/var/tmp# ./openvpn_2.3.2-mips-openssl-static --show-ciphers
DES-CBC 64 bit default key (fixed)
DES-EDE-CBC 128 bit default key (fixed)
DES-EDE3-CBC 192 bit default key (fixed)
DESX-CBC 192 bit default key (fixed)
BF-CBC 128 bit default key (variable)
CAST5-CBC 128 bit default key (variable)
AES-128-CBC 128 bit default key (fixed)
AES-192-CBC 192 bit default key (fixed)
AES-256-CBC 256 bit default key (fixed)

root@fritz:/var/tmp# 
root@fritz:/var/tmp# cat /var/config.def | grep FirmwareVersion
<? setvariable var:FirmwareVersion '05.55-25934' ?>
root@fritz:/var/tmp#

Nochmal auf dem PC:

Code:
joerg@joerg-desktop:/tmp$ gzip -d openvpn_2.3.2-mips-openssl-static.gz 
joerg@joerg-desktop:/tmp$ chmod +x openvpn_2.3.2-mips-openssl-static 
joerg@joerg-desktop:/tmp$ qemu-mips openvpn_2.3.2-mips-openssl-static --version
OpenVPN 2.3.2 mips-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [IPv6] built on Jul 13 2013
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <[email protected]>
joerg@joerg-desktop:/tmp$
 
"redirect-gateway def1"?
Genau an dieser Zeile lag es, die hatte ich aus Versehen auskommentiert bzw. aus Versehen nicht ein-kommentiert. Nun läuft alles schon seit Tagen sehr schön. Danke nochmal für alle Tipps!

Was mir nun noch unklar ist, betrifft eigentlich gar nicht mehr das Thema OpenVPN, sondern eher das Leben mit zwei Subnetzen, wenn die VPN-Verbindung inaktiv ist. In meinem einen Subnetz kann ich per WOL Geräte aufwecken (von der Smartphone-App via WLAN über die FritzBox zum Gerät), vom neuen Subnetz scheinen die Magic Packets aber nicht durchzugehen ins alte Subnetz. (Vielleicht muss ich mich mal in "Subnet directed broadcasts" einlesen: http://en.wikipedia.org/wiki/Wake_on_lan#Subnet_directed_broadcasts)

Außerdem überlege ich, die avm-Firewall auf der 7170 abzuschalten, damit ich vom alten Subnetz auf die Rechner im neuen Subnetz zugreifen kann (und ich bin nicht sicher, ob das überhaupt möglich ist).

Falls Ihr hier noch Ideen habt, würde ich mich freuen, ansonsten muss ich bei nächster Gelegenheit diese Themen mal recherchieren.

Viele Grüße
signaltonoise
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,004
Beiträge
2,244,320
Mitglieder
373,392
Neuestes Mitglied
lukaskr07
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.