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 finden Sie einige Anwendungsszenarien für das Proxyprotokoll in einer Citrix ADC Appliance.

  • Erlernen der ursprünglichen Client-IP-Adresse
  • Auswählen einer Sprache für eine Website
  • Schwarze Liste ausgewählter IP-Adressen
  • 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 Proxyprotokoll auf dem Back-End-Server nicht unterstützt wird, sendet die Clientdetails an den Server mit der Rewrite-Richtlinienkonfiguration

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 Flussdiagramme zeigen, wie Sie das Proxyprotokoll über Citrix ADC Appliances für den Vorgang “Einfügen”, “Forwards” und “Stripped” konfigurieren können:

Einfügevorgang

Einfügevorgang

Die Komponente interagieren wie folgt:

  • Bei der Citrix ADC Instanz müssen Sie das Proxyprotokoll im Netprofile aktivieren und an den Dienst binden.
  • Im Einfügevorgang fügt Citrix ADC einen Proxyheader 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 Anforderung zusammen mit Proxyheader an Citrix ADC. Die Appliance identifiziert die Version dynamisch.
  • Bei der Citrix ADC Appliance handelt es sich um einen 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.
  • Bei Citrix ADC Appliance leitet die Appliance die aus dem Proxyprotokoll erhaltenen Clientinformationen weiter und fügt sie mithilfe von Richtlinienausdrücken in den HTTP-Header ein.
  • Die Clientdetails wie Quell-IP-Adresse, Ziel-IP-Adresse, Quellport und Zielport werden im 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 Client-Details werden an den Back-End-Server im HTTP-Header 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.
    • 13. Byte — Protokollversion und Befehl.
    • 14. Byte — Adresse und Protokollfamilie.
    • 15-16 Byte — Adresslänge in Netzwerkreihenfolge.
    • 17. Byte weiter — Adressen, die in der Netzwerkreihenfolge vorhanden sind - src IP, dst IP, src port, dst port.

Konfigurieren des Proxyprotokolls in der Citrix ADC Appliance

Gehen Sie folgendermaßen vor, um das Proxyprotokoll 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

Proxyprotokoll als global aktivieren

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns param –proxyProtocol ENABLED

Konfigurieren des Proxyprotokolls für den Einfügevorgang

Um das Proxyprotokoll 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 Proxyprotokoll für den Strip-Betrieb zu konfigurieren, müssen Sie das Proxy-Protokoll auf dem virtuellen Lastausgleichsserver deaktivieren und das Proxyprotokoll 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 Lastenausgleichs oder des virtuellen 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 Lastenausgleich oder virtuellem 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 Verkehrsverwaltung > Lastenausgleich > 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 Verkehrsverwaltung > Lastenausgleich > Dienste.
  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