Port Forwarding

smurf

Neuer User
Mitglied seit
26 Mrz 2005
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Hallo Zusammen,

ich hätte eine Frage bezüglich des Einsatzes mehrerer VoIP Clients innerhalb eines Netzwerkes. Nahezu jeder SIP Provider beschreibt als Lösung das Port Forwarding. Mir ist dieses Prinzip nicht 100%ig klar.

Wenn ich beispielsweise 3 VoIP Clients im Netzwerk habe sind alle SIP Ports standardmäßig auf 5060 eingestellt. Hier scheint es zu Problemen zu kommen. Dabei ist mir nicht wirklich klar warum.

Ich meine alle Daten gehen beim Router auf Port 5060 ein und werden dann anhand der IP-Adresse an das jeweilige Gerät geleitet. Die Unterscheidung der Daten findet durch die IP Adresse statt. Warum kommt es hierbei wenn alle Geräte auf Port 5060 eingestellt sind zu Problemen ???

Wenn ich ein Port Forwarding mache und bei den Geräten den SIP Port umstelle ( beispielsweise 5061, 5061 und 5063 ) warum soll das dann hier funktionieren ??

Alle Daten gehen wieder auf dem Port 5060 beim Router ein und werden dann per Forwarding an den jeweiligen Port des Clients, welcher an die IP Adresse verknüpft wurde, weitergeleitet. Hier findet ja dann auch eine Unterscheidung durch die IP Adressen statt. Wofür benötige ich dann das Port Forwarding überhaupt ??

Kurz gesagt: Ich kapiere nicht ganz wodurch das Problem bei gleichen Port Einstellungen der Clients innerhalb eines Netzwerkes verursacht wird.

Ich hoffe jemand kann mir ein wenig helfen die Materie zu verstehen.

Im Vorraus schon mal vielen Dank
 
es geht nicht "automatisch" weil im Falle eines Anrufes der Anruf von deinem VoIP-Provider an deinen Router geschickt wird, sprich die Verbindung wird nicht von dir nach draussen und zurueck aufgebaut, sondern kommt von aussen "ungefragt" bei dir an, so wie jeder Hackerangriff auch und darum blockt eine Firewall den Anruf erstmal :)
Probleme macht das nicht, lediglich, wenn du direkt die Endgeraete anrufen willst, also ueber die IP oder den DynDNS-Namen musst du zum Erreichen der Gerate welche nicht den Standartport 5060 nehmen hinter die SIP-URI noch :portnummer angeben, also z.B. user@deine-ip/dyn-dns:5061
Wenn das ganze ueber einen VoIP-Provider laeuft auch kein Problem: in dem Fall ruft der Anrufer ja den VoIP Provider an, welcher selber auf Port 5060 reagiert und da dein VoIP-Provider durch deine Anmeldung am Server weiss, welchen Ports du verwendest, sorgt er auch dafuer, dass Anrufe auf eben der richtigen Portnummer bei dir am Router ankommen und von diesem dann an die richtige Endstelle weitergeleitet werden, je nachdem, was du an NAT konfiguriert hast.
Einige Provider lassen nur eine Anmeldung zu, wobei es aber generell nicht zwingend noetig sein sollte den Port 5060 zu nehmen. Andere wie auch GMX lassen eine Mehrfachanmeldung zu. Ruft dann einer bei GMX an wird vom GMX Server das Gespraech sogesehen 2-3mal zu deinem Router geschickt und zwar ueber all die Ports mit welchen du ueber die verschiedenen Geraete bei GMX angemeldet bist, so klingeln dann alle Gerate gleichzeitig. Wenn der Provider diese Mehrfachanmeldung nicht zulaesst, klingelt in der Regel nur das Phone, welches sich zuletzt bei dem VoIP-Provider angemeldet hat. Rufst du deine IP oder DynDNS Namen SIP-URI-maessig selber an, klingelt nur das Phone welches auf 5060 steht, oder das Phone, welches die Portnummer nutzt, die du bei der SIP-URI mit angibst (User@ip:port)
 
Danke für die schnelle Antwort

Ich glaube ich habs jetzt kappiert:

Beispielsweise läuft ein Client auf SIP Port 5061. Das wird dem Proxy bzw. Registrar Server des Porviders mitgeteilt. Dadurch kommen nun auch die vom Porxy gesendeten Daten auf Port 5061 bei meinem Router an. Diese werden dann an das Gerät mit der entprechenden IP weitergeleitet. Deshalb ist es notwendig, dass nicht alle Clients auf Port 5060 laufen, da es sonst zu Verwechslungen durch den Proxy kommen kann.

War das in etwa korrekt ?
 
So ganz klar ist es mir doch noch nicht :-(

Ich hab mir das folgende Szenario überlegt:

3 Clients alle bei GMX und Port 5060

Proxy-Server GMX (5060) ---------> Router (5060) -------> Client 1(5060)
-------> Client 2(5060)
-------> Client 3(5060)

Normalerweise Unterscheidung nach IP-Adresse Client1 192.168.1.2
Client2 192.168.1.3 etc..
Warum gibt es hier ein Problem ???


Port Forwarding

Proxy Server(5060) ----------> Router(5060) ------------>Client 1(5060)
----------> Router(5061) ------------>Client 2 (5061)
----------> Router(5062) -----------> Client 3 (5062)

Wiederum Unterscheidung nach IP Adressen ( Ports sind an IP Adressen gebunden )

Kann der Proxy-Server nur nach Ports unterscheiden ?
 
Nach draussen gibt es nur eine IP-Adresse, d.h. der Router wüsste bei eingehenden Rufen nicht, wohin er die Pakete schicken soll.

Es gibt Router, die das von selbst regeln, die gängigen SoHo Router benötigen aber ein Portforwarding.

Neben dem SIP Listen Port sollten dann noch die RTP Ports ins Forwarding eingertragen werden, die sollten natürlich auch unterschiedlich sein.

jo
 
das Problem ist, daß die 192.168.xxx.xxx nur innerhalb Deines Netzwerkes "zu sehen" sind, nach außen aber nicht. GMX gibt Dir eine (1) IP-Adresse, und Dein Router muß das nun irgendwie zurechtfummeln. Das siehst Du, wenn Du in Deiner Skizze mal die IP's dazuschreibst:

GMX 123.456.789.012:5060 -> Router -> 192.168.1.1:5060
GMX 123.456.789.012:5061 -> Router -> 192.168.1.2:5061
etc

Du siehst, bei GMX hast Du eben nur EINE Adresse, nämlich die vom Router. Also muß als Hilfsmittel ein anderer Port herhalten, damit der Router unterscheiden kann, wer gemeint ist.

Bei den meisten (?) Routern kann man auch Umleitungen definieren, bei denen die Portnummern nicht identisch sind, dann muß man an der Software nicht so viel fummeln. In diesem Fall sähe die zweite Zeile da oben so aus:

GMX 123.456.789.012:5061 -> Router -> 192.168.1.2:5060

Das macht aber nicht unbedingt alles leichter. ;)
 
Okay danke. Jetzt hab ich es (fast) verstanden.
Hab mir das Ganze mal mit Ethereal angeschaut.
Die Clients erhalten tatsächlich immer die gleiche IP Adresse.
sip.Contact = Contact: "XXX" <sip:[email protected]:5060>
sip.Contact = Contact: "YYY" <sip:[email protected]:5060>

Trotzdem hätte ich noch eine Frage: Warum kann keine Unterscheidung durch die SIP-ID erfolgen ???

Ich weiß ich bin nervig :) Muss das Ganze aber in ner Diplomarbeit richtig rüberbringen
 
Das ist jetzt aber ganz einfach: Weil der Router nicht "weiß", welche SIP-ID an welchem Rechner sitzt!

Außerdem dürfte das Analysieren der ganzen Pakete und nicht nur der Header dem Router ein "bisschen" mehr Rechenleistung abverlangen.
 
Jetzt verteh ich das Problem.

Ein rießiges Dankeschön an Euch Allen für die Hilfe. :)
 
Hab mir mal die Geschichte des NAT angeschaut.
http://de.wikipedia.org/wiki/Network_Address_Translation
N
ormalerweise müsste doch jede interne IP in eine eigene öffentliche IP übersetzt werden. Und der Router für die "Rückübersetzung" dies in der Routi Tabelle speichern

Sprich 192.168.1.2 -> 123.456.789.012
192.168.1.3 -> 144.492.600.010
Router merkt sich was wie übersetzt wurde, und kann so die jeweilige private IP erreichen
Warum erhalten die privaten IP-Adressen der VoIP Clients denn immer die gleiche öffentliche IP-Adresse wenn sie bei dem gleiche VoIP-Provider registriert sind ???
 
nein, "oeffentlich", also von deinem Provider hast du nur eine IP, waehlst dich ja nur einmal ein.
Den Datenpacketen, die du raussendest, packt der Router einfach eine Info bei, wo sie herkommen. Wird dann eine Antwort geschickt, ist diese Info in dem zurueckgeschickten Header auch drin, ist so TCP/IPmaessiger Standard. Und daher weiss der Router wohin mit den Daten, auch wenn du auf 5 lokalen Rechnern die gleiche Seite oeffnest
 
Dann stimmt das was auf Wikipedia steht nicht. Die schreiben, dass eine interne IP in eine jeweils freie öffentliche verfügbare IP übersetzt wird. Dabei wird in der Routingtabelle ein Eintrag gemacht. Damit die Daten die interne Adresse auch wieder erreichen können.
 
wikipedia schrieb:
Bei Hiding NAT (eigentlich PAT oder auch NAPT (Network Address Port Translation)) werden mehrere Quell-IP-Adressen in die gleiche externe Quell-IP-Adresse übersetzt.
Dies ist der Part, der hier interessant ist, da Dir nur eine öffentliche IP zur Verfügung steht.

Du kannst ja mal versuchen, mich auf meiner IP zu erreichen: 10.0.0.20 oder auch auf der 192.168.2.2. ;) Generell werden IPs aus dem sogenannten "privaten Bereich" wie 10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255, 192.168.0.0 - 192.168.255.255 und 169.254.0.0 - 169.254.255.255 von Routern NICHT ins Internet geschickt und eben nicht geroutet. Daher ist die "Übersetzung" nötig.

Meine öffentliche IP verrate ich aber nicht, denn die ist statisch...
 
Bei Hiding NAT (eigentlich PAT oder auch NAPT (Network Address Port Translation)) werden mehrere Quell-IP-Adressen in die gleiche externe Quell-IP-Adresse übersetzt.

Darin liegt dann aber der Hund begraben. Bei Pat wird der Port gewändert (automatisch ). Dadurch kommt es zu keinen Verwechslungen steht zumindest hier http://www.bintec-support.de/nat/nat-descr.htm

Warum dann die Portnummern von Listening SIP Port und RTP Port bei den VoIP-Clients ändern, wenn eine Änderung der Ports automatisch erfolgt ????

Ich glaube ich bekomm das gar nicht mehr auf die Reihe :-(
 
so ganz weiss ich nicht was du willst.
also fuers Raustelefonieren brauchst du auch kein Portforwarding konfigurieren, aber fuer die ankommden Gespraeche ist NAT-Konfig halt wichtig. Bzw fuers Rauswaehlen als solches geht es auf jedenfall ohne NAT, aber ich bin mir da noch nicht mal sicher, dass NAT auf jedenfall konfiguriert werden muss, damit du ueberhaupt was empfaengst/hoerst. Muesste man sich etwas mehr mit befassen, aber es koennte auch gut sein, dass die Daten die von der Gegenstelle an dich geschickt werden, diese speziellen Router-Headerinfos generell nicht hat und dann geht es halt nicht "automatisch" mit der Weiterleitung vom Router, dann ist es ja genauso, wie wenn dich einer anruft.
Die Weiterleitung duer den Listening Port ist ja auf jedenfall fuer einkommende Anrufe, das hatten wir doch schon ?! wenn ein Anruf/Datenpackt(e) einfach so ankommen, ohne diese zusaetzlichen Router-Infos im Header weiss der Router schon mal garnicht, wohin damit. Da es fuer den Router ja eh nur Datenpackete sind, ist die default Einstellung eines Routers erstmal so, dass ungefragt eingehende Daten geblockt werden. Im allgemeinen ja auch OK, in der Regel kommen Daten nur zu deinem Router, weil ich sie anfordere, durchs Aufrufen einer Webseite, Abrufen von Emails, etc, ganz egal.
 
Im Grunde können im lokalen Netz alle Clients auf den Port 5060 lauschen. Dann mußt Du allerdings beim Portforwarding im Router einschalten, daß Port 5060 (von Extern für Client 1) auf intern 5060 an IP Rechner 1 umgeleitet wird, Port 5061 (von Extern für Client 2) auf intern 5060 an IP Rechner 2 umgeleitet wird, Port 5062 (von Extern für Client 3) auf intern 5060 an IP Rechner 3 umgeleitet wird usw.

Ich versuche mal, eine Analogie zum NAT finden:
Firma xy mit 100 Mitarbeitern hat eine Telefonanlage. Nach außen wird die Telefonnummer 0123/456-0 übertragen. Ein Anruf (Datenpaket) auf die 456-0 (externe IP) wird aber nun (hoffentlich...) nicht bei allen Mitarbeitern signalisiert, sondern in der Zentrale, die anhand der Kundennummer (Port des eingehenden Datenverkehrs) entscheiden kann, auf welchen Apparat sie weiterleitet (Nebenstellennummer = interne IP).
Würde der Anruf bei allen signalisiert, bräche das absolute Chaos aus: Bis der Anrufer (Datenpaket) bei dem Mitarbeiter (Programm) landet, wo er hinwill, muß im worst case jeder der 100 Mitarbeiter das Gespräch annehmen - suchen, ob der Vorgang zu ihm gehört - zum nächsten weiterverbinden. (Wenn das bei der IP-Telefonie passieren würde, hättest Du Verzögerungen von xxx Sekunden bei der Sprachübermittlung.)

Jetzt könnte man natürlich fragen: Warum wird nicht die Durchwahl übertragen? Nun, das ist noch so ein Anschluß, wo man nicht direkt durchwählen kann, sondern nur über die Zentrale vermittelt werden kann...

Etwas klarer?

Edit: Was genau ist eigentlich das Thema Deiner Diplomarbeit? Wenn Du noch ein bisschen mehr Netzwek-Basics brauchst (wozu NAT auf jeden Fall gehört, das hat mit SIP noch nichts zu tun), könnte das c't-special Netzwerke für Dich ganz interessant sein.
 
@ wichard

Ja, jetzt ist das Ganze schon etwas klar geworden. Wenn man das Prinzip einmal verstanden hat ist es gar nicht mehr so kompliziert.

Ich muss als Thema "Analyse und Implementierung von VoIP über WLAN" für meine Diplomarbeit schreiben. Da komme ich natülich um die Port / NAT Problematik nicht herum :cry:

Danke für den Tip mit dem c't Special. Werde ich mir wahrscheinlich bestellen.
 
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.