Woher weiß der Router, wie er die Pakete an mein Terminal weiterleitet?

10

Angenommen, ich habe ein Netzwerk von 2 Computern mit jeweils einer privaten Netzwerkadresse von 192.168.1.101 und 192.106.1.102.

Für meine öffentliche IP-Adresse ist es 10.2.10.172.

Wenn ich eine http-Anfrage an google.com stelle, sendet mein Computer ein Paket mit der Quell-IP-Adresse 192.168.1.101 an den Router und das NAT ändert es in 10.2.10.172.

Meine Frage lautet: Wenn google.com die Anfrage erhält und die Antwort an 10.2.10.172 zurücksendet, woher weiß der Router, an welchen Computer er weiterleiten soll? (192.168.1.101 oder 192.168.1.102).

Ich habe zuerst über die Portnummer nachgedacht, aber ich denke, dass wir zur gleichen Zeit auf derselben Website surfen könnten, daher habe ich keine Ahnung, wie es hier funktioniert.

Mc Kevin
quelle
1
mögliches Duplikat des UDP-Lochstanz-NAT-Ports
Sebastian Wiesinger
1
Das 10-Netzwerk ist auch "intern nicht routingfähig" - ich arbeite heute Abend schnell durch die Warteschlange, also bin ich vielleicht ein Idiot ... es muss eine weitere NAT-Schicht passieren, um diese 10-Netznummer in eine publick-routbare zu verwandeln . Wie auch immer ... McKevin, willkommen bei Net Eng! Dies ist ein Softball Q für hier, aber es ist wahrscheinlich genug Thema ...
Craig Constantine
@CraigConstantine Ich bin nur ein CCNA-Student, ich denke, das erklärt auf dem Softball Q :)
Mc Kevin

Antworten:

7

NAT
Wenn Sie statisches (Eins-zu-Eins) NAT verwenden, weist der Router 11.2.10.172dem ersten PC (zum Beispiel 192.168.1.101), der versucht, google.com zu erreichen , die öffentliche IP zu . In diesem Fall können die beiden PCs nicht gleichzeitig mit google.com kommunizieren, da die einzige verfügbare öffentliche IP bereits verteilt ist.
Die NAT-Tabelle im Router:
11.2.10.172 -> 192.168.1.101

PAT
In Ihrem Fall ist PAT (NAT-Überladung) die Lösung.
Mit PAT können mehrere Adressen einer privaten IP zugeordnet werden. Wenn ein Gerät eine TCP / IP-Sitzung initiiert, generiert es eine TCP- oder UDP-Quellportnummer, um die Sitzung eindeutig zu identifizieren. Wenn der Router dieses Paket empfängt, verwendet er diese Quellportnummer, um die Übersetzung eindeutig zu identifizieren.

Beispiel
PC1 ( 192.168.1.101) sendet eine HTTP-Anfrage an google.com ( 64.233.161.1) mit einer zufälligen Quellportnummer (1444). PC1 sendet ein Paket mit DA: 64.233.161.1:80 | SA: 192.168.1.101:1444. Wenn der Router dieses Paket empfängt, fügt er es 11.2.10.172:1444 -> 192.168.1.101:1444in die NAT-Tabelle ein, ändert dann die L3-Adressierung des Pakets DA: 64.233.161.1:80 | SA: 11.2.10.172:1444und leitet es an google.com weiter.
Google antwortet mit DA: 11.2.10.172:1444 | SA: 64.233.161.1:80. Der Router empfängt dieses Paket und übersetzt es, um es DA: 192.168.1.101:1444 | SA: 64.233.161.1:80dann an PC1 weiterzuleiten.

Wenn PC2 ( 192.168.1.102) ein Paket mit derselben Quellportnummer wie PC1 sendet, erhöht der Router die Portnummer einfach um 1. In diesem Fall würde die NAT-Tabelle folgendermaßen aussehen

11.2.10.172:1444 -> 192.168.1.101:1444
11.2.10.172:1445 -> 192.168.1.102:1444

Ich hoffe es hilft ein bisschen.

UPDATE
Wie @CraigConstantine bemerkt hat, 10.2.10.172befindet es sich immer noch im privaten Adressraum, also habe ich es geändert 11.2.10.172.

Adam Hornyak
quelle
Sie meinen also, wir werden 2 Portnummern im Paket haben? eine für das NAT und eine für das Terminal (http Port 80)?
Mc Kevin
1
Ja. Der PC sendet ein Paket mit <dest: 64.233.161.1:80, Quelle 192.168.1.101>. Der Router übersetzt es in <dest: 64.233.161.1:80, source: 10.2.10.172:1317> und sendet es an Google. Google antwortet mit <dest: 10.2.10.172:1317, source: 64.233.161.1:80>. Der Router empfängt das Paket und sucht in der NAT-Tabelle nach der Zuordnung 10.2.10.172:1317. Findet die richtige Zeile, übersetzt und sendet das Paket mit <dest: 192.168.1.101, source: 64.233.161.1:80>
Adam Hornyak
1
Nur einer im Paket. Der Router schreibt die Zieladresse und die Portnummern während der Übersetzung neu.
Ron Trunk
1
Wenn wir alle technischen Daten erhalten möchten (und wer nicht?), Weist der PC einen Quellport zu, der dann vom NAT-Gerät übersetzt wird. In Adams Kommentar wäre die erste Quelle also eher 192.168.1.101:33123, und ebenso wäre das entsprechende Endziel am Ende seines Kommentars 192.168.1.101:33123.
Todd Wilcox
1
@ToddWilcox Du hast recht. Ich habe es vergessen. Ich werde meine Antwort aktualisieren.
Adam Hornyak
4

Ihr Router weiß, wohin der Datenverkehr weitergeleitet werden muss, da er eine Tabelle mit statusbehafteten Verbindungen verwaltet, bei denen es sich um Quell-IP-Adresse: Port und Ziel-IP-Adresse: Port-Beziehungen handelt. Diese werden basierend auf Ihren Firewall-Regeln, NAT-Richtlinien und einigen anderen Einstellungen (wie TCP- und UDP-Timeout) festgelegt. Es gibt 4 mögliche Zustände: NEU, VERWANDT, FESTGELEGT und UNGÜLTIG. Basierend auf Ihren Firewall-Regeln bestimmt Ihre Firewall, in welchem ​​Status sich eine Verbindung befinden soll. Daher können Sie normalerweise standardmäßig NEUE ausgehende Verbindungen herstellen. Es sind jedoch nur RELATED- oder ESTABLISHED-Verbindungen zulässig, wenn Sie eine NAT- oder PAT-Regel und eine entsprechende Firewall-Richtlinie erstellen um dies zu ermöglichen.

Dann wird entweder basierend auf den von Ihnen konfigurierten Regeln (für den Fall einer NEUEN Verbindung) oder der vorhandenen Verbindungstabelle (für den Fall einer ESTABLISHED-Verbindung) ein Paket zugelassen oder nicht zugelassen.

Darüber hinaus wird eine [ARP] -Tabelle verwaltet, mit deren Hilfe die Firewall erkennt, welcher physischen MAC-Adresse eine IP-Adresse entspricht.

James Shewey
quelle