Fallback mit LTE per Failover / Cloudrouter / Fritzbox / OPNSense

Hallo zusammen,

ich bin seit einiger Zeit ipv64-Kunde (Supporter) und nutze den Dienst für dyndns mit eigener Domain. Funktioniert alles wunderbar.

Ich wünsche mir zu meinem bestehenden Glasfaseranschluß ein Fallback per LTE-Verbindung, nicht aus Geschwindigkeitsgründen sondern weil ich eigene Server betreibe und diese auch per Fallback erreichbar bleiben sollen.

Hardwareseitig habe ich eine Fritzbox 7590 mit LTE-Stick, eine OPNSense und mehrere Proxmox-Server.

Jetzt habe ich folgendes versucht:

  • Cloudrouter erstellt
  • Wireguard-Verbindung zur Fritzbox eingerichtet - funktioniert
  • unter “ActionsCloudRouter” in der Routing-Tabelle das Fritzbox-Netz (192.168.178.0/24) eingetragen und auch ansonsten alles so gemacht wie im Video “Fritzbox WireGuard Site 2 Site VPN mit dem Cloud Router von IPv64.net - Anleitung / Tutorial” beschrieben
  • Darüberhinaus ein “DNS-Failover” eingerichtet. Dafür habe ich sowohl einen A- als AAAA-Eintrag im DNS angelegt (failsafe. xxxx.de) mit den Ziel-IP-Adressen des Cloudrouters. Darauf soll weitergeleitet werden wenn die Fritzbox über den Hauptanschluß offline ist.
  • Um den Cloudrouter von außen zu öffnen habe ich zudem im Portmapping testhalber einen Eintrag mit Ziel OPNSense angelegt auf Port 443 angelegt. Für mein Verständnis sollte das aber auch schon über die Einrichtung des Fritzboxes-Netzes gem. Punkt 3 funktionieren.

Wenn ich die Hauptverbindung kappe funktioniert erstmal alles so wie gewollt: Die Fritzbox erkennt den Ausfall und stellt eine Verbindung per LTE-Stick her. Der ipv64-Failsafe erkennt auch die Nichtverfügbarkeit der Fritzbox. Eine Verbindung von außen ist jedoch nicht möglich. Verbindung nach außen in’s Internet funktioniert.

Jemand eine Idee woran das liegt bzw. ob ich dabei einen Gedankenfehler habe?

Viele Grüße

Udo

Was heißt denn “Eine Verbindung von außen ist jedoch nicht möglich.”?

Gibt es eine Fehlermeldung?
Siehst du etwas in den Logs?
Was passiert, wenn du curl / traceroute / ping ausführst?


Wenn ich das richtig sehe, dann funktioniert der DNS Failover so:

  • Domain A = “Hauptdomain”
  • Domain B = “failover Domain”
  • Health Checks für Domain A

Wenn einer oder alle Health Checks anschlagen wird der Failover ausgelöst.

Wenn die Health Checks sich erholen, wird der Failover optional ein zurück gedreht.

Wobei für mich aus der Beschreibung nicht hervor geht, wie genau dieser Failover funktioniert.
Ob A zu einem CNAME für B wird oder ob Records umgeschrieben werden.

So oder so müsstest du prüfen, ob das tatsächlich passiert und ggf. muss du caching berücksichtigen.

Mir ist außerdem nicht ganz klar, wie dein Cloud Router Konstrukt funktioniert bzw. wie du glaubst, dass es funktioniert.

Wenn ich das richtig verstehe, hast du eine DynDNS Adresse, die auf den Cloud Router zeigt. Der Router macht im Prinzip D-NAT, um Anfragen über den Wireguard Tunnel in dein Netzwerk zu leiten. (Zumindest habe ich den Cloud Router so verstanden.)

Entsprechend sollte es dort keinen Failover brauchen, sondern einfach nur eine intakte Wireguard Verbindung. Die kann entweder über deinen Festnetzanschluss oder über die Mobilfunk-Strecke aufgebaut werden.

Hallo,

Verbindung von außen nicht möglich heißt das die betriebenen Server über einen externen Aufruf nicht funktionieren. Fehlermeldung gibt’s keine und in die Logs habe ich noch nicht gesehen. Curl/traceroute/ping muß ich noch versuchen.

Die Healthchecks funktionieren so wie beschrieben. Für mein eher laienhaftes Verständnis wird das Ziel auf die Failover-Adresse umgelenkt.

Der Cloudrouter soll die Verbindung entgegennehmen und über die Wireguard-Verbindung an die Fritzbox über ipv4 oder ipv6 routen. Das soll eine gängige Methode sein um das CGNAT-Problem (keine öffentliche IP oder nur ipv6) bei Einwahl per LTE zu umgehen.

Den Failover habe ich nur eingerichtet damit ipv64 die Route zum Cloudserver bekannt gemacht wird.

Danke

”funktioniert nicht” ist keine Fehlerbeschreibung.

“Der Aufruf der Domain resultiert in einem 50x” oder “Beim Verbindungsaufbau von X zu Y kommt es zu einem Timeout” sind Fehlerbeschreibungen, mit denen man arbeiten kann, aber nicht “funktionieriert nicht”.

Der Cloud Router läuft bei IPv64. IPv64 kenne “die Route” zu seinem Cloud Router.
Könntest du genauer erklären, was du meinst und wie du dir die Funktionalität vorstellst?

Verbindung von außen nicht möglich heißt das sich bspw. zu meinem Nextcloud-Server keine Verbindung herstellen läßt. Das äußert sich in einem Timeout. Ping ist auch nicht möglich.

Weil die Verbindung von außen aufgrund der Problematik ipv6 oder cgnat bei der Ausfallverbindung über LTE nicht funktioniert war die Grundidee die Folgende:

  • Der DNS-Failover stellt fest das die Fritzbox durch den Ausfall der Hauptverbindung offline ist
  • über die “Failover Destination” wird die IP umgeschrieben und auf den Cloudrouter umgeleitet. Wenn das nicht passiert wäre mir unklar woher der DNS wissen soll das er alles in den Wireguard-Tunnel zur Fritzbox leiten soll.
  • der Cloudrouter stellt über einen hergestellten Wireguard-Tunnel eine Verbindung zur Fritzbox auf und stellt damit auch die Verbindung zu internen Diensten, bspw. nextcoud sicher
  • wenn die Hauptverbindung wieder steht schaltet der DNS-Failover wieder auf die Standardadressen um

Es gibt allerdings ein paar Stolpersteine von denen ich nicht weiß wie diese lösbar sind:

  • der Cloudrouter stellt eine Adresse mit einem Port zur Verfügung. Der Port ist meiner Erkenntnis nach zwingend notwendig. Im “Failover Destination” kann man allerdings nur die IP einrichten, eine zusätzliche Portangabe ist nicht möglich
  • inwieweit ist es überhaupt möglich den Cloudrouter so einzurichten das er Verbindungen von außerhalb (öffentliches Internet), also keine eingerichteten Peers, entgegennimmt und über einen Forwarder an die Fritzbox weiterzuleiten? Idee wäre einen Forwarder von 0.0.0.0/0 oder/und ::/0 auf die Fritzbox zu erstellen. Aber grundsätzlich wäre tatsächlich die Frage zu klären ob Verbindungen von außerhalb des site2site überhaupt möglich sind.

Ggf.ist ein CDN für mich auch oder ggf. sogar die bessere Lösung. Damit habe ich mich aber noch gar nicht beschäftigt.

Viele Grüße

Vermutlich läuft die Wireguard-Verbindung nicht über den LTE-Stick. Dieser Stick ist ja nur dafür gedacht ins Internet zu kommen. Ich kenn die Fritte nicht, die wird das schlicht nicht können.

Wireguard-Verbindung zwischen Cloudrouter und Fritzbox ist eingerichtet und funktioniert. Zugriff durch einen anderen Peer des Routers zur Fritzbox funktioniert

Okay, ich verstehe das jetzt so:

  • Domain1 zeigt IP deines Festnetz-Anschlusses
  • Domain2 zeigt IP des Cloud-Routers
  • der Cloud-Router ist mit deinem Router über Mobilfunk verbunden

Wenn dein Festnetz-Anschluss down ist, soll ein Schwenk von Domain1 auf Domain2 und damit effektiv auf den Cloud-Router passieren.

So macht das Setup augenscheinlich erst mal Sinn. Das ging aus deiner bisherigen Beschreibung nicht eindeutig hervor.

Der Domain-seitige Failover passiert, sagst du. Siehst du das “nur” auf der IPv64 Seite oder kannst du verifizieren, dass die Domain1 auf tatsächlich umgeschrieben wird?

Wenn ich das richtig sehe, müsstest du, damit du eine Erreichbarkeit interner Dienste über die Wireguard Tunnel (bzw. öffentliche Welt) ermöglichen kannst Portmappings konfigurieren. Die wiederum einen zufälligen aber festen Port öffentlich schalten und auf einen fixen, von dir wählbaren internen Host/Port weiterleiten lassen.

Vereinfacht gesagt wird aus deinem `mein-service.ipv64.de:8080` u.U. `mein-service.ipv64.de:11833`.