[Problem] FB hinter CG-NAT mit privater IP - VPN FB-FB

tplus

Neuer User
Mitglied seit
20 Mrz 2007
Beiträge
115
Punkte für Reaktionen
2
Punkte
18
Hallo,

ich möchte an meinem Zweitwohnsitz in Frankreich die instabile ADSL-Verbindung durch LTE (20 Euro/120 GB) ersetzen. Zur Zeit teste ich eine SIM in einem Netgear LB2120 Modem. Das Heimnetz dort ist über VPN mit dem Heimnetz Deutschland verbunden. Die Konfiguration:

Frankreich
FB 7390 hinter Netgear LB2120 im Bridge Mode (VPN-passthrough), LTE ca. 60/20 Mbit, private IP (CG-NAT, 10.x.x.x) nicht pingbar

Deutschland
FB 7490, DSL Telekom 100/40 Mbit (gemessen 95/32), öffentliche IP erreichbar, DDNS

An beiden Orten werkeln Raspis u. a. als Server für die Heimautomatisation (FHEM).

In Frankreich funktioniert auch per LTE fast alles: VPN, VOIP, RDP, IP-Kamera... Ich möchte natürlich von Deutschland auf den Raspi in Frankreich zugreifen können. Da dort DDNS nicht mehr möglich ist, müsste die VPN Verbindung von Frankreich aus angestoßen werden und dauerhaft bestehen bleiben, sehe ich das richtig?

Reicht es dafür aus, in der config den Wert "always_renew = yes;" zu setzen? Oder sollte der Raspi(F) regelmässig die FB in Deutschland anpingen?

Den "Poolpumpe in Spanien"-Thread kenne ich, ich glaube aber nicht, dass es erforderlich ist, dass der ganze Netzwerkverkehr über Deutschland geleitet wird.

Zwei Anwendungen funktionieren allerdings nicht:

FTP mit TLS/SSL (Filezilla)
IFTTT Zugriff auf FHEM in Frankreich

Für FTP gibt es den einfachen Workaround, dass ich VPN (VPN Unlimited/Keep Solid) auf dem Win7 PC starte (VPN mit Paris), dann läuft's auch mit Filezilla.

IFTTT will zugreifen auf FRANCE.DDNS:8088/webhook (GET). Da ist natürlich nichts mehr erreichbar.
Gäbe es eine Möglichkeit bei einer bestehenden VPN Verbindung IFTTT über die FB in Deutschland routen zu lassen (Tunnel zum Raspi in Frankreich)?

Als Alternative fällt mir nur ein 2. OpenWRT/Asus-Router ein, der über OpenVPN permanent mit dem "VPN Unlimited" Server verbindet. Die Methode "IPv6 Tunnel über Tunnelbroker" funktioniert wohl nicht. Könnten die Raspis behilflich sein?

Besten Dank für ein paar Tips und sorry für die langatmige Ausführung...
 
Den "Poolpumpe in Spanien"-Thread kenne ich, ich glaube aber nicht, dass es erforderlich ist, dass der ganze Netzwerkverkehr über Deutschland geleitet wird.

Dies ist sicherlich nicht notwendig, nur musst Du den Tunnel von der LTE-Seite aus "ständig am Leben erhalten". Die für mich optimale Lösung besteht in der Registrierung eines SIP-Accounts/IP-Phone mit der FB als SIP-Server. Falls nachgelagerte Raspies/Protokolle nicht funktionieren, ist die wohl eher über die accesslist der FB7390 zu regeln, wobei ich mir nicht ganz sicher bin, ob die FB7390 mit dem vorgeschalteten Netgear eine LAN2LAN-VPN aufbaut.
LG
 
Es sind mehrere SIP-Accounts aktiv, nur die verbinden halt regelmässig mit dem SIP-Server, nicht mit meiner FB in Deutschland. LAN2LAN mit Netgear funktioniert problemlos.
 
Die SIP-Accounts registrieren sich aber über das französische Mobilfunknetz und nicht über die VPN (LAN2LAN) zur deutschen FB. Genau dies ist in meinem Fall zielführend, da dies die Mobilfunkverbindung + VPN als Initiator am Leben hält, auch wenn mein Mobilfunkanbieter die Verbindung gelegentlich mal stresst durch "Unterbrechungen/Neuconnects" z.T. im 15 Minutentakt über Stunden/halbeTage.
Ich habe niemanden (genauer ich möchte vorort niemanden bemühen auf Zuruf) zum Restarten der Fritz!Box.
Wenn Du eh schon auf Stabilität aus bist (instabiles ADSL ;) ) gehe ich davon aus, dass Du Dir via Mobilfunk (LTE) Besserung erhoffst.

Die bisherigen Andeutungen, was und welche Clients (wie?) Du im Netzwerkkonglomerat in FR betreibst, könnte eine anonymisierte VPN-Config mit der Accesslist auf beiden VPN-Boxen erkennen lassen, mit einem kurzen Abriss, welcher Raspi wo dranhängt und welche Services damit zu bewältigen sind.
LG
 
Das ist richtig, wobei der LB2120 die Verbindung immer hält und auch automatisch wiederherstellt. Zur Sicherheit habe ich die FB immer über einen Timer um 4:00 für 5 min. vom Strom getrennt.

Die Einstellung "always_renew = yes;" habe ich gerade getestet und die FB(F) baut nach einem Neustart automatisch das VPN zur FB(D) auf. Wenn FB(D) allerdings neu startet verbindet FB(F) nicht neu. Hier wird Smokeping auf dem Raspi einfach alle paar Minuten einen Ping zur FB(D) schicken (1. Zeitüberschreibung, dann Verbindung). Oder eben alles (auch das Modem) ein Mal nächtlich trennen.

Auf dem Raspi in F läuft FHEM zur Steuerung von Gartenbewässerung und Lüftung (geflashte Sonoffs im WLAN). Über Google Home und IFTTT steuere ich auf Zuruf die Lüftung, dafür muss der Raspi von außen erreichbar sein. Daneben gibt es noch eine Netatmo Wetterstation und demnächst eine neue Klimaanlagensteuerung (ersetzt Tado, muss ich noch prüfen, ob die von außen erreichbar sein muss).

VPN Konfiguration FB Deutschland:

Code:
**** CFGFILE:vpn.cfg
/*
 * /var/tmp.cfg
 * Mon Apr 30 21:35:22 2018
 */

meta { encoding = "utf-8"; }

vpncfg {
        vpncfg_version = 1;
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_user;
                name = "xxxx";
                boxuser_id = 10;
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 130.180.xx.xxx;
                keepalive_ip = 0.0.0.0;
                remoteid {
                        key_id = "$$$$xxxxxx";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "LT8h/all/all/all";
                keytype = connkeytype_pre_shared;
                key = "$$$$xxxx";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = yes;
                xauth {
                        valid = yes;
                        username = "$$$$xxx";
                        passwd = "$$$$xxx";
                }
                use_cfgmode = yes;
                phase2localid {
                        ipnet {
                                ipaddr = 0.0.0.0;
                                mask = 0.0.0.0;
                        }
                }
                phase2remoteid {
                        ipaddr = 130.180.55.xxx;
                }
                phase2ss = "LT8h/esp-all-all/ah-none/comp-all/no-pfs";
                accesslist =
                             "permit ip 0.0.0.0 0.0.0.0 130.180.55.xxx 255.255.255.255";
                app_id = 0;
        } {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "france.selfhost.bz";
                boxuser_id = 0;
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 0.0.0.0;
                remotehostname = "france.selfhost.bz";
                keepalive_ip = 0.0.0.0;
                localid {
                        fqdn = "$$$$xxx";
                }
                remoteid {
                        fqdn = "$$$$xxx";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "$$$$xxx";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.1.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.10.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any 192.168.10.0 255.255.255.0";
                app_id = 0;
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}


// EOF

**** END OF FILE ****

VPN Konfiguration FB Frankreich:

Code:
**** CFGFILE:vpn.cfg
/*
 * /var/tmp.cfg
 * Mon Apr 30 19:20:15 2018
 */

meta { encoding = "utf-8"; }

vpncfg {
        vpncfg_version = 1;
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "deutschland.selfhost.bz";
                boxuser_id = 0;
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 0.0.0.0;
                remotehostname = "deutschland.selfhost.bz";
                keepalive_ip = 0.0.0.0;
                localid {
                        fqdn = "$$$$xxx";
                }
                remoteid {
                        fqdn = "$$$$xxx";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "$$$$xxx";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.10.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.1.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any 192.168.1.0 255.255.255.0";
                app_id = 0;
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}


// EOF

**** END OF FILE ****
 
Ich würde die 7390 in FR anders konfigurieren.
Code:
...
remotehostname = "deutschland.selfhost.bz";
keepalive_ip = 0.0.0.0;

würde ich als keepalive die Local-IP der DE-Fritte eintragen.

Die accesslist für den VPN-User auf der DE-Fritte ist mir nicht klar, da ich um die 130.180.55.xxx keine spontane Vorstellung habe, was damit bezweckt wird.
Code:
...
accesslist = "permit ip 0.0.0.0 0.0.0.0 130.180.55.xxx 255.255.255.255"; ...
LG
 
Zuletzt bearbeitet:
Der automatische Neuaufbau nach Abbruch in D scheint so zu funktionieren. Keine Ahnung, woher die Einträge in der config (D) stammen.
 
Wenn ich bei mir hier in DE mal einen Ausfall habe am VVDSL (1und1 via störanfälligem Versatel-Backbone) findet meine Kanarische FB via Mobilfunk schonauch die DE-Fritte.

-OK tagelange Ausfälle oder das Abhängen vom Strom/VVDSL über Tage habe ich noch nicht simuliert, ob die entfernte Mobilfunk-FB dies verkraftet-

Die 130.180.55.xxx gehört laut whois zu einem Unitymedia-Bereich in Dormagen sprich IPv4-Kabelanschluss? Eine saubere VPN-Config ist besser via Template/Vorlage zu erstellen, als mit den AVM-Programmen.

Die ganzen Services Deiner Raspies, wohin die sich Cloudtechnisch verbinden möchten und was Deine Hardware (Lüftung/Wetterstation ...) "nach Draussen" veranstalten kann ich nicht abschätzen ;)

Beim Grundproblem einer stabilen LAN2LAN-VPN zwischer einer FB-Fritte an einem IPv4-Anschluss und einer hinter einem CGN-Mobilfunknetz habe ich versucht zu helfen.

Wenn man sich auf einer IPv4-Anschluss-FB den Fernzugriff eingerichtet hat, kann man hinter/als physischer Client auf Mobilfunkseite experimentieren. Umgekehrt als Client auf IPv4-Seite kann es fatal sein :D (Münchhausen lässt grüssen)
LG
 
Hmm, bei Unitmedia war ich bis 2016. Die FB hing hinter einem Kabelmodem. Ich finde auch TR069 Einträge in der Config. Am besten einmal von 0 starten.

Hinsichtlich IFTTT: Könnte die Deutsche Seite den eingehenden request zum französischen Raspi routen?
 
Als erstes würde ich empfehlen, in der DE-FB einen VPN-User mit "Bordmitteln" anzulegen. Der erhält im Normalfall eine IP 192.168.1.201 sofern die FB auf 192.168.1.1 eingestellt. Die entsprechenden Rechte musst Du ihm verschaffen. Ggfs. die 2FA ausschalten. Dann kannst Du die ominöse 130.188.55.xxx gegen die 192.168.1.201 tauschen.

Im Bereich LAN2LAN der DE-FB lässt Du den Remotehost leer, da der dyndns im CGN eh nix liefert.
Code:
 Schnipsel
connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "Paris";
                boxuser_id = 0;
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 0.0.0.0;
                remotehostname = "";
                keepalive_ip = 0.0.0.0;
                localid {
                        fqdn...

Dann schaust Du mal, wie Du als Client im DE-FB-Netz Zugriff auf die Raspis in FR hast. Im next step als VPN-Client über die DE-FB auf die FR-FB. Dann kannst Du successive die accesslist erweitern via permit und deny, wenn Du Dir darüber im Klaren bist, was durch den VPN LAN2LAN-Tunnel soll, und was direkt mit IFTTT-Servern oder Google etc. kommunizieren soll über die Mobilfunkverbindung.

Was über Deinen Telekom 100/40er Anschluss sonst noch läuft ausser der VPN-Verbindung nach FR, kannst nur Du selbst einschätzen.

LG und ein wenig sich fern der Prämisse "Hauptsache es funktioniert" gen Überblick zur Sicherheit hinzubewegen, kann imho auchnicht verkehrt sein. Wie Du siehst, schleppt man ggfs. Fehler mitsich herum, da man eine VPN-Config eher selten neu konzipiert/generiert.
 
Zuletzt bearbeitet:
Besten Dank. Ich werde die FBs auf Werkseinstellungen zurücksetzen und neu aufsetzen. Für IFTTT habe ich einen Workaround gefunden: Ich lasse die Lüftung vom FHEM-Raspi in Deutschland schalten, der normal über DDNS erreichbar ist. Offenbar geht der Befehl problemlos über VPN nach Frankreich. Schon getestet.
 
Sicherlich kann ein "Neuaufsetzen" nach einem Recovery nicht schaden. Bedenke nur, dass die AVM-VPN-Tools für eine LAN2LAN-Verbindung nur dann zu 100% sinnvoll sind, wenn beide Fritz!Boxen über eine öffentliche IPv4 verfügen. Für Deine Konstellation empfiehlt sich eher eine Vorlage/Template um sich dieses "Pärchen" zu erstellen und über das GUI der FB zu importieren, gerade wenn demnächst für die FB7490 ein neues Release aufwartet, während in FR eine betagtere (EOS) FB7390 ihren Dienst verrichtet.

Zwischen den Zeilen lese ich, dass wohl auch in DE Raspies im Netzwerk der FB7490 ihren FHEM-Job o.ä. verrichten. Wenn Du VPN als notwendige "Lebensader" für zu schaltende Komponenten in FR über einen FHEM in DE wagst, solltest Du auch den worst case eines Ausfalls der VPN-Verbindung im Hinterkopf haben und Dir ein entsprechendes Scenario ausdenken.
LG + GoodLuck
P.S.: Wenn Du in ein paar Wochen zur Stabilität der VPN-Verbindung mal ein feedback gäbest, würde dies sicherlich nicht nur mein Interesse wecken. ;)
 
Ich lasse die VPN Verbindung mit Smokeping überwachen. Zwei Wochen bin ich noch in Frankreich...

Wieso nutzt die FB eigentlich den DNS Server des Providers (100.x.x.x) obwohl ich 1.1.1.1 und 8.8.8.8 eingestellt habe?
 
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.