Warum ist es eine schlechte Idee, mehrere NAT-Ebenen zu verwenden, oder?


19

Das Computernetzwerk einer Organisation verfügt über ein NAT mit einem IP-Adressbereich von 192.168 / 16. Es gibt eine Abteilung mit einem Server mit der IP-Adresse 192.168.xy, und dieser Server verwaltet Hosts dieser Abteilung mit einer anderen NAT mit dem IP-Adressbereich 172.16 / 16.

Somit gibt es 2 Schichten NAT. Warum haben sie stattdessen kein Subnetz? Dies würde ein einfaches Routing ermöglichen.

Ich habe das Gefühl, dass mehrere NAT-Schichten zu Leistungseinbußen führen können. Können Sie mir bitte helfen, die beiden Entwurfsstrategien zu vergleichen?

Aktualisieren:

@ Jon Weitere Informationen

In einer Diskussion mit einem Freund stellten wir fest, dass ein Subnetz das folgende Problem verursachen würde. Die ARP-Anforderungen eines Computers würden das gesamte Netzwerk der Organisation überfluten. Wenn der Router diese Anforderungen nicht weiterleitet, können PCs in einer Abteilung keine Verbindung zu PCs in anderen Abteilungen herstellen, was ohnehin nicht möglich ist, wenn sie sich hinter unterschiedlichen NATs befinden. Mit einem Paket-Sniffer haben wir festgestellt, dass es eine große Anzahl von ARP-Anforderungen gibt, da auf den meisten Computern in der Abteilung die Dateifreigabe unter Windows aktiviert ist.

Wie kann man dieses Problem lösen?

Auch wenn sich zwei Computer hinter unterschiedlichen NATs befinden, können sie sich nicht miteinander verbinden.


Bitte ändern Sie Ihre Frage in: "Warum ist es eine schlechte Idee, mehrere NAT-Ebenen zu verwenden?"

2
Eine weitere Hausaufgabe ...
Jon Rhoades

1
NEIN. Es ist ein praktisches Problem. Ich erwähne immer Hausaufgaben.
Rohit Banga

3
@ Jon (und seine Upvoter), es gibt keine Probleme, hier Hausaufgaben zu stellen. Es ist ein Thema, das auf meta.stackoverflow.com schon dutzende Male diskutiert wurde - obwohl ich persönlich in der Frage nichts sehe, was auf HW hindeutet .
Mark Henderson

@Farseeker - die ganze Frage ist abstrakt. Er scheint nicht in der Lage zu sein, irgendetwas zu ändern, er möchte, dass wir "die beiden Designstrategien vergleichen" ohne klares Ziel - es riecht nur nach Hausaufgaben, kein echtes Problem. Natürlich bin ich mehr als glücklich zu akzeptieren, dass ich falsch liege und jemand diese verrückte Einstellung hat - in diesem Fall frag ihn, warum er einen guten Grund haben muss.
Jon Rhoades

Antworten:


6

Das einzige wirkliche Problem bei mehrschichtigem NAT ist, dass Ihre Netzwerktopologie dadurch verwirrt wird. Wenn Sie mehrere NAT-Ebenen verwenden, wird das symmetrische Routing zwischen allen Hosts in der Organisation aufgehoben, und es besteht die Gefahr, dass sich private Adressräume in Ihrem Netzwerk überschneiden. Stellen Sie sich vor, Sie hätten einen Adressbereich in Ihrer n + 1-NAT-Ebene verwendet, der in der n-NAT-Ebene verwendet wurde. Diese Netzwerke könnten sich niemals gegenseitig leiten, aber Hosts in der n + 1-Schicht könnten dieselbe Adresse wie die n-Schicht haben, was die Identität des Servers verwirrt.

Wenn ich die Topologie eines großen Netzwerks auslegen würde, würde ich nur 10. * oder 172.16-24. * Adressen für Hosts in einem unserer Subnetze verwenden. Wenn dann eine Abteilung oder eine Einzelperson NAT verdoppeln möchte, könnte sie (unter Verwendung des 192.168. * -Netzwerks) das Verständnis haben, dass sie für das Netzwerk hinter ihrem NAT-Host verantwortlich sind. Ich wäre auch eher geneigt, mehr Subnetze zu erstellen, als eines dieser doppelten NAT-Netzwerke zu groß werden zu lassen.


9

Probleme mit Multi-Level-NAT sind im Wesentlichen die gleichen wie bei Single-Layer-NAT, jedoch zusammengesetzt. Sowie:

  1. Latenz aufgrund zusätzlicher Arbeit in einer Paketlebensdauer (obwohl dies in den meisten Fällen unwahrscheinlich ist)

  2. Wissen, woher etwas kommt. Wenn Sie versuchen aufzuspüren, woher bestimmte Anforderungen stammen (möglicherweise hat Ihre ausgehende Firewall einen anscheinend kompromittierten Computer protokolliert, der versucht, Spam auszuspucken oder nach anderen Infektionszielen zu suchen), erschwert NAT eine solche Diagnose erheblich.

  3. Wenn Sie eingehende Verbindungen benötigen, ist die Portweiterleitung für eingehende Verbindungen einfacher einzurichten und zu warten.

  4. Begrenzte Anzahl von Ports. NAT übersetzt Quelladressen an verschiedenen Ports in sich selbst. Beispiel:

    • Maschine 1 kommuniziert mit einem externen Webserver über Port 1024, da die Quelle in die Adresse der NAT-Box auf Port 10000 übersetzt wird.
    • Derselbe Computer sendet gleichzeitig (nicht ungewöhnlich) zwei Anforderungen an diesen oder einen anderen Webserver über den Quellport 1025 (zwei gleichzeitige Verbindungen müssen über unterschiedliche Quellports verfügen). Die NAT-Box übersetzt dies in "Ich auf Quellport 10001".
    • Ein anderer Computer stellt drei Verbindungen zu externen Servern her. Gut, die NAT-Box übersetzt diese in "Ich an den Ports 10002, 10003 und 10004".
    • Wenn die Pakete in Form der externen Maschinen zurückkommen, weiß die NAT-Box, dass die für sich selbst bestimmten Daten an Port 10000 tatsächlich an Maschine 1 an Port 1024 gehen sollen, und so weiter für die anderen aktiven Verbindungen.

    Dies ist alles in Ordnung, bis Sie viele ausgehende Verbindungen haben - dh ein großes Netzwerk oder ein kleineres Netzwerk mit Computern, die viele Verbindungen herstellen (P2P-Anwendungen wie diejenigen, die das BitTorrent-Protokoll implementieren, können viele gleichzeitige Verbindungen herstellen). Es gibt nur 65536 Ports im IP-Protokoll, abzüglich der 1024, die reserviert sind. Während 60.000 wie eine Menge klingen, die schnell konsumiert werden kann, muss die NAT-Box entscheiden, welche alten Zuordnungen entfernt werden können, was normalerweise nicht so einfach ist wie "die ältesten ablegen". Dies kann zu seltsamen Fehlern führen (zufällige Verbindungsabbrüche aus schwer zu diagnostizierenden Gründen) oder dazu, dass der Computer für eine Weile einfach keine neuen Verbindungen herstellen kann.

  5. Laden Sie auf die NAT-Box (en). Wenn Sie kleine Low-Power-Boxen verwenden (z. B. handelsübliche NAT-Router, die Router unterstützen, statt eines vollständigen PCs mit einer großen CPU), erledigen Sie die zusätzliche Übersetzungsarbeit für NAT (im Vergleich zum einfachen Weiterleiten von Paketen gemäß einer grundlegenden Routingtabelle) ) könnte die Übertragung verlangsamen. Für den Internetzugang ist dies wahrscheinlich kein Problem (Ihre Netzverbindung wird der Engpass sein), aber da Sie sich zwischen lokalen Netzwerksegmenten aufhalten, kann dies durchaus auffallen.


Punkt 4 dieses Problem sollte für eine beliebige Anzahl von NAT-Schichten gleich sein oder nicht!
Rohit Banga

Richtig, Punkt 4 ist das gleiche Problem sowohl bei NAT auf einer Ebene als auch bei NAT auf mehreren Ebenen, aber bei NAT auf mehreren Ebenen verschärft sich das Problem, welche Verbindungen unterbrochen sind (der äußere Host kennt möglicherweise nicht so viel Kontext wie der innere) und führt Diagnosen durch Dies ist schwieriger, wenn Einschränkungen bei der Portzuordnung ein Problem darstellen. Dies kann auch die Implementierung und Überwachung einer fairen Bandbreitenzuweisung und anderer Traffic-Shaping-Vorgänge verwirrender gestalten (obwohl es Möglichkeiten gibt, ist eine Vereinfachung der Netzwerktopologie normalerweise die bessere Option).
David Spillett

6

Der Leistungsverlust / die Geschwindigkeit hängt wirklich von der Qualität des verwendeten Routers ab.

Was die gute / schlechte Idee betrifft, bin ich dagegen, wenn es möglich ist, einfach Routing zu verwenden, es hängt jedoch wirklich von der Umgebung und dem ab, was Sie erreichen möchten.

Wenn auf den Computern nur einige Dinge ausgeführt werden müssen, die über Standardports gemeinsam genutzt werden, können Sie zum Router / nat-giving-Gerät gehen und eine Regel festlegen, um zuzulassen, was Sie möchten (1). Wenn Sie jedoch viele Geräte-zu-Geräte-Aufgaben ausführen, ist es viel einfacher, eine ordnungsgemäße Route zu erstellen, wobei jeder Computer eine eigene eindeutige IP-Adresse hat (2).

(1) Zum Beispiel eins zu viele - Ein Computer hat einen Webserver und Sie möchten ihn für andere freigeben - Sie würden eine Regel im Router auf Port 80 des Computers und dann auf einen beliebigen Computer aus dem externen Netzwerk (oder von innen) festlegen Wenn nat-loopback aktiviert ist, können Sie einfach zu http: //router.ip gehen und darauf zugreifen.

(2) Wenn jedoch auf jeder Maschine ein Webserver läuft oder Sie viele Dienste nutzen, wird ein Albtraum alle Regeln aufstellen (aber das ist nicht unmöglich).

Wie für Ihr Szenario - Wenn eine Abteilung 192.168.xx und die andere 192.168.yx verwendet, würde ich die Geräte durchgehen und wenn es keine Überlappungen gibt, ist es möglicherweise einfach möglich, das Subnetz von / 24 auf / 16 zu ändern (oder umgekehrt), dann ersetzen Sie die Router durch Switches / oder ähnliches und haben Sie keinen Leistungsverlust.

Es ist wirklich schwer zu helfen, ohne mehr über Ihr Netzwerk zu wissen. Es gibt nichts "Falsches" an Double-NAT, solange es richtig eingerichtet ist. Wenn Sie es jedoch nicht wirklich brauchen oder es einen sehr guten Grund dafür gibt, würde ich versuchen, wegzuwandern, wenn Sie können (persönliche Meinung).


@iamrohitbanga - Als Antwort auf Ihre Fragen (zu viel für Kommentare).

Das Vergleichen ist schwierig - Routing eignet sich gut für private Netzwerke, in denen jeder Computer auf jeden Computer zugreifen kann. Nat funktioniert gut, wird jedoch hauptsächlich für Netzwerke verwendet, die kein Routing benötigen, da Sie normalerweise eingehende Regeln / Routen manuell einrichten müssen.

Wenn Sie beispielsweise über eine Internetverbindung verfügen und NAT deaktivieren, können Sie Routen oder den Bridged-Modus manuell einrichten. Ihr Computer befindet sich direkt im Internet. Alle Ports sind zugänglich und jeder Computer kann tun, was er will.

Wenn Sie dagegen einen Router mit NAT haben, übernimmt dieser die externe IP und liefert "Nat-ed?" (Terminologie nicht sicher ...) Internet - Alle internen Maschinen haben eine IP, auf die nicht über das Internet zugegriffen werden kann. Sie können jedoch manuelle Regeln festlegen - z. B. Port 80 für eine Maschine ... Dies funktioniert sehr gut für ausgehende Verbindungen (Firewall) Wenn es die Regeln zulassen, kann es ein Albtraum sein, eingehende Regeln einzurichten, wenn Sie viele Dienste hosten ... und wenn Sie irgendetwas tun, das dynamische Ports erfordert (FTP, Windows AD usw.), kann es ein Albtraum sein.

Ich hoffe, dies hilft, wenn Sie etwas anderes wissen wollen, fragen Sie einfach.


Könnten Sie die beiden Strategien vergleichen? Das Netzwerk wird verwendet, um den Hosts den Internetzugang zu ermöglichen.
Rohit Banga

@iamrohitbanga - Aktualisierung der Antwort
William Hilsum

5

Das Hauptproblem bei NAT (im Allgemeinen und bei mehreren Ebenen im Besonderen) besteht darin, dass die Fehlerbehebung äußerst schwierig sein kann.


4

Das größte Problem mit NAT ist, wenn veraltete Netzwerksoftware die Übersetzung durchführt, wodurch viele Anwendungen verletzt werden (FTP, VoIP usw.). Moderne Firewalls / Gateways verfügen über Übersetzungen (Korrekturen in Cisco-Begriffen), die es viel einfacher machen.

Ich verstehe nicht, warum Ihr Unternehmen NAT zwischen den privaten Subnetzen verwendet. Warum nicht einfach weiterleiten?


2

Aktualisieren Sie einfach Ihr Netzwerk und Ihre Clients auf IPV6, und Sie müssen NAT nicht mehr verwenden.


1

Um den neuen zweiten Teil Ihrer Frage zu beantworten ...

Router brechen Broadcast-Domänen auf - Router leiten keine Arp-Pakete weiter, sondern verbleiben in einem Subnetz *. Ihre Windows-Dateifreigabe (ernsthaft?) Netbios-Broadcast-Verkehr verlässt das Subnetz nicht.

Mit Subnetzen:

Wenn Sie von außerhalb eines Subnetzes auf eine Windows-Freigabe zugreifen müssen, können Sie entweder direkt über die IP-Adresse darauf zugreifen oder wenn Sie einen DNS- oder WINS-Server nach Hostnamen eingerichtet haben.

Mit NAT:

Wenn Ihr NAT vom Typ PAT ist und daher keine Eins-zu-Eins-Zuordnung, müssten Sie die Portweiterleitung konfigurieren, damit dies funktioniert - dies wäre schlecht.

Wie ad naseum diskutiert wurde, ist NAT im Allgemeinen eine schlechte Sache, da es die Netzwerkfunktionalität bricht, die wir nur verwenden, weil wir müssen. Rollen Sie auf IPv6.

* Natürlich gibt es auch Rundfunkspediteure / Relais / Helfer

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.