[fli4l] Fragen zum NAT

Erwin Lottermann broeselmeier at gmx.de
Do Mai 12 11:50:47 CEST 2016


Hallo,

ich versuche mal ein paar Antworten, so weit sich die für mich aus
meinen Experimenten ergeben haben.
Bitte gern korrigieren, falls es jemand besser weiß.

Zitat: Erwin Lottermann schrieb am Di, 26 April 2016 11:46
----------------------------------------------------
> 
> bzgl. SIP habe ich einige Fragen zum NAT des fli4l.
> 
> 1. wie vergibt der fli4l die Quellports
> 
> z.B. macht ein Sip-User-Client (Sip-Telefon, Fritzbox oder
> Sip-Telefoniesoftware auf PC) im internen Nezt eine udp-Verbindung mit
> Quellport 5060 zu iptel.org mit Zielport 5060.
> Welchen Quellport gibt der fli4l der Verbindung am WAN-Interface?
> a - falls es für den Quellport des Clients im LAN noch keinen
> NAT-Eintrag gibt, wählt der fli4l den gleichen Port
> b - falls es für den Quellport des Clients im LAN schon einen
> NAT-Eintrag gibt, wählt der fli4l einen anderen Port
> 
> Oder wählt der fli4l grundsätzlich einen anderen als den Quellport
> des Clients im LAN?
> 

zu a - ja das scheint auf jeden Fall so zu sein. Macht die FB in LAN
eine UDP-SIP-Verbindung mit Quellport 5060 auf, dann geht die auch mit
Quellport 5060 von der öffentlichen IP raus.

zu b - dazu habe erst einen Fall getestet. Die FB im LAN macht alle
konfigurierten SIP-Verbindungen über Quellport 5060. Laut conntrack
gehen die auch alle mit Quellport 5060 von der öffentlichen IP ab.
Zu testen wären folgende Fälle:
* ein weiterer SIP-Client im LAN macht eine SIP-Verbindung mit Quellport
5060 auf
** die Verbindung geht zu einem anderen SIP-Proxy
** die Verbindung geht zum selben SIP-Proxy wie die des anderen
SIP-Clients (praktischer Anwendungsfall: man hat 2 SIP-Accounts
(Telfonnummern) bei der Telekom. Den ersten konfiguriert man in der FB,
den zweiten in einem SIP-Telefon z.B. Softphone auf dem Handy)


> 2. wie kann man die Quell-Ports herausfinden, die der fli4l aktuell
> vergeben hat?
> 

an der Console über das conntrack Tool

die Verbindungen werden mit 
Quell- und Ziel-IP sowie Quell- und Ziel-Port in Senderichtung und
Quell- und Ziel-IP sowie Quell- und Ziel-Port in Antwortrichtung
ausgegeben.

Ziel-IP in Antwortrichtung ist die öffentliche IP des Routers und der
Zielport in Antwortrichtung ist der NAT-Port.


> 
> 3. wie geht der fli4l mit eingehenden Paketen an einen Port um, die
> nicht von dem Empfänger laut NAT-Eintrag stammen
> 
> z.B. die Fritzbox im Lan macht die erste SIP-Verbindung mit Quell-
> und Zielport 5060 zu iptel.org und die zweite SIP-Verbindung mit
> Quell- und Zielport 5060 zur sipgate.de
> Der fli4l müsste für beide Verbindungen unterschiedliche
> Quellports in der NAT-Tabelle eintragen.
> Nehmen wir an, er hätte für die erste Verbindung zu iptel.org
> Quellport 5060 und
> für die zweite Verbindung zu sipgate.de 5061 gewählt.
> Bei einem Anruf von extern schickt sipgate.de (zweite
> SIP-Verbindung) nun seine UDP-Pakete an Port 5060 des fli4l (Port der
> ersten Sip-Verbindung).
> Verwirft der fli4l die Pakete oder stellt er sie an den internen
> Empfänger laut NAT-Eintrag zu?
----------------------------------------------------

Die angenommene Vergabe der NAT-Ports stimmt so nicht.
Für den selben NAT-Port kann es durchaus mehrere Verbindungseinträge
geben.
Bisher getestet: Die FB im LAN macht 2 SIP-Verbindungen zu verschiedenen
SIP-Proxys. Beide Verbindungen gehen von der FB von Quellport 5060 aus
und bekommen beide den NAT-Port 5060.
D.h. für den NAT-Port 5060 gibt es zwei Destination Einträge. Immer
wenn eine der beiden Destinations an den NAT-Port 5060 antwortet, werden
die Pakete an die FB Port 5060 im LAN geschickt. 




Mehr Informationen über die Mailingliste Fli4L