Könnte IPv6 NAT- / Portnummern überflüssig machen?


8

Soweit ich weiß, könnte jeder Prozess seine eigene IP-Adresse erhalten, wobei jede Menge IPs übrig bleiben.

Was wären die Nachteile?

Im Wesentlichen würde Ihr Host ein Router werden und jeder Prozess ist ein Host (im aktuellen System).


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Ron Maupin

Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:


13

IPv6 hat keinen NAT-Standard wie IPv4 (NAT unterbricht die End-to-End-Prämisse von IP, und IPv6 wurde entwickelt, um dies wiederherzustellen). Es gibt einen experimentellen RFC für IPv6-NAT, aber es handelt sich um einen Eins-zu-Eins-NAT auf Netzwerkebene und nicht um einen IPv4-NAPT, der auch Portadressen übersetzt, und der experimentelle IPv6-NAT-RFC verbietet dies ausdrücklich .

Wenn Sie an die verschiedenen Transportprotokolle denken, verwenden TCP und UDP Ports, die wirklich Adressen für diese Transportprotokolle sind. Andere Transportprotokolle verwenden möglicherweise eine andere Adressierung, und einige verwenden keine Adressen.

Ihre Idee würde möglicherweise entweder mit TCP oder UDP funktionieren, aber nur mit einem und wahrscheinlich nicht mit anderen Transportprotokollen. IPv6 ist wie UDP verbindungslos, funktioniert also möglicherweise mit UDP, aber TCP ist verbindungsorientiert und führt eine Menge Arbeit aus, die sonst von der Anwendung ausgeführt werden müsste.

Es gibt Anforderungen sowohl an verbindungslose als auch an verbindungsorientierte Transportprotokolle. Der Vorgänger von IPv4 hatte tatsächlich das Äquivalent von IP und TCP als ein einziges Protokoll, aber es wurde notwendig, sie zu teilen, da einige Transportprotokolle verbindungslos sein müssen.


9

Ein Nachteil ist, dass die oberen Schichten IP-Adressen kennen müssen, was gegen das Schichtungsprinzip verstößt. Was würde dann passieren, wenn Sie zu IPv4 wechseln würden? Oder etwas anderes?

Wie würden die oberen Schichten der Netzwerkschicht mitteilen, dass sie auf eine IP-Adresse reagieren soll? Angenommen, eine neue Anwendung wird gestartet. Woher weiß die Netzwerkschicht, dass es eine neue Adresse gibt, auf die sie antworten kann?

IPv6 könnte NAT theoretisch eliminieren, aber es gibt immer noch Gründe, warum eine Organisation ihre internen IP-Adressen verbergen möchte.


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Ron Maupin

6

Die Notwendigkeit von NATs als Möglichkeit, öffentliche IP-Adressen gemeinsam zu nutzen, wird mit IPv6 wegfallen, aber NATs können aus Sicherheitsgründen noch einige Verwendungszwecke haben.

Das Entfernen von Ports könnte theoretisch möglich sein, wäre aber ein großes Unterfangen. Selbst wenn Sie die letzten 16 Bits der IP-Adresse für Portnummer + 1 Bit für das TCP / UDP-Flag reservieren, müssten Sie die gesamte Software überarbeiten, die das Paktet von der 3. Schicht in die 4. entpackt, um die Bits von IP zu verwenden Adresse für Portnummer und Protokoll anstelle der Daten im Paket.

Und das ist die "einfache" Lösung, wenn Sie nur die Portnubmer in die IP-Adresse einfügen. Wenn Sie die Portnummern entfernen oder ganz entfernen möchten, müssen Sie jede Software und Bibliothek ändern, die Ports verwendet, sei es Server, Clients oder Firewalls usw. usw. Grundsätzlich wäre es unmöglich, dass jede Software mit der Aufschrift "Server an Port X öffnen", die beim Wechsel von IPv4 zu IPv6 einwandfrei funktioniert, sofort unterbrochen wird, wenn Sie die Ports vollständig entfernen.

Es ist unendlich einfacher, nur die Ports zu behalten.


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Ron Maupin

4

Es wäre nicht IPv6. Ein solches System ist natürlich machbar, aber es wäre eine Variation des IP-Protokolls. Heutzutage bestehen IPs aus zwei Teilen: einer Host-ID und einer Service-ID.

Bei Ihrem Schema handelt es sich im Wesentlichen um einen Service-Deskriptor. Dies würde Änderungen am DNS erfordern (z. B. wie unterscheidet man zwischen dem SMTP-Server für example.com und dem www-Server für example.com?)

Ich kann nicht sehen, wie vorteilhaft es gegenüber dem heutigen System mit Host: Service-Deskriptoren wäre. Es würde nichts erreichen, was heute nicht möglich ist.


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Ron Maupin

0

Wie andere bereits gesagt haben, ist es erforderlich, Portnummern zu haben, auch wenn diese in der IP-Adresse des Dienstes "codiert" werden.

Einige Anwendungen benötigen mehr als eine Portnummer. Beispielsweise benötigen die meisten Webserver die Ports 80 und 443 (und möglicherweise einen anderen Port für Websockets oder was auch immer). Ein solches System würde drei IP-Adressen mit codierten Ports benötigen. Obwohl wir viele IPs haben, würde dies (derzeit) bedeuten, dass eine Konfiguration auf Systemebene erforderlich wäre, um diese drei Portnummern zu unterstützen. Die Verwendung einer separaten Portnummer bedeutet, dass die Apps einfach gestartet und die Ports verwendet werden können, ohne dass der Systemadministrator zuerst einige Konfigurationsarbeiten ausführen muss. Wie andere gesagt haben - es ist einfach einfacher, eine Portnummer zu verwenden.

Was NAT betrifft, sollte IPv6 in fast allen Fällen die Notwendigkeit von NAT beseitigen. Einige Fälle bleiben jedoch bestehen, so dass es wahrscheinlich nicht vollständig verschwindet, aber die weit verbreitete Verwendung wird wahrscheinlich erheblich abnehmen.


Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Ron Maupin

0

IP-Adressen und Ports führen, obwohl normalerweise zusammen gesehen, sehr unterschiedliche Aufgaben aus. IP-Adressen werden verwendet, um den Datenverkehr speziell an Ihren Computer weiterzuleiten, und Portnummern werden von Anwendungen verwendet.

Eine sehr gute Analogie ist das Senden von Post an ein Wohnhaus. Die Adresse des Gebäudes würde einer IP-Adresse entsprechen und die Gerätenummern würden einer Portnummer entsprechen. Für diese Analogie sagen wir, die Adresse des Gebäudes lautet 127 Home Ave. Angenommen, Sie wollten einen Brief an Henry TT Peterson senden, also senden Sie einen Brief an das Gebäude, er erhält ihn nicht, weil er eine weitere Anweisung zu seiner Wohnung benötigt , Wohnung 80.

Theoretisch könnte die IPv6-Adresse sowohl die IPv4-Adressen als auch die Portnummern ersetzen. Dies verstößt jedoch gegen etablierte Präzedenzfälle der Vernetzung und es gibt einige Hauptnachteile:

  • Besiegt genau den Zweck, den IPv6 zur Linderung geschaffen hat (Bedenken, dass die Welt keine IP-Adressen mehr hat)
  • Routing-interne Routing-Tabellen für Router und Switches würden exponentiell größer und bieten keinen Vorteil ( viele Adressen werden an denselben physischen Computer weitergeleitet ).
  • Jede Anwendung auf jedem Computer benötigt eine eindeutige Adresse, und obwohl IPv6 viele, viele Male mehr Adressen bietet (2 ^ 128 vs 2 ^ 32), werden wir ziemlich schnell ausgehen und müssen dann IPv8, dann IPv10, dann IPv12 erstellen wird eine exponentielle Kurve fahren und das wird so ziemlich keine lustige Zeit.

Was NAT betrifft, wurde dies aus zwei Gründen geschaffen. Es gab bereits Bedenken, dass der Welt die öffentlichen IP-Adressen ausgehen (oder ausgehen würden), was massiv gemildert wurde, indem Organisationen und sogar Heimnetzwerke eine unglaubliche Menge zugelassen wurden von IP-Adressen, die intern verwendet werden können und wichtige Maschinen vor der Welt "verbergen" können (z. B. Ihre Datenbank mit vertraulichen Informationen oder der Laptop des CEO)

Ich hoffe, diese Erklärung war hilfreich; Sie sehen, sowohl NAT- als auch Portnummern sind eine gute Sache . Wir möchten sie nicht durch IPv6 ersetzen, da dies ein großer Rückschritt ist, wenn wir sie tatsächlich erweitern oder durch etwas noch Besseres ersetzen möchten


1
1. "Besiegt genau den Zweck von IPv6" - Nein, Ihr Computer verfügt wahrscheinlich bereits über mehrere IPv6-Adressen ohne Probleme. Für ein typisches Heimnetzwerk sind mindestens 2 ^ 64 Adressen reserviert. "Routing-Tabellen würden größer werden" - Nein, das würden sie nicht. Es gibt nur einen Routing-Tabelleneintrag für Ihr gesamtes Netzwerk. (Und wenn Sie von außerhalb Ihres ISP schauen, gibt es nur einen Eintrag für Ihren gesamten ISP.) Sie unterschätzen wirklich, wie groß 2 ^ 128 ist. Angenommen, Sie haben die letzten 16 Bits als Portnummer behandelt (was wahrscheinlich nicht der Fall ist). Sie haben immer noch 2 ^ 112 Computeradressen.
user253751

(In Wirklichkeit verwenden die meisten Computer auch nicht alle 65536-Ports. Ich schätze, es sind weniger als 100 99% der Zeit)
user253751

@immibis Sie deckten alles ab, was ich dachte, als ich den Beitrag
las
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.