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.
Antworten:
NAT
Wenn Sie statisches (Eins-zu-Eins) NAT verwenden, weist der Router
11.2.10.172
dem ersten PC (zum Beispiel192.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 mitDA: 64.233.161.1:80 | SA: 192.168.1.101:1444
. Wenn der Router dieses Paket empfängt, fügt er es11.2.10.172:1444 -> 192.168.1.101:1444
in die NAT-Tabelle ein, ändert dann die L3-Adressierung des PaketsDA: 64.233.161.1:80 | SA: 11.2.10.172:1444
und 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 esDA: 192.168.1.101:1444 | SA: 64.233.161.1:80
dann 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 aussehen11.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.172
befindet es sich immer noch im privaten Adressraum, also habe ich es geändert11.2.10.172
.quelle
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.
quelle