Deterministische NAT
Deterministisches NAPT – Überblick
Sie können deterministisches NAPT44 konfigurieren, um sicherzustellen, dass die ursprüngliche IPv4-Quelladresse und der ursprüngliche Port immer derselben Post-NAT-IPv4-Adresse und demselben Portbereich zugeordnet sind und dass die umgekehrte Zuordnung einer bestimmten übersetzten externen IPv4-Adresse und eines bestimmten Ports immer derselben internen IPv4-Adresse zugeordnet wird. Sie können deterministisches NAPT64 konfigurieren, um sicherzustellen, dass die ursprüngliche IPv6-Quelladresse und der ursprüngliche Port immer derselben Post-NAT-IPv4-Adresse und demselben Portbereich zugeordnet sind und dass die umgekehrte Zuordnung einer bestimmten übersetzten externen IPv4-Adresse und eines bestimmten Ports immer derselben internen IPv6-Adresse zugeordnet wird. Deterministisches NAPT verwendet eine algorithmusbasierte Zuweisung von Blöcken von Zielports.
Deterministisches NAPT44 wird auf Routern der MX-Serie mit MS-DPCs und auf Routern der M Series mit MS-100-, MS-400- und MS-500-MultiServices-PICS unterstützt. Deterministisches NAPT 44 wird für MS-MPCs und MS-MICs ab Junos OS Version 17.3R1, in Junos OS Version 14.2R7 und höher 14.2 sowie in Junos OS Version 15.1R3 und höher 15.1 unterstützt. Ab Junos OS Version 17.4R1 wird deterministisches NAPT64 auf MS-MPC und MS-MIC unterstützt.
Wenn die Quelladresse in der from Klausel einer deterministischen NAPT-Regel nicht das Präfix /32 hat, werden die Netzwerk- und Broadcast-Adressen im Quelladressbereich nicht übersetzt, es sei denn, Sie konfigurieren include-boundary-addresses.
Ausführliche Informationen zum Konfigurieren von deterministischem NAPT finden Sie unter Konfigurieren von deterministischem NAPT
- Vorteile von deterministischem NAPT
- Verständnis von deterministischen NAPT-Algorithmen
- Deterministische NAPT-Einschränkungen
Vorteile von deterministischem NAPT
Die Protokollierung der Adressübersetzung entfällt, da eine IP-Adresse immer derselben externen IP-Adresse und demselben Portbereich zugeordnet wird und die umgekehrte Zuordnung einer bestimmten übersetzten externen IP-Adresse und eines bestimmten Ports immer derselben internen IP-Adresse zugeordnet wird.
Verständnis von deterministischen NAPT-Algorithmen
Die Effektivität Ihrer Implementierung von deterministischem NAPT hängt von Ihrer Analyse der Anforderungen Ihrer Anwender ab. Die von Ihnen angegebene Blockgröße gibt an, wie viele Ports für jede eingehende Anwenderadresse aus dem Bereich in der Klausel verfügbar gemacht werden, die from in der anwendbaren NAT-Regel angegeben ist. Der Zuordnungsalgorithmus berechnet einen Offset-Wert, um die ausgehende IP-Adresse und den Port zu bestimmen. Ein umgekehrter Algorithmus wird verwendet, um die ursprüngliche Adresse des Anwenders abzuleiten.
Um Abonnenten ohne Verwendung von Protokollen zu verfolgen, muss ein ISP einen umgekehrten Algorithmus verwenden, um eine Anwender (Quell-)Adressen von einer übersetzten Adresse abzuleiten.
Die folgenden Variablen werden bei der Vorwärtsberechnung (IP-Adresse des privaten Anwenders zur öffentlichen IP-Adresse) und der Rückwärtsberechnung (öffentliche IP-Adresse zur IP-Adresse des privaten Anwenders) verwendet:
Pr_Prefix: Jede IPv4-Anwender Adresse vor NAT.
Pr_Port – Jeder Port vor NAT Protokoll.
Block_Size: Anzahl der Ports, die für jede Pr_Prefix verfügbar sind.
Wenn
block-sizeals Null konfiguriert ist, wird die Methode zum Berechnen der Blockgröße wie folgt berechnet:block-size = int(64512/ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)])
Dabei ist 64512 der maximal verfügbare Portbereich pro öffentlicher IP-Adresse.
Base_PR_Prefix: Erste verwendbare IPv4-Anwender Adresse vor NAT in einer
fromKlausel der NAT Regel.Base_PU_Prefix: Erste verwendbare IPv4-Anwender Adresse nach NAT, die im NAT-Pool konfiguriert ist.
Pu_Port_Range_Start – Erster verwendbarer Post-NAT-Port. Wir schreiben die Nummer 1024.
Pr_Offset: Der Offset der IP-Adresse vor der NAT, die von der ersten verwendbaren IPv4-Anwender Adresse vor NAT in einer
fromKlausel der NAT Regel übersetzt wird. PR_Offset = Pr_Prefix – Base_Pr_Prefix.PR_Port_Offset: Offset der IP-Adresse vor NAT multipliziert mit der Blockgröße. PR_Port_Offset = Pr_Offset * Block_Size.
Pu_Prefix: Post-NAT Adresse für eine bestimmte Pr_Prefix.
Pu_Start_Port – Startport nach NAT für einen Datenstrom von einem bestimmten Pr_Prefix
Pu_Actual_Port – Anschluss nach NAT bei einem Reverse-Flow.
Nr_Addr_PR_Prefix — Anzahl der verwendbaren IPv4-Anwender Adressen vor NAT in einer
fromKlausel der NAT Regel.Nr_Addr_PU_Prefix — Anzahl der im NAT-Pool konfigurierten IPv4-Adressen nach NAT.
Rounded_Port_Range_Per_IP — Anzahl der verfügbaren Ports für jede IP-Adresse nach NAT. Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size.
Pu_Offset: Offset der IP-Adresse nach NAT von der ersten verwendbaren Post-NAT Adresse. Pu_Offset = Pu_Prefix – Base_Pu_Prefix.
Pu_Port_Offset— Offset des Post-NAT-Ports von 1024 addiert zum Produkt aus dem Offset der Post-NAT-IP-Adresse und der Anzahl der für jede Post-NAT IP-Adresse verfügbaren Ports. Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start).
Algorithmusverwendung: Nehmen Sie die folgende Konfiguration an:
services {
nat {
pool src-pool {
address-range low 32.32.32.1 high 32.32.32.254;
port {
automatic {
random-allocation;
}
deterministic-block-allocation {
block-size 249;
}
}
}
rule det-nat {
match-direction input;
term t1 {
from {
source-address {
10.1.0.0/16;
}
}
then {
translated {
source-pool src-pool;
translation-type {
deterministic-napt44;
}
}
}
}
Vorwärts-Translation
Pr_Offset = Pr_Prefix – Base_Pr_Prefix
Pr_Port_Offset = Pr_Offset * Block_Size
Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size
Pu_Prefix = Base_Public_Prefix + Etage (Pr_Port_Offset / Rounded_Port_Range_Per_IP)
Pu_Start_Port = Pu_Port_Range_Start + (Pr_Port_Offset % Rounded_Port_Range_Per_IP)
Verwenden der Beispielkonfiguration und unter der Annahme eines Anwender-Datenstroms aus 10.1.1.250:5000:
Pr_Offset = 10.1.1.250 – 10.1.0.1 = 505
Pr_Port_Offset = 505 * 249 = 125.745
Rounded_Port_Range_Per_IP = ceil[(65, 533/254)] * 249 = 259 * 249 = 64.491
Pu_Prefix = 32.32.32.1 + Untergrenze (125.745 /64.491) = 32.32.32.1 +1 = 32.32.32.2
Pu_Start_Port = 1.024 + (125.745 % 64.491) = 62278
10.1.1.250 wird mit 32.32.32.2 übersetzt.
Der Starthafen ist 62278. Basierend auf der konfigurierten Blockgröße stehen dem Anwender 249 Ports zur Verfügung. Der verfügbare Portbereich umfasst die Ports 62278 bis 62526 (einschließlich).
Der spezifische Fluss 10.1.1.250:5000 weist zufällig alle Ports in seinem Bereich zu, da eine zufällige Zuweisung angegeben wurde.
Umgekehrte Übersetzung
Pu_Offset = Pu_Prefix – Base_Pu_Prefix
Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)
Subscriber_IP = Base_Pr_Prefix + Etage (Pu_Port_Offset / Block_Size)
Die umgekehrte Umrechnung wird wie folgt ermittelt. Angenommen, ein Datenstrom kehrt zu 32.32.32.2:62278 zurück.
Pu_Offset = 32.32.32.2 – 32.32.32.1 = 1
Pu_Port_Offset = (1 * 64.491) + (62.280 - 1024) = 125.747
Subscriber_IP = 10.1.0.1 + floor(125.747 / 249) = 10.1.0.1 + 505 = 10.1.1.250
Hinweis:Bei der umgekehrten Übersetzung kann nur die ursprüngliche private IP-Adresse abgeleitet werden, nicht aber der ursprünglich verwendete Port. Dies ist für die Anforderungen der Strafverfolgung ausreichend granular.
Wenn Sie deterministisches NAPT konfiguriert haben, können Sie die Befehle und show services nat deterministic-nat nat-port-block verwenden, um die show services nat deterministic-nat internal-host Vorwärts- und Rückwärtszuordnung anzuzeigen. Die Zuordnungen ändern sich jedoch, wenn Sie die Blockgröße für die deterministische Portblockierung oder die from Klausel für Ihre NAT-Regel neu konfigurieren. Um historische Informationen zu Zuordnungen bereitzustellen, wird empfohlen, Skripts zu schreiben, die bestimmte Zuordnungen für frühere Konfigurationen anzeigen können.
Deterministische NAPT-Einschränkungen
Wenn Sie deterministisches NAPT konfigurieren, müssen Sie die folgenden Einschränkungen beachten. Ein Verstoß gegen eine Einschränkung führt zu einem Commit-Fehler. Die Einschränkungen und ihre Fehlermeldungen sind in Tabelle 1 dargestellt.
Einschränkung |
Fehlermeldung |
|---|---|
Die Gesamtzahl der deterministischen NAT-Blöcke muss größer oder gleich den |
Die Kombination aus Adressen und Portblöcken im NAT-Pool ist kleiner als die Anzahl der Adressen in der Klausel "von". |
IPv6-Adressen sollten nicht in deterministischen NAT-Pool/From-Klauseln verwendet werden. |
Ungültige IP-Adresse im Pool p1 mit Übersetzungstyp deterministic-napt44 ODER Es ist bereits ein Bereich mit v4-Adressbereich konfiguriert |
Die |
Mit translation-type deterministic-napt44 sollte dieselbe Absenderadresse/derselbe Absenderbereich konfiguriert werden, wenn der Pool von mehreren Regeln oder Begriffen gemeinsam genutzt wird |
Die |
Mit translation-type deterministic-napt44 sollte mindestens eine Nicht-Von-Adresse/-Bereich konfiguriert werden. Fehler: Fehler beim Auschecken der Konfiguration |
Es sollte keine Adressüberschneidung zwischen |
überlappende Adresse, in der 'from'-Klausel zwischen 'except'-Einträgen |
Adressen in einem NAT-Pool, der für deterministisches NAPT verwendet wird, sollten sich nicht mit den Adressen in einem anderen NAT-Pool überschneiden. |
NAT Pool det-nat-pool1 überschneidet sich mit det-nat-pool, der vom Dienstsatz verwendet wird sset_det-NAT-Fehler: Fehler beim Auschecken der Konfiguration |
Ein deterministischer NAT-Pool kann nicht mit anderen Übersetzungstypen verwendet werden. Darüber hinaus kann ein deterministischer NAT-Pool nicht sowohl in deterministischen NAPT44- als auch in deterministischen NAPT64-NAT-Regeln verwendet werden. |
Deterministischer NAT-Pool kann nicht mit anderen Übersetzungstypen verwendet werden |
Deterministisches NAPT44 muss einen Quellpool mit einer Konfiguration für deterministische Portblöcke verwenden. |
Deterministisches NAPT44 muss einen Quellpool mit deterministic-port-block-allocation konfigurieren |
Wenn |
Adresszuweisungs-Round-Robin ist bei Translation-Type deterministic-napt44 nicht erforderlich |
Die Gesamtzahl der IP-Adressen, die einem deterministischen NAT-Pool zugewiesen sind, sollte kleiner oder gleich 224 (16777216) sein. |
Die Anzahl der Adressen im Pool mit deterministic-napt44-Übersetzung ist auf maximal 16777216(2^24) begrenzt. |
Konfigurieren von deterministischem NAPT
Deterministisches NAPT44 wird auf Routern der MX-Serie mit MS-DPCs und auf Routern der M Series mit MS-100-, MS-400- und MS-500-MultiServices-PICS unterstützt. Deterministisches NAPT44 wird für MS-MPCs und MS-MICs ab Junos OS Version 17.3R1, in Junos OS Version 14.2R7 und höher 14.2 sowie in Junos OS Version 15.1R3 und höher 15.1 unterstützt. Ab Junos OS Version 17.4R1 wird deterministisches NAPT64 auf MS-MPC und MS-MIC unterstützt.
Führen Sie die folgenden Schritte aus, um deterministisches NAPT zu konfigurieren:
- Konfigurieren des NAT-Pools für deterministisches NAPT
- Konfigurieren der NAT-Regel für deterministisches NAPT
- Konfigurieren des Service-Sets für deterministisches NAT
Konfigurieren des NAT-Pools für deterministisches NAPT
So konfigurieren Sie den NAT-Pool für deterministisches NAPT:
Siehe auch
Konfigurieren der NAT-Regel für deterministisches NAPT
So konfigurieren Sie die NAT-Regel für deterministisches NAPT:
Konfigurieren des Service-Sets für deterministisches NAT
So konfigurieren Sie das Service-Set für deterministisches NAPT:
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie den Feature-Explorer , um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.
sequential Sie die sequenzielle Zuweisung von Ports konfigurieren können.