2017-06-07 1 views
0

Wenn wir eine TCP-Verbindung von PC1 zu Server herstellen und Daten über diese Verbindung senden, wie weiß der Router, auf welchem ​​der beiden PCs (PC1 und PC2) er auf dem Weg zurück vom Server zu kommunizieren hat PC1?NAT auf TCP-Verbindungen

Und

Wie Ping (ICMP) kennen, an dem internen Knoten sollte die Antwort schicken?

Antwort

2

NAT (Network Address Translation) ist zustandsbehaftet. Es erstellt eine Übersetzungstabelle mit den Protokollen und Adressen der Ebenen 3 und 4. Durch Nachschlagen der Rückverkehrsadressen in der Übersetzungstabelle kann der NAT-Prozess bestimmen, welche Innenadressen in dem Paket platziert werden sollen.


Edit:

Per Bearbeitungs auf Ihre Frage, Fragen über ICMP (es ist sehr schlecht Form die Frage, um eine andere Frage zu stellen zu ändern, weil es die durchaus akzeptabel Antworten ungültig machen kann bereits gegeben):

Es ist das gleiche wie TCP oder UDP. NAT erstellt eine Zustandstabelle, die dynamisch aufgebaut wird, wenn der Verkehr von innen nach außen übergeht. NAPT ermöglicht es Ihnen, eine einzelne IP-Adresse mit Datenverkehr von mehreren internen Adressen zu überlasten, und es wird den zurückkehrenden Verkehr übersetzen, indem Sie nachsehen, wo Sie es in seiner Zustandstabelle senden.

Mit NAPT untersucht NAPT neben der IP-Adresse auch das Layer-4-Protokoll (TCP, UDP, ICMP) und übersetzt die Layer-4-Adressen (TCP- oder UDP-Portnummern oder ICMP-Identifier) Speichern der Übersetzungen in ihrer Übersetzungstabelle. Wenn Rückverkehr für eine bestimmte Schicht-3- und Schicht-4-Adresskombination bestimmt ist, findet der NAPT-Prozess aus einer bestimmten Schicht-3- und Schicht-4-Adresskombination in seiner Übersetzungstabelle und kann sehen, wohin der Verkehr gesendet werden soll auf der Innenseite.

NAT ist sehr ressourcenintensiv und bricht das IP-Paradigma der End-to-End-Konnektivität, wobei jeder Host eindeutig durch seine eigene IP-Adresse identifiziert wird, weshalb er als Kludge (oder schlechter) bezeichnet wird. NAT wurde entwickelt, um die Lebensdauer von IPv4 zu verlängern, bis IPv6 mit seiner nahezu unbegrenzten Adressierung allgegenwärtig werden kann.

RFC 2663, IP Network Address Translator (NAT) Terminology and Considerations:

4.1.2. Network Address Port Translation (NAPT)

NAPT erweitert den Begriff der Übersetzung noch einen Schritt weiter, indem auch übersetzen Transportkennung (zum Beispiel TCP und UDP-Portnummern, ICMP Abfrage-Kennungen). Dadurch können die Transportkennungen einer Nummer von privaten Hosts in die Transportkennungen einer einzelnen externen Adresse gemultiplext werden. NAPT ermöglicht einer Gruppe von Hosts, eine einzige externe Adresse gemeinsam zu nutzen. Beachten Sie, dass NAPT mit Basic NAT kombiniert werden kann, so dass ein Pool externer Adressen in Verbindung mit Port Übersetzung verwendet wird.

Für ausgehende Pakete aus dem privaten Netzwerk würde NAPT die Quell-IP-Adresse, die Quelltransport-ID und die zugehörigen Felder wie IP-, TCP-, UDP- und ICMP-Header-Prüfsummen übersetzen. Die Transport-ID kann eine der TCP/UDP-Port- oder ICMP-Abfrage-ID sein. Bei eingehenden Paketen werden die Ziel-IP-Adresse , die Ziel-Transport-ID und die IP und Transport-Header-Prüfsummen übersetzt.

Ein NAPT-Router in Abbildung 2 kann so konfiguriert werden, dass Sitzungen , die von N-Pri stammen, in eine einzige externe Adresse übersetzt werden, z. B. Addr-i.

Sehr oft wird die Adresse der externen Schnittstelle Addr-Nx des NAPT-Routers als Adresse verwendet, um N-Pri zuzuordnen.

0

Der Router fügt dem Anforderungsheader, der an den Server gesendet wird, Informationen hinzu, die es ihm ermöglichen, den Absender nach dem Empfang der Antwort zu suchen. Dies wird normalerweise erreicht, indem eine im Speicher des Routers gespeicherte Tabelle verwendet wird, die die Adresse des PCs dem Token zuordnet, das dem Header hinzugefügt wurde.

+0

NAT hat nichts mit Layer-2 (MAC) -Adressen zu tun. NAT übersetzt Schicht-3 (IP) und möglicherweise Schicht-4 (TCP und UDP) Adressen (Ports), wenn es NAPT ist. –

2

Es gibt einen großen Ressourcenpool, der NAT (Network Address Translation) beschreibt, der verfügbar ist, wenn Sie "nat explored" suchen. Eine großartige Ressource ist Was ist NAT and how it work tutorial.

Das wichtigste Detail ist, dass wir neben NAT normalerweise NAPT (häufig als PAT - Port Address Translation bezeichnet) (Netzwerkadresse und Portumsetzung) verwenden.

Wenn ein Gerät das Internet verwenden muss, muss es einen lokalen (Quellport) öffnen und die IP-Anforderung an das andere Ende senden. Beispielsweise muss ein Notizblock mit der Quell-IP-Adresse 192.168.1.2 mit einem Webserver unter 216.58.212.35 kommunizieren.

Er startet den zufälligen Quellport 1234 und fordert Informationen vom Zielport 80 (HTTP - Webseite) an.

Dies geht durch die Netzwerke NAT-Gerät, das die Informationen 192.168.1.2/1234 mit den nächsten Informationen speichert, die es berechnet, und sendet die Anfrage als 46.103.93.105 (eigene IP öffentliche IP) und einen neuen Quellport, zum Beispiel 2345.

Der Webserver antwortet auf das NAT-Gerät, das wiederum die korrelierten Informationen findet (Quellport 2345 zielt auf 192.168.1.2/1234). Der Notizblock empfängt die Informationen und zeigt sie dem Benutzer an.

+0

PAT ist eigentlich eine falsche Bezeichnung. _ [RFC 2663, IP Network Address Translator (NAT) Terminologie und Überlegungen, Abschnitt 4.1.2, Network Address Port Übersetzung (NAPT)] (https://tools.ietf.org/html/rfc2663) _ beschreibt es: "_NAPT erweitert den Begriff der Übersetzung noch einen Schritt weiter, indem auch eine Transportkennung (zB TCP- und UDP-Portnummern, ICMP-Abfragekennungen) übersetzt wird, wodurch die Transportkennungen einer Anzahl privater Hosts in die Transportkennungen einer einzelnen externen Adresse gemultiplext werden können NAPT ermöglicht einer Gruppe von Hosts, sich eine einzige externe Adresse zu teilen._ " –

+0

Danke für den Kommentar –

+0

Wie weiß der Ping (ICMP), an welchen internen Knoten er die Antwort senden soll? – Gist