Citrix ADC

Proxyprotokoll

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

  • Erlernen der ursprünglichen Client-IP-Adresse
  • Auswählen einer Sprache für eine Website
  • Liste ausgewählter IP-Adressen blockieren
  • Protokollieren und Erfassen von Statistiken.

Im Folgenden sind die drei Betriebsarten:

  • Einfügen. Die Appliance fügt die Clientdetails ein und sendet sie an den Back-End-Server.
  • Vorwärts. Die Appliance leitet die Clientdetails an den Back-End-Server weiter.
  • Abgestreift. Die Appliance speichert die Clientdetails für Protokollierungszwecke. Wenn das Proxy-Protokoll auf dem Back-End-Server nicht unterstützt wird, sendet die Clientdetails mithilfe der Konfiguration der Richtlinie zum Umschreiben an den Server

Einschränkungen

Die Proxy-Protokollfunktion wird in TFO- und MultiPath TCP-Funktionen nicht unterstützt.

Funktionsweise des Proxyprotokolls in einer Citrix ADC Appliance

Die folgenden Flow-Diagramme zeigen, wie Sie das Proxy-Protokoll für den Insert-, Forwards- und Stripping-Betrieb über Citrix ADC Appliances konfigurieren können:

Einfügevorgang

Einfügevorgang

Die Komponente interagieren wie folgt:

  • Bei der Citrix ADC Instanz müssen Sie das Proxy-Protokoll im Netzprofil aktivieren und an den Dienst binden.
  • Beim Einfügen fügt Citrix ADC einen Proxy-Header mit Client-Verbindungsdetails hinzu und leitet ihn an den Back-End-Server weiter.
  • Auf der sendenden Seite entscheidet die Appliance die Proxyprotokollversion basierend auf der CLI-Konfiguration.

Vorwärtsbetrieb

Vorwärtsbetrieb

Die Komponente interagieren wie folgt:

  • Ein Client sendet eine Anfrage zusammen mit dem Proxy-Header an den Citrix ADC. Die Appliance identifiziert die Version dynamisch.
  • In der Citrix ADC Appliance ist es ein Forward-Vorgang. Das Proxyprotokoll ist für den Lastenausgleich virtueller Server oder den virtuellen Content Switching-Server aktiviert und für den Dienst aktiviert. Die Appliance empfängt den Proxy-Header und leitet die Header-Details an den Back-End-Server weiter.
  • Wenn die Proxy-Header-Details 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 Komponente interagieren wie folgt:

  • Ein Client sendet eine Anforderung zusammen mit einem Proxyheader an die Citrix ADC Appliance.
  • Wenn es sich in der Citrix ADC Appliance um einen Stripping-Vorgang handelt, leitet die Appliance die vom Proxy-Protokoll erhaltenen Clientinformationen weiter und fügt sie mithilfe von Rewrite-Richtlinienausdrücken in den HTTP-Header ein.
  • Die Clientdetails wie Quell-IP-Adresse, Ziel-IP-Adresse, Quellport und Zielport werden in einem HTTP-Header mithilfe von Rewrite-Richtlinienausdrücken hinzugefügt. Die Rewrite-Richtlinie wertet den Ausdruck aus, und wenn “true”, wird die entsprechende Rewrite-Richtlinienaktion ausgelöst. Und die Clientdetails werden in einem HTTP-Header an den Back-End-Server weitergeleitet.
  • Wenn die Proxy-Header-Details 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 RFP Proxyprotokoll.

  1. Proxyprotokoll-Version-1-Format

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

    • PROXY -> Eindeutiges Zeichenfolgenformat für Proxy-Header Version -1.
    • Unterstützt Protokolle TCP über IPv4 und TCP über IPv6. Bei verbleibenden Protokollen ist dies UNKNOWN.
    • SRC IP — Quell-IP-Adresse (Original Client IP) 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 -> Einzigartige binäre Zeichenfolge für Proxy-Header Version -2.
    • Unterstützt Protokolle TCP über IPv4 und TCP über IPv6. Bei verbleibenden Protokollen ist dies UNKNOWN.
    • Dreizehntes Byte — Protokollversion und Befehl.
    • Vierzehntes Byte — Adress- und Protokollfamilie.
    • 15-16 Byte — Adresslänge in Netzwerkreihenfolge.
    • Siebzehntes Byte ab — Adressiert Informationen in der Reihenfolge des Netzwerks - src IP, dst IP, src-Port, Sommer-Port.

Konfigurieren des Proxyprotokolls in der Citrix ADC Appliance

Führen Sie die folgenden Schritte aus, um das Proxy-Protokoll in Ihrer Citrix ADC Appliance zu konfigurieren.

  1. Aktivieren Sie das Proxyprotokoll als global.
  2. Konfigurieren des Proxyprotokolls für den Einfügevorgang
  3. Konfigurieren des Proxyprotokolls für den Weiterleitungsvorgang
  4. Konfigurieren des Proxyprotokolls für den Strip-Vorgang
  5. Konfigurieren des Proxyprotokolls für keinen Vorgang

Aktivieren Sie das Proxy-Protokoll als global

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns param –proxyProtocol ENABLED

Konfigurieren des Proxyprotokolls für den Einfügevorgang

Um das Proxy-Protokoll für den Einfügevorgang zu konfigurieren, müssen Sie das Protokoll auf dem virtuellen Lastausgleichsserver aktivieren oder deaktivieren und es für den Dienst aktivieren.

Hinzufügen eines Netzprofils mit deaktiviertem Proxyprotokoll für den Lastenausgleich eines 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 Parameter für die Protokollversion nicht festlegen.

Hinzufügen eines Netzprofils mit aktiviertem Proxyprotokoll für den Dienst

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

Hinzufügen eines virtuellen Lastausgleichsservers für die Citrix ADC Appliance in der Proxyschicht

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

Hinzufügen des HTTP-Dienstes für Citrix ADC Appliance in der Proxyschicht

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 Netzprofils mit dem virtuellen Lastausgleichsserver in der Citrix ADC 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 Netzprofils mit HTTP-Dienst in der Citrix ADC Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <service name> –netprofile <name>

Beispiel:

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

Konfigurieren des Proxyprotokolls für den Weiterleitungsvorgang

Konfigurieren des Proxyprotokolls für den Weiterleitungsvorgang für die nächste Citrix ADC Instanz in der Proxyschicht. Sie müssen das Protokoll aktivieren oder deaktivieren und an den virtuellen Server oder Dienst binden.

Hinzufügen eines Netzprofils mit aktiviertem Proxyprotokoll für den Lastenausgleich eines 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

Hinzufügen eines Netzprofils mit aktiviertem Proxyprotokoll für den Dienst

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

Hinzufügen eines virtuellen Lastausgleichsservers für die Citrix ADC Appliance in der Proxyschicht

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

Hinzufügen des HTTP-Dienstes für Citrix ADC Appliance in der Proxyschicht

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 Netzprofils mit dem virtuellen Lastausgleichsserver in der Citrix ADC 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 Netzprofils mit HTTP-Dienst in der Citrix ADC Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <service name> –netprofile <name>

Beispiel:

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

Konfigurieren des Proxyprotokolls für den Strip-Betrieb

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

Hinzufügen eines Netzprofils mit aktiviertem Proxyprotokoll für den Dienst

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Hinzufügen des virtuellen Lastausgleichs- oder Content Switching-Servers für die Citrix ADC Appliance in der Proxy-Ebene

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

Hinzufügen des HTTP-Dienstes für Citrix ADC Appliance in der Proxyschicht

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

Einrichten des Netzprofils mit virtuellen Lastausgleichs- oder Content Switching-Server in der Citrix ADC Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

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

Festlegen des Netzprofils mit HTTP-Dienst in der Citrix ADC Appliance

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <service name> –netprofile <name>

Beispiel:

set service http-service-3 –netprofile proxyProfile-6

Hinzufügen von Rewrite-Aktion, um den HTTP-Header an den Back-End-Server weiterzuleiten

Geben Sie an der Eingabeaufforderung Folgendes ein:

add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-pattern <expression> | -search <expression>] [-refineSearch <expression>] [-comment <string>]

Hinzufügen einer Rewrite-Richtlinie, um den HTTP-Header an den Backend-Server weiterzuleiten

Geben Sie an der Eingabeaufforderung Folgendes ein:

add rewrite policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>]

Globaler oder virtueller Server neu schreibender Richtlinie binden

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind rewrite global <policyName> <priority> [<gotoPriorityExpression>] [-type <type>] [-invoke (<labelType> <labelName>) ]

Beispiel:

add rewrite action insert_client_ip_act  insert_http_header X-client-IP CLIENT.PROXY.SRCIP_STR
add rewrite policy insert_client_ip_pol true insert_client_ip_act
bind rewrite global insert_client_ip_pol 90 END -type REQ_OVERRIDE
add rewrite action insert_destination_ip_act insert_http_header X-destination-IP CLIENT.PROXY.DSTIP_STR
add rewrite policy insert_destination_ip_pol true insert_destination_ip_act
bind rewrite global insert_destination_ip_pol 90 END -type REQ_OVERRIDE
add rewrite action insert_source_port_act insert_http_header X-source-port CLIENT.PROXY.SRCPORT
add rewrite policy insert_ source_port \_pol true insert_source_port_act
bind rewrite global insert\_ source_port _pol 90 END -type REQ_OVERRIDE

add rewrite action insert_destination_port_act insert_http_header X-destination-port CLIENT.PROXY.DSTPORT
add rewrite policy insert_destination_port _pol true insert_destination_port_act
bind rewrite global insert_destination_port _pol 90 END -type REQ_OVERRIDE

Konfigurieren des Proxyprotokolls mit der Citrix ADC 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.

    Seite Proxyprotokoll

  4. Navigieren Sie zu System > Netzwerk > Net Profile.
  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. Proxyprotokoll. Aktivieren oder Deaktivieren des Proxyprotokolls für den virtuellen Lastausgleichsserver.
    3. Proxyprotokoll TX-Version. Legen Sie die Proxyprotokollversion auf V1 oder V2 basierend auf dem eingehenden Datenformat fest.
  7. Klicken Sie auf OK.

    lokalisiertes Bild

  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 EinstellungenProfile aus.
  12. Klicken Sie im Abschnitt Profile auf das Bleistiftsymbol.
  13. Wählen Sie ein Netzprofil aus und klicken Sie auf OK.
  14. Klicken Sie auf Fertig.

    lokalisiertes Bild

  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 EinstellungenProfile aus.
  19. Klicken Sie im Abschnitt Profile auf das Bleistiftsymbol.
  20. Wählen Sie ein Netzprofil aus und klicken Sie auf OK.
  21. Klicken Sie auf Fertig.

Hinweis:

Wenn Sie mehr als eine Citrix ADC Appliance als Teil der Proxy-Ebene haben, müssen Sie die Proxyprotokollkonfiguration auf jeder Appliance für den Weiterleitungsvorgang festlegen.

Proxyprotokollkonfiguration

Proxyprotokoll