SIP hinter Doppel-NAT

Funfare

Cadet 1st Year
Registriert
Apr. 2023
Beiträge
8
Hallo zusammen,

ich habe eine etwas speziellere Konfiguration, bei der ich aktuell noch nicht so ganz weiterkomme.

Folgender Aufbau ist gegeben:

Fahrzeug mit Telefonanlage ansitel IPSmart 10 (basierend auf Asterisk, gebuchte Leitung ansitline FlexSIP) ---> Router TDT 3000-LW Multi-WAN(primär LTE, sekundär Satellit oder beliebiges externes Netzwerk)
Im "normalen" Betriebsmodus über LTE funktioniert die Telefonanlage problemlos, wenn ich aber einen externen Anschluss (z.B. DSL-Anschluss von unserem Standort) aktiviere, funktioniert die Anrufsignalisierung von externen Anrufen nicht mehr. Nach extern Telefonieren funktioniert problemlos, kurz nach einem Telefonat können auch externe Anrufe empfangen werden. Ich nehme an, das liegt am Doppel-NAT.
Auf dem TDT 3000-LW wird Port 5600-5601 auf die Telefonanlage weitergeleitet, bei unserem lokalen DSL-Anschluss habe ich das auch konfiguriert, es funktioniert aber auch nicht (DSL:5601-->TDT:5601->Tel-Anlage:5601). Da wir aber nicht immer ein von uns administrierbares Netz nutzen können, bräuchten wir da eine universellere Lösung.

Vorhanden ist noch ein externer VPS zu dem durchgehend eine Wireguard-VPN Verbindung aufgebaut ist.

Aktuelle Übergangslösung ist, dass der SIP-Traffic nur über LTE geroutet wird. Das funktioniert für uns in 95% der Fälle, da wir aber mit dem Fahrzeug auch in Bereichen unterwegs sind, in denen das LTE Netz überlastet ist (z.B. Festival, Großveranstaltung etc.), ist das noch keine Ideallösung. Dort sind wir auf einen externen Netzanschluss angewiesen.
Telefonanlage in der Cloud ist auch keine Option, die Telefonie muss auch ohne aktive Internetverbindung lokal funktionieren.

Folgende Lösungsmöglichkeiten schweben mir schon im Kopf rum, allerdings habe ich das noch nie so umgesetzt und wollte vorher erstmal um Rat fragen.
  • Da das Fahrzeug permanent mit dem VPS verbunden ist, könnte ich als external-ip die VPS Adresse angeben und den Traffic mittels NAT-Regel an den TDT-Router weiterleiten lassen. Das wäre auch irgendwie Doppel-NAT, aber ich hätte bei egal welchem Netz die Kontrolle über die beteiligten Geräte. Allerdings weiß ich nicht ob da noch dynamische Ports mit reinspielen und ob das dann so funktioniert.
  • STUN/TURN Server auf dem VPS einrichten. Ich habe das jetzt primär für SIP-Clients und nicht für eine Telefonanlage als Lösungsmöglichkeit gefunden. Außerdem kann ich das über das Webinterface auch nicht wirklich konfigurieren. An die Asterisk-Dateien komme ich ran und kann sie auch bearbeiten, das wäre eher weniger das Problem. Ich weiß allerdings nicht so wirklich ob Asterisk das unterstützt. Primär finde ich Lösungsmöglichkeiten über die external-ip. Diese wär ohne VPN in dem Szenario aber auch immer unterschiedlich.

Leider fällt mir keine Möglichkeit ohne den VPS Server ein, ich hätte eigentlich gerne so wenig SPOF wie möglich, wenn es aber keine Alternative gibt, würde ich das über den VPS lösen.

Bevor ich noch mehr Zeit in (erfolglose) Fehlersuche/Lösungsmöglichkeiten stecke, wollte ich hier einfach mal Nachfragen ob jemand so ein ähnliches Problem schonmal hatte oder wüsste wie man das möglichst elegant erledigen könnte.

Danke euch!

Grüße,
Funfare
 
Hallo,

Split-DNS hilft mir nicht wirklich weiter. Lokal funktioniert ja alles bzw. könnte das zwar für die externe IP über dyndns oder ähnliches helfen, aber das löst ja nicht das Problem, dass die Ports geschlossen werden nach einiger Zeit vom Router.

@riversource Ich habe noch keine Konfiguration gefunden, dass Asterisk ein keep-alive sendet. Primär habe ich dazu Einstellungen von Clients zu Asterisk gefunden aber noch nicht, dass Asterisk zum Provider ein keep-alive sendet. Wenn da jemand eine Einstellung zu kennt, wär das natürlich auch schon eine super Lösung für mich.
 
Asterisk/chan_sip kann von sich aus leider kein Keep-Alive, jedenfalls bei UDP. Aber weil der abgehende Port des Asterisk bekannt ist, kannst Du die Keep-Alive parallel senden … Nutzt Ihr stattdessen TCP (oder TLS) für die Signalisierung (SIP), kannst Du das systemweite TCP-Keep-Alive öfters senden lassen: sudo sysctl -w net.ipv4.tcp_keepalive_time=295

Asterisk/chan_pjsip funktioniert genauso, bietet aber auch noch einen eigenen Keep-Alive über SIP-OPTIONS. Dessen Intervall steuerst Du über AOR/qualify_frequency. Oder Double-CRLF über Global/keep_alive_interval.

Die obigen 295 Sekunden sind rund 5 Minuten. Bei einigen Internet-Anschlüssen wirst Du öfters machen müssen, also bis runter auf 55 bzw. 25 Sekunden.
 
Oh vielen Dank!
Verbindung ist TLS über TCP, dann hoffe ich mal, dass das funktionieren wird.
 
Zurück
Oben