Netzwerkrouting

Hallo, mir kam gerade eine Frage, auf die ich keine Antwort weiß. Ich hoffe, es ist ganz einfach.
Ich frage mich gerade, woher der Router in meinem LAN weiß, an welchen Rechner er seine Pakete verschicken soll.
Für die „Außenwelt“ zeigt sich doch nur die IP Adresse meines Routers. Alle in meinem Heimnetzwerk haben die selbe IP, oder irre ich mich da? Und die MAC-Adresse wirds ja sicher nicht sein…
Aber woran macht dann der Router fest, an wen er seine Pakete schicken soll, wenn der (z.B. HTTP)Server im Internet ja keine Ahnnung hat, wohin er die Pakete senden soll? Gerade, wenn gleich mehrere Rechner ähnliche Diense beanspruchen.
Es wird ja auch nicht daran liegen, dass TCP verbindungsorientiert ist, da auch verbindungslose Pakete raus - und letztlich andere auch wieder rein - gehen.
Vielleicht weiß jemand von Euch Rat.

Vielen Dank,
Tobias

Das ganze beruht auf den Grundlagen von IP.
Wenn Du Dir mal bei Wikipedia z.B. die Beschreibung der Pakete und das Routing durchliest, werden Deine Fragen beantwortet.

Das ganze nennt sich NAT Network Adress Translation.
Der Router weiß ja, welche Pakete mit welcher Nummer und welchen Ports er erhalten hat. Diese sendet er neu verpackt weiter ans Ziel mit neuer Nummer und Ports. Wenn die Antworten zurückkommen, packt er die Paketinhalte wieder um und leitet sie entsprechend der Nummer (nun inkrementiert, d.h. +1) und Ports zurück an den Anfragenden.

Also kein Hexenwerk.

Ich frage mich gerade, woher der Router in meinem LAN weiß,
an welchen Rechner er seine Pakete verschicken soll.

Er weiß ja, von welchem Rechner die Anfrage gekommen ist. Die Antwort des Servers sendet er dorthin zurück. Stichwort: NAT.

Für die „Außenwelt“ zeigt sich doch nur die IP Adresse meines
Routers. Alle in meinem Heimnetzwerk haben die selbe IP, oder
irre ich mich da?

Die Rechner in deinem Heimnetzwerk haben alle eine unterschiedliche IP innerhalb dieses Netzes (beispielsweise 192.168.1.10, 192.168.1.11, 192.168.1.12…). Diese IP-Adressen sind innerhalb deines Netzwerkes direkt nutzbar. Für die Außenkommunikation „verleiht“ der Router der Anfrage an einen Server seine öffentliche Adresse. Der externe Server antwortet an diese Router-Adresse. Der Router gibt die Antwort weiter an den anfragenden Rechner.

Aber woran macht dann der Router fest, an wen er seine Pakete
schicken soll, wenn der (z.B. HTTP)Server im Internet ja keine
Ahnnung hat, wohin er die Pakete senden soll?

Der Server im Internet hat eine genaue Ahnung davon, wo er die Pakete hinsenden soll: an den Router deines Netzwerkes.

Stefan

Hallo,

mal zu meinen Vorrednern, NAT ist nicht ganz richtig. Es handelt sich
dort eher um NAT with Overloading( Kurz gesprochen PAT). Dabei wird
wenn dein PC z.b. www.wer-weis-was.de besuchen möchte folgendes auf dem Router eingetragen:
www.wer-weis-was.de:80 -> internen IP deines PC plus Port größer als 1024
Wenn dann die Antwort an deinen Router zurück gesendet wird mit den Informationen zur Webpage, wird das an den Eintrag im Router zurück übersetzt und auf deinem PC im Browser angezeigt.

mfg
Hajo

Hallo,
danke für die schnellen Antworten.
Also weiß der Router folglich einfach, welche Pakete er an welchen Rechner weiterleitet.
Und falls 2 Rechner gleichzeitige Server ansprechen, gibt es dann vermutlich einfach andere „Paketnummern“ (Sequenznummern?), die die unterschiedlichen Pakete identifizieren und dem Router dann ermöglichen, die an das eigentliche Ziel weiterzuleiten.
Der Router besitzt also eine Tabelle, in der Sequenznummern für Pakete (oder Verbindungen) mit den lokalen IP-Adressen vermerkt sind?
So hätte ich Eure Antworten jetzt verstanden, werde mich natürlich auch noch weiter damit beschäftigen.
Vielen Dank für die schnellen Antworten!
Tobias

Hallo, mir kam gerade eine Frage, auf die ich keine Antwort
weiß. Ich hoffe, es ist ganz einfach.

Im Prinzip…

Ich frage mich gerade, woher der Router in meinem LAN weiß,
an welchen Rechner er seine Pakete verschicken soll.

OK.
Der PC 192.168.0.10 fragt unter Port 1100 nach der öffentlichen IP 4.4.4.4
Der Router, selber unter der öffentlichen IP 2.3.4.5 im Internet unterwegs, ersetzt nun den Port des anfragenden Rechners durch einen neuen, „frei erfundenen“. Er meldet sich bei 4.4.4.4 dann z.B. als 2.3.4.5:5004.
4.4.4.4 antwortet nun dem 2.3.4.5 unter dieser Portnummer (5004).
Der Router hat sich gemerkt, dass Port 5004 bdeutet, dass die ankommenden Pakete zum PC 192.168.0.10:1100 zu schicken sind.

Genauer:
http://de.wikipedia.org/wiki/Port_Address_Translation

Der Router hat sich gemerkt, dass Port 5004 bdeutet, dass die
ankommenden Pakete zum PC 192.168.0.10:1100 zu schicken sind.

Danke für die Antworten.
Aber was passiert, wenn zwei Router gleichzeitig die selben Ports benötigen. Ich kann doch sicher von Laptop und Desktop den gleichen Server ansprechen, oder würde das dann gleichzeitig nicht funktionieren?
Und zufällige Ports kann der Router doch nicht öffnen, da die doch vorgegeben sind. Was wäre denn, wenn der einen Port nutzen würde, der auf dem anderen Server gesperrt wäre, dann ginge das doch auch nicht, oder?

Na gut, ich werd mir mal erst einmal den WIkipedia Link durchlesen.
Habt vielen Dank,
Tobias