RNAT
Bei Reverse Network Address Translation (RNAT) ersetzt die NetScaler-Appliance die Quell-IP-Adressen in den von den Servern generierten Paketen durch öffentliche NAT-IP-Adressen. Standardmäßig verwendet die Appliance eine SNIP-Adresse als NAT-IP-Adresse. Sie können die Appliance auch so konfigurieren, dass sie für jedes Subnetz eine eindeutige NAT-IP-Adresse verwendet. Sie können RNAT auch mithilfe von Zugriffssteuerungslisten (Access Control Lists, ACLs) konfigurieren. Die Modi Quell-IP (USIP) verwenden, Subnetz-IP verwenden (USNIP) und Link Load Balancing (LLB) wirken sich auf den Betrieb von RNAT aus. Sie können Statistiken anzeigen, um RNAT zu überwachen.
Hinweis: Der kurzlebige Portbereich für RNAT auf der NetScaler-Appliance ist 1024-65535.
Sie können entweder eine Netzwerkadresse oder eine erweiterte ACL als Bedingung für einen RNAT-Eintrag verwenden:
-
Verwenden einer Netzwerkadresse. Wenn Sie eine Netzwerkadresse verwenden, wird die RNAT-Verarbeitung für alle Pakete ausgeführt, die aus dem angegebenen Netzwerk kommen.
-
Verwenden erweiterter ACLs. Wenn Sie ACLs verwenden, wird die RNAT-Verarbeitung für alle Pakete durchgeführt, die den ACLs entsprechen. Um die NetScaler-Appliance so zu konfigurieren, dass sie eine eindeutige IP-Adresse für Datenverkehr verwendet, der einer ACL entspricht, müssen Sie die folgenden drei Aufgaben ausführen:
- Konfigurieren Sie die ACL.
- Konfigurieren Sie RNAT, um die Quell-IP-Adresse und den Zielport zu ändern.
- Wenden Sie die ACL an.
Das folgende Diagramm zeigt, dass RNAT mit einer ACL konfiguriert ist.
Abbildung 1. RNAT mit einer ACL
Sie haben die folgenden grundlegenden Optionen für den Typ der NAT-IP-Adresse:
-
Verwenden eines SNIP als NAT-IP-Adresse. Wenn Sie ein SNIP als NAT-IP-Adresse verwenden, ersetzt die NetScaler-Appliance die Quell-IP-Adressen der servergenerierten Pakete durch eine SNIP. Daher muss die SNIP-Adresse eine öffentliche IP-Adresse sein. Wenn der Modus „Subnetz-IP verwenden“ (USNIP) aktiviert ist, kann der NetScaler eine Subnetz-IP-Adresse (SNIP) als NAT-IP-Adresse verwenden.
-
Verwendung einer eindeutigen IP-Adresse als NAT-IP-Adresse. Wenn Sie eine eindeutige IP-Adresse als NAT-IP-Adresse verwenden, ersetzt die NetScaler-Appliance die Quell-IP-Adressen der servergenerierten Pakete durch die angegebene eindeutige IP-Adresse. Bei der eindeutigen IP-Adresse muss es sich um eine öffentliche Netscaler-eigene IP-Adresse handeln. Wenn mehrere NAT-IP-Adressen für ein Subnetz konfiguriert sind, verwendet die NAT-IP-Auswahl den Round-Robin-Algorithmus.
Diese Konfiguration ist in der folgenden Abbildung dargestellt.
Abbildung 2. Verwenden einer eindeutigen IP-Adresse als NAT-IP-Adresse
Voraussetzungen
Beachten Sie vor der Konfiguration einer RNAT-Regel die folgenden Punkte:
-
Wenn RNAT und Use Source IP (USIP) beide auf der NetScaler-Appliance konfiguriert sind, hat RNAT Vorrang. Mit anderen Worten, die Quell-IP-Adresse der Pakete, die einer RNAT-Regel entspricht, wird entsprechend der Einstellung in der RNAT-Regel ersetzt.
-
In einer Topologie, in der die NetScaler-Appliance sowohl Link Load Balancing (LLB) als auch RNAT für den vom Server stammenden Datenverkehr durchführt, wählt die Appliance die Quell-IP-Adresse auf der Grundlage des Routers aus. Die LLB-Konfiguration bestimmt die Auswahl des Routers. Weitere Informationen zu LLB finden Sie unter Link-Lastenausgleich.
RNAT konfigurieren
Die folgenden Anweisungen enthalten separate Befehlszeilenverfahren zum Erstellen von RNAT-Einträgen, die unterschiedliche Bedingungen und verschiedene Arten von NAT-IP-Adressen verwenden. In der GUI können alle Varianten im selben Dialogfeld konfiguriert werden, sodass es nur ein Verfahren für GUI-Benutzer gibt.
CLI-Verfahren
Um eine RNAT-Regel mit der CLI zu erstellen:
Geben Sie an der Eingabeaufforderung Folgendes ein, um die Regel zu erstellen und die Konfiguration zu überprüfen:
add rnat <name> (<network> | (<aclname> [-redirectPort <port>]))
bind rnat <name> <natIP>@ …
show rnat
So ändern oder entfernen Sie eine RNAT-Regel mithilfe der CLI:
-
Um eine RNAT-Regel zu ändern:
set rnat <name> (<aclname> [-redirectPort <port>])
-
Um eine RNAT-Regel zu entfernen, geben Sie den Befehl ein.
rm rnat <name>
Verwenden Sie den folgenden Befehl, um die Konfiguration zu überprüfen:
show rnat
Beispiele:
A network address as the condition and a SNIP address as the NAT IP address:
> add rnat RNAT-1 192.168.1.0 255.255.255.0
Done
A network address as the condition and a unique IP address as the NAT IP address:
> add rnat RNAT-2 192.168.1.0 255.255.255.0
Done
> bind rnat RNAT-2 -natip 10.102.29.50
Done
If instead of a single NAT IP address you specify a range, RNAT entries are created with all the NetScaler-owned IP addresses, except the NSIP, that fall within the range specified:
> add rnat RNAT-3 192.168.1.0 255.255.255.0
Done
> bind rnat RNAT-3 -natip 10.102.29.[50-110]
Done
An ACL as the condition and a SNIP address as the NAT IP address:
> add rnat RNAT-4 acl1
Done
An ACL as a condition and a unique IP address as the NAT IP address:
> add rnat RNAT-4 acl1
Done
> bind rnat RNAT-4 -natip 10.102.29.50
Done
If instead of a single NAT IP address you specify a range, RNAT entries are created with all the NetScaler-owned IP addresses, except the NSIP, that fall within the range specified:
> add rnat RNAT-5 acl1
Done
> bind rnat RNAT-5 -natip 10.102.29.[50-70]
Done
<!--NeedCopy-->
GUI-Verfahren
Um einen RNAT-Eintrag mit der GUI zu erstellen:
Navigieren Sie zu System > Netzwerk > NATs, klicken Sie auf die Registerkarte RNAT und fügen Sie eine neue RNAT-Regel hinzu oder bearbeiten Sie eine bestehende Regel.
RNAT überwachen
Sie können RNAT-Statistiken anzeigen, um Probleme im Zusammenhang mit der IP-Adressübersetzung zu beheben.
In der folgenden Tabelle werden die Statistiken beschrieben, die mit RNAT und RNAT IP verknüpft sind.
Statistik | Beschreibung |
---|---|
Empfangene Byte | Während RNAT-Sitzungen empfangene Byte |
Gesendete Bytes | Während RNAT-Sitzungen gesendete Byte |
Empfangene Pakete | Während RNAT-Sitzungen empfangene Pakete |
Gesendete Pakete | Während RNAT-Sitzungen gesendete Pakete |
Syn wurde gesendet | Verbindungsanfragen, die während RNAT-Sitzungen gesendet wurden |
Aktuelle Sitzungen | Derzeit aktive RNAT-Sitzungen |
Um RNAT-Statistiken mit der CLI anzuzeigen:
Geben Sie in der Befehlszeile Folgendes ein:
- stat rnat
Beispiel:
> stat rnat
RNAT summary
Rate (/s) Total
Bytes Received 0 0
Bytes Sent 0 0
Packets Received 0 0
Packets Sent 0 0
Syn Sent 0 0
Current RNAT sessions -- 0
Done
>
<!--NeedCopy-->
Um RNAT mithilfe der GUI zu überwachen:
Navigieren Sie zuSystem>Netzwerk>NATs, klicken Sie auf die RegisterkarteRNATund dann auf Statistiken.
RNAT6 konfigurieren
RNAT-Regeln (Reverse Network Address Translation) für IPv6-Pakete werden als RNAT6 bezeichnet. Wenn ein von einem Server generiertes IPv6-Paket die in der RNAT6-Regel angegebenen Bedingungen erfüllt, ersetzt die Appliance die Quell-IPv6-Adresse des IPv6-Pakets durch eine konfigurierte NAT-IPv6-Adresse, bevor sie es an das Ziel weiterleitet. Die NAT-IPv6-Adresse ist eine der NetScaler-eigenen SNIP6- oder VIP6-Adressen.
Bei der Konfiguration einer RNAT6-Regel können Sie entweder ein IPv6-Präfix oder eine ACL6 als Bedingung angeben:
- Verwenden einer IPv6-Netzwerkadresse. Wenn Sie ein IPv6-Präfix verwenden, führt die Appliance die RNAT-Verarbeitung für die IPv6-Pakete durch, deren IPv6-Adresse mit dem Präfix übereinstimmt.
- Verwendung von ACL6s. Wenn Sie eine ACL6 verwenden, führt die Appliance eine RNAT-Verarbeitung für die IPv6-Pakete durch, die den in der ACL6 angegebenen Bedingungen entsprechen.
Sie haben eine der folgenden Optionen, um die NAT-IP-Adresse festzulegen:
-
Geben Sie einen Satz von NetScaler-eigenen SNIP6- und VIP6-Adressen für eine RNAT6-Regel an. Die NetScaler-Appliance verwendet eine der IPv6-Adressen aus diesem Satz als NAT-IP-Adresse für jede Sitzung. Die Auswahl basiert auf dem Round-Robin-Algorithmus und erfolgt für jede Sitzung.
-
Geben Sie keine NetScaler-eigene SNIP6- oder VIP6-Adresse für eine RNAT6-Regel an. Die NetScaler-Appliance verwendet eine beliebige der NetScaler-eigenen SNIP6- oder VIP6-Adressen als NAT-IP-Adresse. Die Auswahl basiert auf dem Next-Hop-Netzwerk, für das ein IPv6-Paket bestimmt ist, das der RNAT-Regel entspricht.
CLI-Verfahren
Um eine RNAT6-Regel mit der CLI zu erstellen:
Geben Sie an der Eingabeaufforderung Folgendes ein, um die Regel zu erstellen und die Konfiguration zu überprüfen:
- add rnat6 <name> (<network> | (<acl6name> [-**redirectPort** \<port>]))
- bind rnat6 <name> <natIP6>@ …
- show rnat6
So ändern oder entfernen Sie eine RNAT6-Regel mithilfe der CLI:
- Um eine RNAT6-Regel zu ändern, deren Bedingung ACL6 ist, geben Sie den Befehl set rnat6 <name> ein, gefolgt von einem neuen Wert für den Parameter redirectPort.
- Um eine RNAT6-Regel zu entfernen, geben Sie den Befehl clear rnat6 <name> ein.
GUI-Verfahren
So konfigurieren Sie eine RNAT6-Regel mithilfe der GUI:
Navigieren Sie zu System > Netzwerk > NATs, klicken Sie auf die Registerkarte RNAT6 und fügen Sie eine neue RNAT6-Regel hinzu oder bearbeiten Sie eine bestehende Regel.
RNAT6 überwachen
Sie können Statistiken zur RNAT6-Funktion anzeigen, um die Leistung zu überwachen oder Probleme im Zusammenhang mit der RNAT6-Funktion zu beheben. Sie können eine Zusammenfassung der Statistiken der RNAT6-Regeln oder einer bestimmten RNAT6-Regel anzeigen. Die statistischen Zähler geben Ereignisse seit dem letzten Neustart der NetScaler-Appliance wieder. Alle diese Zähler werden auf 0 zurückgesetzt, wenn die NetScaler-Appliance neu gestartet wird.
Im Folgenden sind einige der Statistikzähler aufgeführt, die mit der RNAT6-Funktion verknüpft sind:
- Empfangene Byte — Gesamtzahl der während RNAT6-Sitzungen empfangenen Byte.
- Gesendete Byte — Gesamtzahl der während RNAT6-Sitzungen gesendeten Byte.
- Empfangene Pakete — Gesamtzahl der während RNAT6-Sitzungen empfangenen Pakete.
- Gesendete Pakete — Gesamtzahl der Pakete, die während RNAT6-Sitzungen gesendet wurden.
- Syn sent — Gesamtzahl der Verbindungsanfragen, die während RNAT6-Sitzungen gesendet wurden
- Aktuelle Sitzungen - Derzeit aktive RNAT6-Sitzungen
Um mit der CLI eine zusammengefasste Statistik aller RNAT6-Regeln anzuzeigen:
Geben Sie in der Befehlszeile Folgendes ein:
- stat rnat6
Um Statistiken für eine angegebene RNAT6-Regel mithilfe der CLI anzuzeigen:
Geben Sie in der Befehlszeile Folgendes ein:
- stat rnat6 [\<rnat6 rule name>]
So zeigen Sie RNAT6-Statistiken mit der GUI an:
Navigieren Sie zu System > Netzwerk > NATs, klicken Sie auf die Registerkarte RNAT6 und dann auf Statistiken.
> stat rnat6
RNAT6 summary
Rate (/s) Total
Bytes Received 178 20644
Bytes Sent 178 20644
Packets Received 5 401
Packets Sent 5 401
Syn Sent 0 2
Current RNAT6 sessions -- 1
Done
<!--NeedCopy-->
Startzeit und Gründe für Verbindungsabbruch in RNAT-Logeinträgen protokollieren
Zur Diagnose oder Behebung von Problemen im Zusammenhang mit RNAT protokolliert die NetScaler-Appliance RNAT-Sitzungen, wenn sie geschlossen werden.
Eine Protokollnachricht für eine RNAT-Sitzung besteht aus den folgenden Informationen:
- NetScaler-eigene IP-Adresse (NSIP-Adresse oder SNIP-Adresse), von der die Protokollnachricht stammt
- Zeitstempel der Protokollerstellung
- Protokoll der RNAT-Sitzung
- Quell-IP-Adresse
- RNAT-IP-Adresse
- Ziel-IP-Adresse
- Startzeit der RNAT-Sitzung
- Schließzeit der RNAT-Sitzung
- Gesamtzahl der von der NetScaler-Appliance für diese RNAT-Sitzung gesendeten Byte
- Gesamtzahl der von der NetScaler-Appliance für diese RNAT-Sitzung empfangenen Byte
- Grund für den Abschluss der RNAT-Sitzung. Die NetScaler-Appliance protokolliert den Schließgrund für TCP-RNAT-Sitzungen, die den TCP-Proxy (TCP-Proxy deaktiviert) der Appliance nicht verwenden. Im Folgenden sind die Arten von Schließungsgründen aufgeführt, die für TCP-RNAT-Sitzungen protokolliert werden:
- TCP-FIN. Die RNAT-Sitzung wurde geschlossen, weil eine TCP-FIN entweder vom Quell- oder Zielgerät gesendet wurde.
- TCP RST. Die RNAT-Sitzung wurde aufgrund eines TCP-Resets geschlossen, der entweder vom Quell- oder Zielgerät gesendet wurde.
- TIMEOUT. Die RNAT-Sitzung hat ein Timeout überschritten.
Die folgende Tabelle zeigt einige Beispiele für Protokolleinträge für RNAT-Sitzungen.
Art des Eintrags | Beispiel für einen Logeintrag |
---|---|
Beispiel für einen Protokolleintrag für eine UDP-RNAT-Sitzung | Dec 1 15:28:12 |
Beispiel für einen Protokolleintrag für eine TCP-RNAT-Sitzung. Der Protokolleintrag zeigt, dass die Sitzung aufgrund eines TCP-Resets geschlossen wurde | Dec 1 15:29:59 |
Beispiel für einen Protokolleintrag für eine TCP-RNAT-Sitzung. Der Protokolleintrag zeigt, dass die Sitzung abgelaufen ist | Dec 1 15:30:12 |
Stateful Connection Failover für RNAT
Das Verbindungsfailover verhindert eine Unterbrechung des Zugriffs auf Anwendungen, die in einer verteilten Umgebung bereitgestellt werden. Die NetScaler Appliance unterstützt jetzt Stateful Connection Failover für Verbindungen, die sich auf RNAT-Regeln in einem NetScaler High Availability (HA) -Setup beziehen. In einem HA-Setup bezieht sich Verbindungs-Failover (oder Verbindungsspiegelung) auf den Prozess, bei dem eine bestehende TCP- oder UDP-Verbindung aktiv gehalten wird, wenn ein Failover auftritt.
Die primäre Appliance sendet Nachrichten an die sekundäre Appliance, um aktuelle Informationen über die RNAT-Verbindungen zu synchronisieren. Die sekundäre Appliance verwendet diese Verbindungsinformationen nur im Falle eines Failovers. Wenn ein Failover auftritt, verfügt die neue primäre NetScaler-Appliance über Informationen über die Verbindungen, die vor dem Failover hergestellt wurden, und stellt diese Verbindungen daher auch nach dem Failover weiter bereit. Aus Sicht des Kunden ist dieser Failover transparent. Während der Übergangszeit kann es auf dem Client und dem Server zu kurzen Unterbrechungen und erneuten Übertragungen kommen.
Verbindungs-Failover kann per RNAT-Regel aktiviert werden. Um das Verbindungs-Failover für eine RNAT-Regel zu aktivieren, aktivieren Sie den ConnFailover-Parameter (Connection Failover) dieser bestimmten RNAT-Regel, indem Sie entweder die CLI oder die GUI verwenden.
So aktivieren Sie den Verbindungs-Failover für eine RNAT-Regel mithilfe der CLI:
Geben Sie in der Befehlszeile Folgendes ein:
set rnat <name> -connfailover (ENABLED | DISABLED)
show rnat
Um den Verbindungs-Failover für eine RNAT-Regel mithilfe der GUI zu aktivieren:
- Navigieren Sie zu System > Netzwerk > NATs, und klicken Sie dann auf die Registerkarte RNAT .
- Wählen Sie Verbindungs-Failover aus, während Sie eine neue RNAT-Regel hinzufügen oder eine vorhandene Regel bearbeiten.
Reservieren des Quellports für RNAT-Verbindungen zu Servern
Für eine Anforderung, die auf eine RNAT-Konfiguration trifft, bei der eine oder mehrere RNAT-IP-Adressen und “Proxy-Portparameter verwenden” deaktiviert sind, verwendet die NetScaler-Appliance eine der RNAT-IP-Adresse und den Quellport der RNAT-Anforderung für die Verbindung mit Servern. Vor dem 13.0 47.x-Build schlägt die RNAT-Verbindung (unter Verwendung des Quellports des RNAT-Clients) zum Server fehl, wenn derselbe Quellport bereits in einigen anderen Verbindungen verwendet wurde.
-
Quellport kleiner als 1024. Standardmäßig behält sich die NetScaler-Appliance die ersten 1024 Ports einer IP-Adresse im Besitz von NetScaler (einschließlich RNAT-IP-Adressen) vor. Vor dem 13.0 47.x-Build schlägt die RNAT-Verbindung (unter Verwendung des Quellports des RNAT-Clients) zum Server fehl, wenn der Quellport der RNAT-Anforderung kleiner oder gleich 1024 ist. Mit dem 13.0 47.x-Build ist die RNAT-Verbindung (unter Verwendung des Quellports des RNAT-Clients) zum Server erfolgreich, selbst wenn der Quellport der RNAT-Anforderung kleiner oder gleich 1024 ist.
-
Quellport größer als 1024. Vor dem 13.0 47.x-Build schlägt die RNAT-Verbindung (unter Verwendung des Quellports des RNAT-Clients) zum Server fehl, wenn derselbe Quellport bereits in einigen anderen Verbindungen verwendet wurde. Mit 13.0 47.x Build können Sie im
Retain Source Port range
(retainsourceportrange
) -Parameter im Rahmen einer RNAT-Konfiguration einen Bereich von RNAT-Client-Quellports angeben. Die NetScaler-Appliance behält diese RNAT-Client-Quellports an der RNAT-IP-Adresse vor, die nur für die RNAT-Verbindung zu Servern verwendet werden.
Entfernen von RNAT-Sitzungen
Sie können alle unerwünschten oder ineffizienten RNAT-Sitzungen aus der NetScaler-Appliance entfernen. Die Appliance gibt sofort die für diese Sitzungen zugewiesenen Ressourcen (wie den Port der NAT-IP-Adresse und den Speicher) frei, sodass die Ressourcen für neue Sitzungen verfügbar sind. Die Appliance verwirft auch alle nachfolgenden Pakete, die sich auf diese entfernten Sitzungen beziehen. Sie können alle oder ausgewählte RNAT-Sitzungen von der NetScaler-Appliance entfernen.
Um alle RNAT-Sitzungen mit der CLI zu löschen:
Geben Sie in der Befehlszeile Folgendes ein:
- flush rnatsession
Um selektive RNAT-Sitzungen mit der CLI zu löschen:
Geben Sie in der Befehlszeile Folgendes ein:
- flush rnatsession ((-network <ip_addr> -netmask <netmask>) | -natIP <ip_addr> | -aclname <string>)
Um alle oder ausgewählte RNAT-Sitzungen mit der GUI zu löschen:
- Navigieren Sie zu System > Netzwerk > NATs und klicken Sie dann auf die Registerkarte RNAT.
- Klicken Sie im Menü Aktionen auf RNAT-Sitzungen leeren, um alle oder nur ausgewählte RNAT-Sitzungen zu entfernen (z. B. um RNAT-Sitzungen mit einer bestimmten RNAT-IP zu entfernen oder die zu einer bestimmten Netzwerk- oder ACL-basierten RNAT-Regel gehören).
Beispielkonfigurationen:
Clear all RNAT sessions existing on a NetScaler appliance
> flush rnatsession
Done
Clear all RNAT sessions belonging to network based RNAT rules that has 203.0.113.0/24 network as the matching condition.
> flush rnatsession -network 203.0.113.0 -netmask 255.255.255.0
Done
Clear all RNAT sessions with RNAT IP 192.0.2.90.
> flush rnatsession -natIP 192.0.2.90
Done
Clear all RNAT sessions belonging to ACL based RNAT rules that has ACL-RNAT-1 as the matching condition.
> flush rnatsession -aclname ACL-RNAT-1
Done
<!--NeedCopy-->