[fli4l] NAT timeout für udp und tcp
Erwin Lottermann
broeselmeier at gmx.de
Sa Apr 16 11:14:57 CEST 2016
Am 15.04.2016 um 21:23 schrieb Matthias Taube:
> Am 14.04.2016 um 22:04 schrieb Erwin Lottermann:
>
>> in meiner Fritzbox 7170 sind 5 Minuten eingestellt, weil das der
>> Standardwert war.
>>
>> Im Webinterface vom fli4l sehe ich, dass es eine aktive UDP Verbindung
>> von der FritzBox:5060 zum externen Sipproxy:5060 gibt.
>> Habe jetzt auch mal einige Minuten lang die Ansicht regelmäßig
>> aktualisiert. Die Verbindung war die ganze Zeit da.
>
> Also bei mir (Fritz und Telekom) hat das nicht geklappt.
> Wenn von außen jemand angerufen hat, wurde die Verbindung mehr zufällig
> aufgebaut oder lief ins Leere, weil ein udp-Timeout seit dem letzten
> Ping der Fritz zugeschlagen hat.
>
> Seit der Einrichtung von Portforward und PF_PREROUTING_CT[]='tmpl:sip
> IP_NET_3 HELPER:sip' läuft alles problemlos.
>
Zur Zuverlässigkeit meiner derzeitigen Konfiguration kann ich noch
nichts sagen, da ich bisher zu wenige Tests gemacht habe.
Ich konnte einen Account anrufen, der auch per SIP erreichbar war
(Telekom SIP-Kunden sind z.B. nicht per SIP erreichbar)
und ein Telekom-SIP-Kunde, der eine Fritzbox als Router hat, konnte mich
per SIP anrufen, nachdem er meinen SIP-Account im Telefonbuch seiner
Fritzbox eingetragen hatte (mit normalen Telefonen kann man ja keine
SIP-Adresse eingeben)
Habe inzwischen einige RFCs zum Thema SIP/RTP und NAT überflogen.
Wenn ich es richtig verstanden habe, wird prinzipiell von expliziten
Routerkonfigurationen für SIP abgeraten, weil die ehe kontraproduktiv
sind. Denn:
1. Sind für SIP/RTP hinreichend Mechanismen spezifiziert, wie
SIP-User-Clients und SIP-Proxys mit NAT umzugehen haben und
2. führen spezielle SIP-Routerkonfigurationen meistens dazu, dass SIP
nur für einen Client hinter dem Router funktioniert. D.h. falls es dazu
kommt, dass Besucher in deinem Netz SIP nomadisierend benutzen wollen,
dann kann das durch die Rounterkonfiguration unmöglich sein.
Die Prinzipien helfen aber wenig, wenn man weder Einfluss auf den
SIP-Provider (z.B. weil der bisherige klassische Telefonanbieter seine
eigene Vorstellung von SIP hat) noch auf den SIP-User-Client (z.B. weil
der durch die Firmware der Fritzbox vorgegeben ist) hat.
Das Prinzip der Registrierung eines Sip-UserClients hinter einem
NAT-Router habe ich so verstanden:
Der SIP-Client muss wissen, dass er hinter einem NAT-Router sitzt und
muss folgende Dinge tun:
1. der User-Client muss per STUN die öffentliche IP-Adresse des Routers
bestimmen
2. da der User-Client keinen Einfluss auf den Quellport hat, den der
Router der Verbindung zuweist, muss er dem SIP-Registrar/Proxy bei der
Registrierung mittels 'rport'-Parameter mitteilen, dass er die
Kontaktaufnahme bei eingehenden Anrufen auf dem selben Port wünscht, den
der Router für die Verbindung vergeben hat.
3. der User-Client muss den NAT-Eintrag im Router per SIP-Ping am Leben
halten.
Wenn das so funktioniert, dann sendet der SIP-Proxy eingehende Anrufe
also gar nicht an Port 5060 des Routers und außerdem können sich aus dem
internen Netz mehrere SIP-Clients bei verschiedenen SIP-Proxies
registrieren.
Weißt du, was der conntrack helper für SIP genau macht?
Mehr Informationen über die Mailingliste Fli4L