ADC

Proxyprotokoll

Das Proxyprotokoll transportiert Clientdetails sicher von Client zu Server über NetScaler-Appliances. Die Appliance fügt einen Proxyprotokoll-Header mit Clientdetails hinzu und leitet ihn an den Back-End-Server weiter. Im Folgenden sind einige Anwendungsszenarien für das Proxyprotokoll in einer NetScaler-Appliance aufgeführt.

  • Ursprüngliche Client-IP-Adresse ermitteln
  • Auswählen einer Sprache für eine Website
  • Blockieren der Auflistung ausgewählter
  • Protokollieren und Sammeln von Statistiken.

Im Folgenden sind die drei Betriebsmodi aufgeführt:

  • Einfügen. NetScaler fügt die Client-Details ein und sendet sie an den Back-End-Server.
  • Vorwärts. NetScaler leitet die Client-Details an den Back-End-Server weiter. Ab NetScaler 14.1-12.x Version leitet NetScaler zusammen mit den Client-Details die TLV-Informationen (Type Length Value), die im Proxyprotokoll V2 gesendet werden, an Backend-Server weiter, sofern die Proxyprotokollfunktion auf dem virtuellen Server und Dienst aktiviert ist.
  • Stripped. NetScaler speichert die Client-Details zu Protokollzwecken. Wenn das Proxyprotokoll auf dem Back-End-Server nicht unterstützt wird, sendet die Clientdetails mithilfe der Konfiguration der Rewriterichtlinie an den Server

Die folgende Tabelle enthält Informationen zum Status des virtuellen LB-Servers und -Dienstes in verschiedenen Proxyprotokollmodi:

Proxyprotokollmodus Virtueller LB-Server Service
Einfügen Deaktiviert Aktiviert
Weiter Aktiviert Aktiviert
Stripped Aktiviert Deaktiviert

Einschränkungen

Das Proxyprotokoll wird für die TCP Fast Open (TFO) und MultiPath TCP-Funktionen nicht unterstützt. Die Funktion wird nur für Dienste unterstützt, für die die NetScaler-Appliance die TCP-Verbindungsbeendigung vornimmt. Es ist keine Unterstützung für andere Dienste, zum Beispiel “ANY”.

So funktioniert das Proxyprotokoll in einer NetScaler-Appliance

Die folgenden Flussdiagramme zeigen, wie Sie das Proxyprotokoll für NetScaler-Appliances für den Insert-, Forwards- und Stripping-Vorgang konfigurieren können:

Insert-Vorgang

Insert-Vorgang

Die Interaktion der Komponente ist wie folgt:

  • Bei der NetScaler-Instanz müssen Sie das Proxyprotokoll im Netzprofil aktivieren und an den Dienst binden.
  • Beim Insert-Vorgang fügt NetScaler einen Proxyheader mit Clientverbindungsdetails hinzu und leitet ihn an den Backend-Server weiter.
  • Auf der sendenden Seite entscheidet die Appliance die Proxyprotokollversion basierend auf der CLI-Konfiguration.

Forward-Vorgang

Forward-Vorgang

Die Interaktion der Komponente ist wie folgt:

  • Ein Client sendet eine Anfrage zusammen mit dem Proxyheader an den NetScaler. Die Appliance identifiziert die Version dynamisch.
  • In NetScaler handelt es sich um einen Forward-Vorgang. Das Proxyprotokoll ist auf dem virtuellen Lastausgleichsserver oder dem virtuellen Content Switching-Server aktiviert und für den Dienst aktiviert. Die Appliance empfängt den Proxy-Header zusammen mit dem TLV im Proxy-Protokoll V2 und leitet den Header und das TLV an den Back-End-Server weiter.
  • Wenn die Details des Proxyheaders ungültig sind, setzt die Appliance die Verbindung zurück.
  • Auf der sendenden Seite entscheidet die Appliance die Proxyprotokollversion basierend auf der CLI-Konfiguration.

Stripped-Vorgang

Stripped-Vorgang

Die Interaktion der Komponente ist wie folgt:

  • Ein Client sendet eine Anfrage zusammen mit einem Proxyheader an die NetScaler-Appliance.
  • Wenn es sich in der NetScaler-Appliance um einen Stripped-Vorgang handelt, leitet die Appliance die vom Proxyprotokoll erhaltenen Clientinformationen weiter und fügt sie mithilfe von Rewriterichtlinienausdrücken in den HTTP-Header ein.
  • Die Clientdetails wie Quell-IP-Adresse, Ziel-IP-Adresse, Quellport und Zielport werden mit Rewriterichtlinienausdrücken in einem HTTP-Header hinzugefügt. Die Rewriterichtlinie wertet den Ausdruck aus und wenn “wahr”, wird die entsprechende Aktion der Rewriterichtlinie ausgelöst. Und die Clientdetails werden in einem HTTP-Header an den Back-End-Server weitergeleitet.
  • Wenn die Details des Proxyheaders ungültig sind, setzt die Appliance die Verbindung zurück.

Proxyprotokoll-Versionsformate

Die Proxyprotokollversion ist in zwei Formaten verfügbar. Die Appliance entscheidet, ein Format basierend auf der Länge der eingehenden Daten zu verwenden. Ausführliche Informationen finden Sie unter Proxyprotokoll-RFP .

  1. Proxyprotokoll-Version-1-Format

    PROXY TCP4/TCP6/UNKNOWN <SRC IP> <DST IP> <SRC PORT> <DST PORT>

    • PROXY -> Eindeutiges Zeichenfolgenformat für Proxyheader-Version -1.
    • Unterstützt Protokolle TCP über IPv4 und TCP über IPv6. Für die verbleibenden Protokolle ist dies UNBEKANNT.
    • SRC-IP — Quell-IP (Ursprüngliche Client-IP) -Adresse eines Pakets.
    • DST IP — Ziel-IP-Adresse eines Pakets.
    • SRC-Port — Quellport eines Pakets.
    • DST-Port — Zielport eines Pakets.
  2. Proxyprotokoll-Version-2-Format

    0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A <13th byte> <14th byte> <15-16th byte> <17th byte onwards>

    • D 0A 0D 0A 00 0D 0A 51 55 49 54 0A -> Eindeutige binäre Zeichenfolge für Proxyheader-Version -2.
    • Unterstützt Protokolle TCP über IPv4 und TCP über IPv6. Für die verbleibenden Protokolle ist dies UNBEKANNT.
    • Dreizehntes Byte — Protokollversion und Befehl.
    • Vierzehntes Byte — Adresse und Protokollfamilie.
    • 15-16. Byte — Adresslänge in Netzwerkreihenfolge.
    • Siebzehntes Byte ab — Adressiert Informationen, die in der Netzwerkreihenfolge vorhanden sind - src IP, dst IP, src-Port, dst-Port.

Unterstützung von Ausdrücken für Responder-Richtlinien in der Infrastruktur

Das Proxyprotokoll unterstützt die folgenden Infrastrukturausdrücke für Responder-Richtlinien für virtuelle Server vom Typ TCP und HTTP:

  1. CLIENT.PROXY.SRCIP_STR
  2. CLIENT.PROXY.DSTIP_STR
  3. CLIENT.PROXY.SRCPORT
  4. CLIENT.PROXY.DSTPORT
  5. CLIENT.PROXY.ETHERTYPE

Hinweis

NetScaler unterstützt den Responderrichtlinien-Infrastrukturausdruck für das Proxyprotokoll auf einem virtuellen Server vom Typ TCP ab NetScaler Version 13.1-48.x.

Konfigurieren Sie das Proxyprotokoll in NetScaler-Appliance

Führen Sie die folgenden Schritte aus, um das Proxyprotokoll in Ihrer NetScaler-Appliance zu konfigurieren.

  1. Aktivieren Sie das Proxyprotokoll als global.
  2. Konfigurieren Sie das Proxyprotokoll für den Insert-Vorgang.
  3. Konfigurieren Sie das Proxyprotokoll für den Forward-Vorgang.
  4. Konfigurieren Sie das Proxy-Protokoll für den Strip-Betrieb.

Aktivieren Sie das Proxyprotokoll als global

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns param –proxyProtocol ENABLED

Konfigurieren Sie das Proxyprotokoll für Insert-

Um das Proxyprotokoll für den Insert-Vorgang zu konfigurieren, müssen Sie das Protokoll auf dem virtuellen Lastausgleichsserver deaktivieren und das Protokoll im Dienst aktivieren.

Hinzufügen eines Netzprofils mit deaktiviertem Proxyprotokoll für den Lastausgleich des virtuellen Servers

Geben Sie an der Eingabeaufforderung Folgendes ein:

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

Beispiel:

Add netprofile proxyprofile-1 –proxyProtocol DISABLED –proxyprotocoltxversion V1

Hinweis:

Wenn Sie das Proxyprotokoll auf Ihrer Appliance deaktivieren, müssen Sie den Protokollversionsparameter nicht festlegen.

Fügen Sie ein Netzprofil mit einem für den Dienst aktivierten Proxyprotokoll hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

Beispiel:

add netprofile proxyprofile-2 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Fügen Sie einen virtuellen Lastausgleichsserver für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

Beispiel:

add lb vserver lbvserver-1 http 1.1.1.1 80

Fügen Sie den HTTP-Dienst für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

Beispiel:

Add service http-service-1 2.2.2.1 http 80

Festlegen des Netzwerkprofils mit dem virtuellen Lastausgleichsserver in der NetScaler-Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb vserver <vserver name> -netprofile <name>

Beispiel:

set lb vserver lbvserver-1 –netprofile proxyProfile-1

Festlegen des Netzwerkprofils mit dem HTTP-Dienst in der NetScaler-Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <service name> –netprofile <name>

Beispiel:

set service http-service-1 –netprofile proxyProfile-2

Binden Sie den virtuellen Lastausgleichsserver an den Dienst

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind lb vserver <vserver name> <service name>

Beispiel:

bind lb vserver lbvserver-1 http-service-1

Proxyprotokoll für Forward-Vorgang konfigurieren

Um das Proxyprotokoll für den Forward-Betrieb für die nächste NetScaler-Instanz in der Proxyschicht zu konfigurieren, müssen Sie das Protokoll aktivieren und eine Bindung an den virtuellen Server oder Dienst herstellen.

Hinweis:

Das für den virtuellen Lastausgleichsserver erstellte Netzprofil kann auch für den Dienst verwendet werden.

Hinzufügen eines Netzprofils mit aktiviertem Proxyprotokoll für den Lastausgleich des virtuellen Servers

Geben Sie an der Eingabeaufforderung Folgendes ein:

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

Beispiel:

add netprofile proxyprofile-3 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Netzprofil mit aktiviertem Proxyprotokoll für den Dienst hinzufügen

Geben Sie an der Eingabeaufforderung Folgendes ein:

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

Beispiel:

add netprofile proxyprofile-4 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Fügen Sie einen virtuellen Lastausgleichsserver für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

Beispiel:

add lb vserver lbvserver-2 http 2.2.2.2 80

Fügen Sie den HTTP-Dienst für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

Beispiel:

Add service http-service-2 3.3.3.1 http 80

Festlegen des Netzwerkprofils mit dem virtuellen Lastausgleichsserver in der NetScaler-Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb vserver <vserver name> -netprofile <name>

Beispiel:

set lb vserver lbvserver-2 –netprofile proxyProfile-3

Festlegen des Netzwerkprofils mit dem HTTP-Dienst in der NetScaler-Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <service name> –netprofile <name>

Beispiel:

set service http-service-2 –netprofile proxyProfile-4

Binden Sie den virtuellen Lastausgleichsserver an den Dienst

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind lb vserver <vserver name> <service name>

Beispiel:

bind lb vserver lbvserver-2 http-service-2

Konfigurieren Sie das Proxyprotokoll für Strip-Betrieb

Um das Proxyprotokoll für den Strip-Betrieb zu konfigurieren, müssen Sie das Proxyprotokoll auf dem virtuellen Lastausgleichsserver aktivieren und das Proxyprotokoll für den Dienst deaktivieren.

Netzprofil mit aktiviertem Proxyprotokoll für virtuellen Server hinzufügen

Geben Sie an der Eingabeaufforderung Folgendes ein:

add netprofile <name> -proxyProtocol ENABLED> -proxyprotocoltxversion <V1/V2>

Beispiel:

add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Fügen Sie einen virtuellen Server für Lastausgleich oder Content Switching für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

Beispiel:

add lb vserver lbvserver-3 http 2.2.2.2 80

Fügen Sie den HTTP-Dienst für NetScaler-Appliance in der Proxy-Schicht hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

Beispiel:

Add service http-service-3 3.3.3.1 http 80

Festlegen des Netzprofils mit Lastausgleich oder virtuellem Content Switching-Server in NetScaler-Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb vserver <vserver name> -netprofile <name>

Beispiel: set lb vserver lbvserver-3 –netprofile proxyProfile-5

Binden Sie den virtuellen Lastausgleichsserver an den Dienst

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind lb vserver <vserver name> <service name>

Beispiel:

bind lb vserver lbvserver-3 http-service-3

Konfigurieren Sie den Infrastrukturausdruck der Responderrichtlinie für das Proxyprotokoll mithilfe der CLI

Um eine Responder-Richtlinie zu konfigurieren, geben Sie an der Befehlszeile Folgendes ein:

add responder policy <name> <expression> <action>

Beispiel:

> add responder policy resppol_proxy_srcip "CLIENT.PROXY.SRCIP_STR.EQ("10.106.26.83")" RESET
Done
<!--NeedCopy-->

Um die Responder-Richtlinie an den virtuellen Load Balancing-Server zu binden, geben Sie an der Befehlszeile Folgendes ein:

bind lb vserver <name> -policyname <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type <type>

Beispiel:

> bind lb vserver lb_tcp1 -policyName resppol_proxy_srcip -priority 10 -gotoPriorityExpression END -type REQUEST
Done
<!--NeedCopy-->

Beispiel für eine End-to-End-Konfiguration

> add ns tcpProfile tcp-proxy-profile -tcpmode ENDPOINT

> add netprofile net_proxyv1 -MBF DISABLED -proxyProtocol
ENABLED

> enable ns mode l2

> enable ns mode l3 usnip

> add ns ip 10.106.26.146 255.255.255.0 -type SNIP
Done
> add ns ip 10.106.26.144 255.255.255.0 -type SNIP
Done

> add lb vserver lb_tcp1 TCP 10.106.26.141 80
> add service s1 10.106.26.82 TCP 8080

> bind lb vserver lb_tcp1 s1

> set lb vserver lb_tcp1 -tcpProfileName tcp_proxy -netProfile net_proxyv1

> set ns param -proxyProtocol ENABLED

> add responder policy resppol_proxy_srcip "CLIENT.PROXY.SRCIP_STR.EQ("10.106.26.83")" RESET

> bind lb vserver lb_tcp1 -policyName resppol_proxy_srcip -priority 10 -gotoPriorityExpression END -type REQUEST
Done
<!--NeedCopy-->

Konfigurieren des Proxyprotokolls über die NetScaler GUI

  1. Navigieren Sie zu System > Einstellungen > Globale Systemeinstellungen ändern.
  2. Aktivieren Sie auf der Seite “Parameter für globale Systemeinstellungen konfigurieren “ das Kontrollkästchen Proxyprotokoll .
  3. Klicken Sie auf OK und schließen.
  4. Navigieren Sie zu System > Netzwerk > Netzprofile.
  5. Klicken Sie im Detailbereich auf Hinzufügen, um ein Netzprofil für den virtuellen Lastausgleichsserver zu erstellen.
  6. Legen Sie auf der Seite Net Profile die folgenden Parameter fest:
    1. Name : Name des Netzprofils.
    2. Proxy-Protokoll: Aktivieren oder deaktivieren Sie das Proxy-Protokoll für den virtuellen Lastausgleichsserver.
    3. Proxy-Protokoll-TX-Version: Stellen Sie die Proxy-Protokollversion auf V1 oder V2 ein, basierend auf dem Format der eingehenden Daten.
  7. Klicken Sie auf OK.
  8. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server .
  9. Klicken Sie im Detailbereich auf Hinzufügen.
  10. Legen Sie auf der Seite Load Balancing Virtual Server die grundlegenden Parameter fest.
  11. Wählen Sie im Abschnitt Erweiterte Einstellungen die Option Profileaus.
  12. Klicken Sie im Abschnitt Profile auf das Stiftsymbol.
  13. Wählen Sie ein Netzprofil aus und klicken Sie auf OK.
  14. Klicken Sie auf Fertig.
  15. Navigieren Sie zu Traffic Management > Load Balancing > Services .
  16. Klicken Sie im Detailbereich auf Hinzufügen.
  17. Legen Sie auf der Seite Load Balancing Service die grundlegenden Parameter fest.
  18. Wählen Sie im Abschnitt Erweiterte Einstellungen die Option Profileaus.
  19. Klicken Sie im Abschnitt Profile auf das Stiftsymbol.
  20. Wählen Sie ein Netzprofil aus und klicken Sie auf OK.
  21. Klicken Sie auf Fertig.

Hinweis:

Wenn Sie mehr als eine NetScaler-Appliance als Teil der Proxy-Schicht haben, müssen Sie die Proxyprotokollkonfiguration auf jeder Appliance für den Forward-Vorgang festlegen.