Warum ist nat erforderlich, wenn Proxy ausreicht? [geschlossen]

8

Mein Computer ist in einem lokalen LAN angeschlossen. Um eine Verbindung zum Internet herzustellen, wird der Datenverkehr über den Proxyserver geleitet. Mein Verständnis des Proxyservers ist, dass er die Anfrage im Namen des ursprünglichen Absenders der Anfrage sendet . Wenn der Server antwortet, sendet er die Antwort an den Proxy und denkt, dass es sich um den Client handelt. Der Proxy leitet die Antwort dann an meinen Computer weiter.
Nehmen Sie den Fall der Übersetzung der Netzwerkadresse . Ihre Anfrage geht über den Nat-Router. Der nat-Router stellt Ihnen dann eine öffentliche IP-Adresse zur Verfügung und speichert diese Zuordnung in seiner Tabelle. Die Antwort (vom Server) wird an diese zugewiesene öffentliche Adresse gesendet. Was der Nat-Router aus der Tabelle in Ihre lokale IP-Adresse auflöst und die Antwort an Ihren Computer weiterleitet.
Meine Frage, warum nat erforderlich ist, wenn der Proxy selbst den Datenverkehr vermitteln und Ihnen den Zugang zum Internet ermöglichen kann?

Ashwin
quelle
1
Eine Klärung - der NAT - Router nicht liefern Sie eine öffentliche IP - Adresse. Es schreibt Ihre Pakete lediglich neu, als ob sie von seiner eigenen öffentlichen IP anstelle der IP Ihres Clients stammen würden. Dann werden Antwortpakete an die externe IP des NAT zurückgesendet, die die Pakete dann erneut mit der IP Ihres Clients neu schreibt und das Paket weiterleitet.
EEAA

Antworten:

5

MadHatter hat eine hervorragende Erklärung für Laien über die Unterschiede zwischen Proxies und NAT verfasst.

Für weitere technische Details empfehle ich Ihnen, sich über das OSI-Modell und das TCP / IP-Modell zu informieren. Nat arbeitet auf späteren 3 des OSI-Modells (in diesem Fall auf der Netzwerkschicht, IP), und Proxys arbeiten im Allgemeinen auf Schicht 7 (der Anwendungsschicht, HTTP oder was auch immer Sie als Proxy verwenden).

NAT und Proxys versuchen auch, etwas andere Probleme zu lösen. NAT versteckt eine Reihe privater IPs hinter einer kleineren Anzahl öffentlicher IPs, um den Mangel an IP-Adressen zu verringern, während Proxys aus Sicherheits-, Prüfungs- oder Leistungsgründen einen Netzwerk-Choke-Point erstellen

dwurf
quelle
Mir wurde immer gesagt, dass NAT in den Schichten 3 und 4
funktioniert
@codeaviator ein fairer Kommentar - Ich schiebe mich an die Experten von networkengineering.stackexchange.com :)
dwurf
15

Mir scheint, Sie haben die Grundlagen hier recht gut verstanden, und die kurze Antwort lautet: Wenn Sie einen Proxy mit einer öffentlichen Adresse verwenden, benötigen Sie kein NAT - für die Protokolle, die vom Proxy vermittelt werden .

Es gibt jedoch mehr Protokolle im Himmel und auf der Erde, als in Ihrer Philosophie geträumt werden . Nicht alle von ihnen sind proxy-fähig, und Proxies existieren nicht einmal für alle, daher ist NAT ein praktischer Fallback für diese.

Bearbeiten : Ein Proxy ist ein Computergerät, das auf Anwendungsebene arbeitet. Ein HTTP-Proxy empfängt HTTP-Anforderungen für einen Remote-Standort. Wie Sie bereits betont haben, wird er an diesen Standort selbst weitergeleitet, stellt die Anforderung und gibt die Antwort an den anfordernden Client zurück. Dazu muss HTTP jedoch detailliert verstanden werden.

In ähnlicher Weise könnten Sie einen FTP-Proxy schreiben, der jedoch die Details von MKD-, DELE-, LIST- und ähnlichen FTP-Protokollbefehlen verstehen muss, um die Anforderungen des Clients korrekt zu proxyieren. Jeder Proxy, der transparent arbeiten möchte, muss im Allgemeinen die Interna des Protokolls genau verstehen, um dieses Protokoll zu vertreten.

SOCKS ist bis zu einem gewissen Grad eine Ausnahme von dieser Regel, aber das liegt daran, dass das SOCKS-Protokoll eine allgemeinere Schnittstelle für das Proxy-System einrichtet, bei der jeder Client SOCKSified sein muss und daher in der Lage ist, die richtigen Anforderungen des SOCKS-Proxys zum Festlegen zu stellen die Art von Proxy, die jeder benötigt, was nicht gerade transparent ist.

MadHatter
quelle
Was meinen Sie mit "Protokollen, die nicht proxiable sind"?
Suraj
@ MadHatter: Was meinst du mit nicht proxiable? Ist es nicht genug, die Proxy-IP als Standard-Gateway zu haben?
Ashwin
Um einen weiteren Aspekt anzusprechen: Für den nicht technischen Benutzer sollte das NAT sofort (transparent) funktionieren, während der Proxy auf der Clientseite "installiert" werden muss.
Niemand
@ Niemand - nicht wirklich. Transparente Proxys sind allgegenwärtig und erfordern keine Konfiguration auf dem Client.
EEAA
2
@Nobody - dein Verständnis ist falsch. NAT und Proxys (ob transparent oder nicht) sind völlig unterschiedliche Technologien.
EEAA