Zusammenfassung
- RFC 5382 REQ-7 untersagt, dass verschiedene interne Endpunkte gleichzeitig dieselbe externe Adress-Port-Zuordnung für TCP verwenden.
- Solange die Gegenstellen verschieden sind, kann ein NAT sie als versteckten Schlüssel nutzen. Treffen beide internen Endpunkte auf dieselbe Gegenstelle, werden die öffentlichen Vier-Tupel identisch. Aus Verdichtung wird eine Kollision im Namensraum.
Warum MUST NOT und nicht „bei Bedarf“?
Eine Kapazitätsoption ließe sich abstufen. Ein Betreiber könnte sie aktivieren, wenn Adressen knapp sind, und den höheren Fehleranteil akzeptieren. REQ-7 ist anders formuliert. Das Verbot schützt eine Voraussetzung, auf der TCP und die Rückübersetzung beruhen: Eine sichtbare Verbindung muss einem bestimmten internen Anspruch zugeordnet werden können.
Beim Port Overloading erhalten zwei verschiedene interne Adress-Port-Paare dieselbe öffentliche Adresse und denselben Port. Geht die erste Verbindung zu Server X und die zweite zu Server Y, kann die Übersetzungstabelle X und Y in den Suchschlüssel aufnehmen. Die öffentlichen Ports scheinen effizienter genutzt.
Wählen beide denselben Server und Dienst, verschwindet die Zusatzinformation. Öffentliche Quelle, öffentliches Ziel und Protokoll sind gleich. Der entfernte Host kann die beiden Verbindungen nicht unter verschiedenen Vier-Tupeln führen, und auch der NAT besitzt keinen sichtbaren Schlüssel mehr, der die Rückpakete eindeutig trennt.
Abschnitt 7.1 der RFC beschreibt genau diese Folge: Zwei interne Endpunkte, die eine Zuordnung teilen, können keine gleichzeitigen Verbindungen zu einem gemeinsamen externen Endpunkt aufbauen. Daher ist das Verbot keine Geschmacksfrage. Die Zuordnung muss im relevanten Zeitraum einen singulären Anspruch darstellen.
Derselbe Inhaber über mehrere Ziele ist nicht mehrere Inhaber
RFC 5382 verlangt zugleich endpoint-unabhängiges Mapping. Ein internes Adress-Port-Paar soll seine externe Zuordnung behalten können, wenn es mit mehreren Zielen kommuniziert. Das ist Wiederverwendung durch denselben Inhaber.
Port Overloading überträgt die Zuordnung gleichzeitig auf weitere interne Paare. Das ist Mitinhaberschaft. Im ersten Fall ändert sich der Kommunikationspartner, nicht die Quelle. Im zweiten Fall ändert sich die Quelle, während der öffentliche Name gleich bleibt.
Die Unterscheidung ist wichtig für Produktbeschreibungen. „Mapping reuse“ kann korrekt und erwünscht sein. Ohne Angabe des Subjekts sagt die Formulierung jedoch nicht, ob ein interner Endpunkt seine Zuordnung wiederverwendet oder ob mehrere Endpunkte sie teilen. Nur Letzteres ist REQ-7s Gegenstand.
Auch Filtering liegt auf einer anderen Achse. Es legt fest, welche externen Quellen durch eine vorhandene Zuordnung zurücksenden dürfen. Es beantwortet nicht, welcher interne Empfänger gemeint ist, wenn zwei dieselbe Zuordnung besitzen. Eine bestehende BTW-Analyse behandelt Mapping und Filter bei NAT64. Hier geht es um die Integrität des Namens vor jeder Zugriffsentscheidung.
Keine Variante von Simultaneous Open
RFC 5382 schützt außerdem TCP Simultaneous Open. Zwei Peers senden gleichzeitig SYN, die Segmente kreuzen sich, und eine vollständige TCP-Zustandsmaschine kann eine Verbindung herstellen. Manche NATs verwarfen den gültigen eingehenden SYN, weil sie nur den üblichen Client-Server-Ablauf modellierten. Diese Geschichte einschließlich des Sechs-Sekunden-Fensters besitzt bereits einen eigenen BTW-Beitrag.
Beim Port Overloading rufen zwei interne Clients einen dritten, gemeinsamen Dienst. Nicht Rollen oder gekreuzte SYNs kollidieren, sondern zwei Quellansprüche, die der Übersetzer auf denselben öffentlichen Namen abgebildet hat. Ein längeres Zustandsfenster löst das nicht.
Die Beweisführung muss deshalb getrennt bleiben. Simultaneous Open verlangt Paketfolge und TCP-Zustände. REQ-7 verlangt den Allokationsbeleg: internes Paar, externes Paar, entferntes Paar, Protokoll, Zeitpunkt, Algorithmusversion und Eigentümer der Übersetzungsstate. Ein Sammelbegriff wie „NAT-Kompatibilität“ wäre zu grob, um die richtige Regel zu reparieren.
Namensraumknappheit ist sichtbar zu behandeln
IPv4-Knappheit ist kein theoretisches Problem. Carrier teilen öffentliche Adressen, Portblöcke werden geplant, Tabellenkapazität kostet Speicher und Failover-Bandbreite. Ein Anbieter, der mehr Sessions pro Adresse verspricht, adressiert einen realen wirtschaftlichen Druck.
Doch Verdichtung ist nur dann Kapazität, wenn die Identität der aufgenommenen Arbeit erhalten bleibt. Ein TCP-Flow umfasst Endpunkte, Sequenzzustand und Rückweg. Die öffentliche Adresse und der Port sind eine zeitlich begrenzte Projektion dieses Flows. Sie müssen nicht dem Kunden gehören; sie müssen während der Zuordnung eindeutig nutzbar sein.
Bei Erschöpfung kann ein NAT eine neue Verbindung ablehnen. Das ist ein negatives, aber aussagekräftiges Ergebnis. Es legt den Engpass offen und schützt bestehende Zuordnungen. Eine überladene Zuordnung kann zunächst als erfolgreiche Aufnahme erscheinen und erst beim gemeinsamen Ziel scheitern. Damit wird ein Kapazitätsproblem in ein schwer erklärbares Identitätsproblem verwandelt.
Eine belastbare Planung misst Ablehnungen, Poolbelegung, Blockfragmentierung, Haltezeiten und Erweiterungsbedarf. Sie zählt nicht jede versteckte Mehrfachbelegung als gewonnene Session. Der Namensraum hat eine semantische Kapazität, nicht nur eine numerische.
Hairpinning bestätigt die Bedeutung des sichtbaren Namens
REQ-8 verlangt TCP-Hairpinning mit externer Quelladresse und externem Quellport. Zwei interne Anwendungen, die nur die öffentlichen Zuordnungen voneinander kennen, sollen kommunizieren können. Der zurückgebogene Pfad muss die Quelle zeigen, die der Empfänger als Peer erwartet.
Das ist eine eigene Anforderung, macht aber dieselbe Abhängigkeit sichtbar. Anwendungen binden Daten an eine Gegenstelle. Der externe Name darf auf dem internen Umweg nicht willkürlich ersetzt werden. Er ist Teil der Zuordnung, nicht bloß Routingdekoration.
Port Overloading schwächt diesen Namen, weil er nur zusammen mit einem unsichtbaren entfernten Schlüssel singulär ist. Ein solcher Name kann in einer lokalen Tabelle funktionieren, aber bei Zustandsverlust, Replikationslücke oder Zielkonvergenz seine Bedeutung verlieren. Die Forderung ist nicht, ihn für immer festzuschreiben, sondern seine Aussage für die zugesagte Lebensdauer zu bewahren.
Begrenzte Autorität von Fehlern und Hilfsfunktionen
REQ-9 empfiehlt, ICMP Destination Unreachable zu übersetzen. REQ-10 untersagt, allein wegen einer ICMP-Nachricht die Zuordnung oder TCP-Verbindung zu beenden. Eine Fehlermeldung ist Evidenz über einen Pfad; sie besitzt nicht automatisch Löschautorität.
Auch Inaktivität beweist keinen Tod. Die RFC nennt Mindestzeiten, wenn der NAT die Aktivität der Endpunkte nicht feststellen kann. Ein anderer BTW-Text analysiert die Unsicherheit stiller TCP-Verbindungen. Für REQ-7 genügt die engere Folgerung: Eine noch lebende Zuordnung wird durch Ruhe nicht zu einem Port, der gleichzeitig neu vergeben werden darf.
ALGs erhöhen die Buchführungspflicht. Wenn ein NAT TCP-Sequenznummern verändert, muss es SACK korrekt behandeln. Jede verborgene Transformation muss über spätere Pakete konsistent bleiben. Port Overloading würde davor schon die Grundfrage offenlassen: Zu welchem Inhaber und Sequenzraum gehört das Paket?
In allen Fällen muss die Befugnis zum Signal passen. ICMP darf melden, ein Timer darf eine Prüfung auslösen, ein ALG darf nach dokumentierter Regel übersetzen. Keines darf die Identität der Session aus Bequemlichkeit neu definieren.
Der reproduzierbare Konformitätsnachweis
Zwei unterschiedliche interne Paare verbinden sich mit demselben kontrollierten externen Listener. Die erste Verbindung und Zuordnung bleiben aktiv, während die zweite beginnt. Die übersetzten Quellen müssen verschieden sein. Ist keine konforme Zuordnung verfügbar, muss der zweite Versuch beobachtbar scheitern. Er darf nicht unter dem Namen des ersten zugelassen werden.
Der Test wird bei Portdruck, nach Policy-Wechseln und während Failover wiederholt. Zu speichern sind internes, externes und entferntes Tupel, Protokoll, Erzeugungs-, Aktualisierungs- und Löschzeit, Allokatorversion, Knoten und State-Epoche. SYN, SYN-ACK und ACK werden damit korreliert; eine separate Anwendungstransaktion belegt die Nutzwirkung.
Für Attribution gelten Zeitgrenzen. Ein öffentliches Paar kann nur innerhalb einer bekannten Zuordnungsperiode auf einen internen Anspruch verweisen. Braucht das Design zusätzlich den entfernten Peer, muss diese Einschränkung jede Auskunft begleiten. REQ-7 verhindert bei TCP die gleichzeitige Mitinhaberschaft, die diese Auskunft besonders fragil macht.
Auch der korrekte negative Ausgang gehört in den Bericht. Eine explizite Ablehnung unter Erschöpfung beweist, dass der Namensraum geschützt wurde. Wer sie aus Erfolgsmetriken entfernt, löscht den Investitionsbedarf aus der Entscheidungsvorlage.
Quellen
- RFC 5382 als HTML
- RFC 5382 als Text
- Veröffentlichungsnachweis zu RFC 5382
- RFC 5382 im IETF Datatracker
- Dokumenthistorie von RFC 5382
- Referenzen von RFC 5382
- Errata-Suche zu RFC 5382
- RFC 7857 als HTML
- RFC 7857 als Text
- Veröffentlichungsnachweis zu RFC 7857
- RFC 7857 im IETF Datatracker
- RFC 4787: NAT-Verhalten für UDP
- RFC 6888: gemeinsame Anforderungen an Carrier-Grade NAT
- RFC 2663: Begriffe der IP-Adressübersetzung
- RFC 3022: traditionelle IP-Adressübersetzung
- RFC 4008: Management-Informationsbasis für NAT
- RFC 1122: Anforderungen an Internet-Hosts
- RFC 2018: selektive TCP-Bestätigungen
- RFC 5508: NAT-Verhalten für ICMP
- Heng Lu, Vorrang des laufenden Codes
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
