Symmetrisches Stanzen von NAT- und UDP-Löchern


8

Ich habe diese Frage gelesen , aber die Erklärung von Symmetric NAT war nicht detailliert genug.

Könnte mir bitte jemand helfen, die folgenden Absätze zu verstehen?

Ich habe dies über Symmetric NAT gelesen :

Jede Anforderung von derselben internen IP-Adresse und demselben Port an eine bestimmte Ziel-IP-Adresse und denselben Port wird einer eindeutigen externen Quell-IP-Adresse und einem Port zugeordnet, wenn derselbe interne Host ein Paket auch mit derselben Quelladresse und demselben Port, jedoch an einen anderen sendet Ziel wird eine andere Zuordnung verwendet. Nur ein externer Host, der ein Paket von einem internen Host empfängt, kann ein Paket zurücksenden.

http://en.wikipedia.org/wiki/Network_address_translation#Types_of_NAT

Und das über UDP-Locher :

Das Stanzen von UDP-Löchern funktioniert nicht mit symmetrischen NAT-Geräten (auch als bidirektionales NAT bezeichnet), die in großen Unternehmensnetzwerken zu finden sind. Bei symmetrischem NAT ist die mit der Verbindung zum bekannten STUN-Server verbundene NAT-Zuordnung auf den Empfang von Daten vom bekannten Server beschränkt, und daher ist die NAT-Zuordnung, die der bekannte Server sieht, keine nützliche Information für den Endpunkt.

http://en.wikipedia.org/wiki/UDP_hole_punching

Aber ich nehme es nicht wirklich auf. Ich habe das Gefühl, dass es mir sagt, dass (in einer Client-Server-Anwendung, in der der Client die Kommunikation initiiert) ein Server nicht in die andere Richtung kommunizieren kann, es sei denn, dies wurde vom NAT-Gerät ausdrücklich zugelassen. Ich verstehe nicht, warum das so ist. Wenn es möglich ist, können Sie diese Beschreibung für mich leicht vereinfachen?

Wir haben ein Problem in unserer Umgebung, bei dem ein bekanntes Remote-Support-Tool nicht von einem ebenso bekannten Softwareanbieter verwendet werden kann, um uns zu unterstützen. Der Client ist Proxy-fähig, aber für einige Resonanzen hält er es für eine gute Idee, ihn nicht zu verwenden und über UDP an Port 1153 etwas völlig anderes zu tun.


1
Bevor ich antworte, möchten Sie einfach wissen, warum das Stanzen von UDP-Löchern mit symmetrischem NAT nicht funktioniert, oder fragen Sie nach Ihrem speziellen Problem? Da Ihr Problem auch nicht unbedingt damit zusammenhängt, bin ich neugierig.
TheCleaner

OK, vielleicht könnten Sie beides erklären? Ich meine, warum es nicht funktioniert und warum mein Problem nicht verwandt zu sein scheint.
John

Beginnen wir mit einem Chatroom, wenn Sie einen erstellen möchten ... Ich habe etwas Zeit und es könnte einfacher sein. Ich werde meine Erklärung von dort als Antwort hier später ausschneiden / einfügen.
TheCleaner

Antworten:


6

Aus unserem Chat ... damit andere möglicherweise nicht die vollständige Konversation erhalten, aber die Grundlagen sind hier.

Also grundlegendes NAT = source address:port >> external address:port >> NAT>> new source address:port >> external address port

Bei symmetrischem NAT handelt es sich um eine statische Zuordnung, die jedes Mal und sowohl für die Quelle als auch für das Ziel gleich ist.

Beispiel: 192.168.100.5:34983 going to 4.2.2.2:53 then REQUIRE it to be 216.222.222.222:44444 with destination 8.8.8.8:333333

"In einer Client-Server-Anwendung, in der der Client die Kommunikation initiiert, konnte ein Server nicht in die andere Richtung kommunizieren, es sei denn, dies wurde vom NAT-Gerät ausdrücklich zugelassen."

Der Teil, den Sie sagen, ist falsch. Er sollte lauten:

In einer Client-Server-Anwendung, in der der Client die Kommunikation initiiert, kann ein Server in die andere Richtung zurück kommunizieren, nachdem die Quelle die Sitzung über die in der Sitzung verwendeten Ports eingerichtet hat.

Das heißt, wenn 2.2.2.2:43424 zu 5.5.5.5:80 wechselt, sendet 5.5.5.5:80 Informationen an 2.2.2.2:43424 zurück, sobald die Sitzung eingerichtet ist. In Ihrem Satz ... würde die Sitzung immer nur eine Quelle sein, die mit dem Ziel kommuniziert, wobei das Ziel niemals mit Paketen / Informationen / Grafiken / was auch immer antwortet.

"Wir haben ein Problem in unserer Umgebung, bei dem ein bekanntes Remote-Support-Tool nicht von einem ebenso bekannten Softwareanbieter verwendet werden kann, um uns zu unterstützen. Der Client ist Proxy-fähig, aber für einige Resonanzen hält er es für ein Gute Idee, es nicht zu verwenden und über UDP an Port 1153 etwas völlig anderes zu tun. "

Das könnte daran liegen, dass sie Logmein / Teamviewer / was auch immer auf Portebene einfach blockieren, da sie nach einem anderen Port fragen. Sie denken also, wenn Sie 1153 zulassen oder kommunizieren, werden ihre eigenen IT-Einschränkungen umgangen ... am besten Ich kann mir vorstellen, ohne im Detail zu wissen, welche App oder welche vollständigen Details. Eigentlich nichts mit symmetrischem NAT- oder UDP-Lochern zu tun ... zumindest was das Problem betrifft, das sie selbst ansprechen.

Ich würde empfehlen, mit dem Support-Team darüber zu sprechen, mit welchem ​​Remote-Support-Tool sie arbeiten ODER mit ihnen zusammenarbeiten, um herauszufinden, wie Sie das gewünschte Tool verwenden können. Wenn dies bestimmte Port-NATs / -Regeln bedeutet, müssen Sie mit ihnen und Ihrem Netzwerkteam zusammenarbeiten, um diesen Teil herauszufinden.

Hoffe, dass alles hilft.


Das Remote-Support-Tool ist Log Me In und wird von einigen unserer Drittanbieter für den Support verwendet. Wir haben den Datenverkehr auf unserer Unternehmensfirewall zugelassen und konnten sehen, dass der Datenverkehr von der Firewall weitergeleitet wird. Es kam jedoch nichts zurück. Es ist fast so, als gäbe es keinen Weg zurück durch die Firewall, oder der Remote-Server konnte nicht bestimmen, wohin die Rückmeldung gesendet werden soll.
John

Wir haben auch Proxies, daher ist es möglich, dass diese auf irgendeine Weise stören.
John

Wenn Sie eine ausgehende "Zulassungsrichtlinie" haben, sollte dies funktionieren, wenn Ihre Seite den Datenverkehr initiiert und dieser Datenverkehr die Remote-Partei mit den richtigen NAT-Informationen erreicht. Siehe auch hier: help.logmein.com/…, aber Sie benötigen möglicherweise Beratung oder mehr Fachwissen vor Ort, um dies auszuschalten ...
TheCleaner

4

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Schauen Sie sich diese Bilder von der Wikipedia-Seite "Übersetzung von Netzwerkadressen" an.

In "Full Cone NAT"

  1. Sobald eine interne Adresse (iAddr: iPort) einer externen Adresse (eAddr: ePort) zugeordnet ist, werden alle Pakete von iAddr: iPort über eAddr: ePort gesendet.
  2. Jeder externe Host kann Pakete an iAddr: iPort senden, indem er Pakete an eAddr: ePort sendet.

In symmetrischem NAT

  1. Jede Anforderung von derselben internen IP-Adresse und demselben Port an eine bestimmte Ziel-IP-Adresse und denselben Port wird einer eindeutigen externen Quell-IP-Adresse und einem eindeutigen externen Port zugeordnet. Wenn derselbe interne Host ein Paket auch mit derselben Quelladresse und demselben Port, jedoch an ein anderes Ziel sendet, wird eine andere Zuordnung verwendet.
  2. Nur ein externer Host, der ein Paket von einem internen Host empfängt, kann ein Paket zurücksenden.

Lassen Sie uns nun diskutieren, warum das Stanzen von UDP-Löchern in Symmetric NAT nicht funktioniert. Nehmen wir an, Server1 ist STUN Server und Server 2 ist ein NAT-Gerät eines anderen privaten Netzwerks. Beim UDP-Locher stellt der Client eine Verbindung mit Server1 her und die Portzuordnung wird auf dem NAT-Gerät erstellt. Wenn dieser Client jedoch eine Verbindung zum Host hinter Server2 herstellt, erstellt das NAT-Gerät eine weitere Portzuordnung (siehe Abbildung 2). Server1 teilt die Client-Portzuordnung mit dem Host hinter Server2. Mit dieser Portzuordnung kann Server2 keine Verbindung herstellen, und Server2 ist sich der zweiten nicht bewusst Vom NAT-Gerät erstellte Portzuordnung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.