Weiterleitung eines DSL Routers
-
Hallo,
ich möchte mal wissen, wie die Weiterleitung eines DSL Routers funktioniert. Wird das einfach weitergeleitet oder werden die HTTP Header verändert, sodass man von außen sehen kann, dass es ein Router ist und kein normaler PC?
Woran weiß der Router, wenn zwei gleichzeitig ins Internet gehen, welche Daten für welchen PC sind?
Danke!
-
Ich gehe jetzt mal davon aus, dass du einen Router mit NAT meinst.
ich möchte mal wissen, wie die Weiterleitung eines DSL Routers funktioniert. Wird das einfach weitergeleitet oder werden die HTTP Header verändert, sodass man von außen sehen kann, dass es ein Router ist und kein normaler PC?
HTTP-Ebene ist viel zu hoch, der kümmert sich nur direkt um IP-Pakete, sonst wär es ein sog. Proxy. Der Router bekommt das eingehende Paket, notiert sich, von wem es kam (s.u.) und schreibt dann die Internet-IP-Adresse ins IP-Paket rein. Somit siehts von außen aus, als wenn der Rouet den ganzen Traffic produziert (man kann es unter Umständen als ISP durchaus von außen an den IP-Sequenznumemrn erkennen, das macht aber in der Praxis wohl keiner).
Woran weiß der Router, wenn zwei gleichzeitig ins Internet gehen, welche Daten für welchen PC sind?
Man kann die Pakete an Portnummer, IP-Seqeuenznumnmer etc. identifizieren und so eine Zuordnung machen, auf welcher Verbindung gerade wer am machen ist. Bei UDP ist das etwas kniffliger, aber auch machbar. Der Router hält also intern eine Tabelle um die DInge zuordnen zu können. Das ist wohl auch der Grund, warum die meisten Router nu eine sehr begrenzte Zahl Verbindungen abkönnen.
-
Was ist das NAT, wovon du redest?
Gibts irgndwo tests, zu DSL Router? Sollten auch nicht zu teuer sein (50-70 EUR).
Danke, schonmal!
-
Loggy schrieb:
Was ist das NAT, wovon du redest?
NAT ist Network Address Translation, was Router im allgemeinen machen um die CLients ins internet zu bringen. Auch bekannt als IP-Masquerading.
Gibts irgndwo tests, zu DSL Router? Sollten auch nicht zu teuer sein (50-70 EUR).
Da muss ich passen, ich setze lieber auf nen alten Rechner mit Linux-Router drauf
-
Hi,
wie das mit UDP funktioniert, würde mich jetzt aber doch auch mal interessieren. Ich habe schon Spiele, die das UDP-Protokoll verwenden, über meinen NAT-Router online gezockt, ohne mir die Ports auf meinen Rechner zu mappen und die UDP-Pakete sind trotzdem auf meinem PC angekommen.
Woher weiß der Router, dass die zu meinem PC müssen?ChrisM
-
ChrisM schrieb:
wie das mit UDP funktioniert, würde mich jetzt aber doch auch mal interessieren. Ich habe schon Spiele, die das UDP-Protokoll verwenden, über meinen NAT-Router online gezockt, ohne mir die Ports auf meinen Rechner zu mappen und die UDP-Pakete sind trotzdem auf meinem PC angekommen.
Woher weiß der Router, dass die zu meinem PC müssen?Weil Dein Spiel zuerst an Deinen Spielserver geschickt hat. Und wenn der dann kurz darauf antwortet, is' klar, wohin die Päckchen müssen.
Genauso wie der Browser, der eine Anfrage an www.sex.de stellt. Kommt daraufhin von dem eine Antwort, schickt der Router die weiter.
Unangeforderte Päckchen von fremden Servern (oder Trojanern z.B.) werden ignoriert.
Das hat nicht speziell mit UDP zu tun.TriPhoenix schrieb:
(man kann es unter Umständen als ISP durchaus von außen an den IP-Sequenznumemrn erkennen, das macht aber in der Praxis wohl keiner).
Da würd' ich mich nicht drauf verlassen. Bei Flatrates, die z.B. keine mehreren PCs zulassen... naja... :p
-
@Sgt. Nukem: Nein, wenn ich eine Webseite aufrufe, ist das doch was ganz anderes. Da wird eine TCP-Verbindung erstellt und der Router mappt den lokalen Port der TCP-Verbindung so, dass er einmalig ist und so jedes Datenpaket eindeutig einer TCP-Verbindung zugeordnet wird. Aber UDP ist ja verbindungslos und ich hab auch schon gleichzeitig mit meinem Bruder über den selben Router auf dem selben Gameserver gezockt.
ChrisM
-
@chrism
dass keine direkte verbindung aufgebaut wird heißt doch nicht, dass die ip nicht mitgesendet wird. wie sollte der server denn sonst wissen wer überhaupt spielt und wo er die daten hinsenden muss?
-
Hi,
schon klar, aber wie konnten dann mein Bruder und ich gleichzeitig mit der gleichen IP auf dem gleichen Server zocken?
ChrisM
-
afaik verhält es sich so, dass der router intern eine tabelle führt. dabei wird den portnummern ab 60000 eine virtuelle verbindung zugewiesen und diese wird mit beim absender angegeben. wenn jetzt ein paket zurückkommt sieht er in der tabelle an der portnummer welche ursprüngliche ip die anfrage durchgeführt hat und kanns wieder weiterleiten.
korrigiert mich bitte wenn ich grade irgendwelchen scheiß erzählt hab *g*
-
Der Client baut eine verbindung zum Server auf. z.B. über Port 80.
Der Server akzeptiert die Verbindung und teilt dem Client nun einen Port zu. z.b. 45000
Der Socket kommuniziert dann weiter auf Port 45000 und Port 80 ist wieder frei zum akzeptieren weiterer Verbindungen.
Das Packet kommt vom Client zum Router mit der Internen IP-Adresse. Der Router (Masquerade) tauscht die interne IP-Adresse auf mit seiner externen aus und sendet das Packet weiter. Kommt ein Packet von Server zurück weiß der Router (Port und seine Liste der Verbindungen) wo es hin soll.
Hier ist keine eigene Einstellung auf dem Router erforderlich da von innen eine Socket besteht. Sollte von außen etwas ankommen nimmt der Router dieses Packet entgegen und schau in seiner Liste nach ob eine Verbindung besteht bzw. eine Weiterleitung auf einen internen Port/IP eingerichtet ist.(Port-Forwarding) Da dies nun nicht der Fall ist verwirft er das Packet.Fazit: Die eigentliche Socketverbindung findet niee über den ursprünglichen Port statt sonst könnte ja kein connect mehr stattfinden da der Server nicht mehr auf Listen gehen kann.
-
Unix-Tom schrieb:
Der Client baut eine verbindung zum Server auf. z.B. über Port 80.
Der Server akzeptiert die Verbindung und teilt dem Client nun einen Port zu. z.b. 45000
Der Socket kommuniziert dann weiter auf Port 45000 und Port 80 ist wieder frei zum akzeptieren weiterer Verbindungen.[..]
Fazit: Die eigentliche Socketverbindung findet niee über den ursprünglichen Port statt sonst könnte ja kein connect mehr stattfinden da der Server nicht mehr auf Listen gehen kann.
Nein, dem Widerspricht eindeutig das was durch mein Kabel geht Die Verbindung bleibt auf Port 80. Der Server kann die Verbindungen ja am sendenden Clientport auseinanderhalten. Und neue Verbindungen können trotzdem problemlos laufen, denn ein neues SYN an Port 80 bedeutet eine neue Verbindung im Gegensatz zu Daten auf Port 80, die anhand des Clientports dem Prozess zugeordnet werden.
Und ich denke so machens die Router dann auch, am Clientport identifizieren.
-
Ich bin fasziniert was manche leute hier drin für ne Phantasie haben
ganz beiläufig funktioniert es in einem Hardware Router wie in einem Software Router z.B. bei Linux/Unix über Iptables , Port Forwarding und Ip Masquerading ...
-
1ntrud0r schrieb:
Ich bin fasziniert was manche leute hier drin für ne Phantasie haben
Wieso? Das meiste klang bisher halbwegs plausibel (bis auf die angenommene http-verbindung auf nem anderen port ).
ganz beiläufig funktioniert es in einem Hardware Router wie in einem Software Router z.B. bei Linux/Unix über Iptables , Port Forwarding und Ip Masquerading ...
Ja, die frage ist aber ja WIE das genau geht