Protocole proxy

Le protocole proxy transporte en toute sécurité les détails du client d’un client à l’autre sur les appliances Citrix ADC. L’appliance ajoute un en-tête de protocole proxy avec les détails du client et le transmet au serveur principal. Voici quelques scénarios d’utilisation pour le protocole proxy dans une appliance Citrix ADC.

  • Apprendre l’adresse IP du client d’origine
  • Sélection d’une langue pour un site Web
  • Liste noire des adresses IP sélectionnées
  • Enregistrement et collecte de statistiques.

Voici les trois modes de fonctionnement :

  • Insert. L’appliance insère les détails du client et les envoie au serveur principal.
  • Forward. L’appliance transmet les détails du client au serveur principal.
  • Dépouillé. L’appliance stocke les détails du client à des fins de journalisation. En outre, si le protocole proxy n’est pas pris en charge sur le serveur principal, envoie les détails du client au serveur à l’aide de la configuration de la stratégie de réécriture

Limitations

La fonctionnalité de protocole proxy n’est pas prise en charge dans les fonctionnalités TFO, MultiPath TCP et HTTP2.

Fonctionnement du protocole proxy dans une appliance Citrix ADC

Les diagrammes de flux suivants montrent comment configurer le protocole Proxy entre les appliances Citrix ADC pour les opérations Insert, Transfère et Dépouillé :

Opération Insert

Opération Insert

Le composant interagit comme suit :

  • Dans l’instance Citrix ADC, vous devez activer le protocole proxy dans le netprofile et le lier au service.
  • Dans l’opération Insertion, Citrix ADC ajoute un en-tête proxy avec les détails de connexion client et le transmet au serveur principal.
  • Du côté de l’envoi, l’appliance décide de la version du protocole proxy en fonction de la configuration de l’interface de ligne de commande.

Opération Forward

Opération Forward

Le composant interagit comme suit :

  • Un client envoie une requête avec en-tête proxy à Citrix ADC. L’appliance identifie dynamiquement la version.
  • Sur l’appliance Citrix ADC, il s’agit d’une opération de transfert. Le protocole proxy est activé sur le serveur virtuel d’équilibrage de charge ou le serveur virtuel de commutation de contenu et activé sur le service. L’appliance reçoit l’en-tête proxy et transmet les détails de l’en-tête au serveur principal.
  • Si les détails de l’en-tête du proxy sont dans un format non valide, l’appliance réinitialise la connexion.
  • Du côté de l’envoi, l’appliance décide de la version du protocole proxy en fonction de la configuration de l’interface de ligne de commande.

Opération Stripped

Opération Stripped

Le composant interagit comme suit :

  • Un client envoie une demande avec un en-tête proxy à l’appliance Citrix ADC.
  • Dans l’appliance Citrix ADC, s’il s’agit d’une opération dépouillée, l’appliance transmet les informations client obtenues à partir du protocole proxy et les insère dans l’en-tête HTTP à l’aide d’expressions de stratégie de réécriture.
  • Les détails du client, tels que l’adresse IP source, l’adresse IP de destination, le port source et le port de destination, sont ajoutés dans l’en-tête HTTP à l’aide d’expressions de stratégie de réécriture. La stratégie de réécriture évalue l’expression et si « true », l’action de stratégie de réécriture correspondante est déclenchée. Et les détails du client sont transférés au serveur principal dans l’en-tête HTTP.
  • Si les détails de l’en-tête du proxy sont dans un format non valide, l’appliance réinitialise la connexion.

Formats de version du protocole proxy

La version du protocole Proxy est disponible en deux formats. L’appliance décide d’utiliser un format basé sur la longueur des données entrantes. Pour plus d’informations, consultez laProtocole proxyDP.

  1. Format de version 1 du protocole proxy

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

    • PROXY -> Format de chaîne unique pour l’en-tête Proxy version -1.
    • Prise en charge des protocoles TCP sur IPv4 et TCP sur IPv6. Pour les protocoles restants, il s’agit de UNKNOWN.
    • IP SRC — Adresse IP source (IP du client d’origine) d’un paquet.
    • IP DST — Adresse IP de destination d’un paquet.
    • Port SRC — Port source d’un paquet.
    • Port DST — Port de destination d’un paquet.
  2. Format de protocole proxy version 2

    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 -> Chaîne binaire unique pour la version d’en-tête Proxy -2.
    • Prise en charge des protocoles TCP sur IPv4 et TCP sur IPv6. Pour les protocoles restants, il s’agit de UNKNOWN.
    • 13ème octet — version du protocole et commande.
    • 14ème octet : adresse et famille de protocoles.
    • 15-16e octet — Longueur de l’adresse dans l’ordre du réseau.
    • 17e octet en avant — Adresses informations présentes dans l’ordre réseau - src IP, dst IP, port src, port dst.

Configurer le protocole proxy dans l’appliance Citrix ADC

Suivez la procédure ci-dessous pour configurer le protocole proxy dans votre appliance Citrix ADC.

  1. Activer le protocole proxy comme global.
  2. Configurer le protocole proxy pour l’opération Insertion
  3. Configurer le protocole proxy pour l’opération de transfert
  4. Configurer le protocole proxy pour l’opération Strip
  5. Configurer le protocole proxy pour aucune opération

Activer le protocole proxy en tant que protocole global

À l’invite de commandes, tapez ce qui suit :

set ns param –proxyProtocol ENABLED

Configurer le protocole proxy pour l’opération Insertion

Pour configurer le protocole proxy pour l’opération Insertion, vous devez activer ou désactiver le protocole sur le serveur virtuel d’équilibrage de charge et l’activer sur le service.

Ajouter un profil net avec le protocole proxy désactivé pour l’équilibrage de charge serveur virtuel

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

Add netprofile proxyprofile-1 –proxyProtocol DISABLED –proxyprotocoltxversion V1

Remarque :

Si vous désactivez le protocole proxy sur votre appliance, vous n’avez pas besoin de définir le paramètre de version du protocole.

Ajouter un profil net avec un protocole proxy activé pour le service

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add netprofile proxyprofile-2 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Ajouter un serveur virtuel d’équilibrage de charge pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add lb vserver lbvserver-1 http 1.1.1.1 80

Ajouter un service HTTP pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

Add service http-service-1 2.2.2.1 http 80

Définir le profil net avec un serveur virtuel d’équilibrage de charge dans l’appliance Citrix ADC

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

set lb vserver lbvserver-1 –netprofile proxyProfile-1

Liez le profil réseau avec le service HTTP dans l’appliance Citrix ADC 1

À l’invite de commandes, tapez ce qui suit :

bind service <service name> –netprofile <name>

Exemple :

bind service http-service-1 –netprofile proxyProfile-1

Configurer le protocole proxy pour l’opération de transfert

Pour configurer le protocole proxy pour l’opération Transférer pour l’instance Citrix ADC suivante dans la couche proxy. Vous devez activer ou désactiver le protocole et vous lier au serveur virtuel ou au service.

Ajouter un profil net avec le protocole proxy activé pour l’équilibrage de charge serveur virtuel

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add netprofile proxyprofile-3 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Ajouter un profil net avec le protocole proxy activé pour le service

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add netprofile proxyprofile-4 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Ajouter un serveur virtuel d’équilibrage de charge pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add lb vserver lbvserver-2 http 2.2.2.2 80

Ajouter un service HTTP pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

Add service http-service-2 3.3.3.1 http 80

Définir le profil net avec un serveur virtuel d’équilibrage de charge dans l’appliance Citrix ADC

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

set lb vserver lbvserver-2 –netprofile proxyProfile-3

Définir le profil réseau avec le service HTTP dans l’appliance Citrix ADC

À l’invite de commandes, tapez ce qui suit :

set service <service name> –netprofile <name>

Exemple :

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

Configurer le protocole proxy pour le fonctionnement de la bande

Pour configurer le protocole proxy pour l’opération Strip, vous devez désactiver le protocole proxy sur le serveur virtuel d’équilibrage de charge et activer le protocole proxy sur le service.

Ajouter un profil net avec le protocole proxy activé pour le service

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Ajouter un serveur virtuel d’équilibrage de charge ou de commutation de contenu pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add lb vserver lbvserver-3 http 2.2.2.2 80

Ajouter un service HTTP pour l’appliance Citrix ADC dans la couche proxy

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

Add service http-service-3 3.3.3.1 http 80

Définir le profil net avec un serveur virtuel d’équilibrage de charge ou de commutation de contenu dans l’appliance Citrix ADC

À l’invite de commandes, tapez ce qui suit :

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

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

Définir le profil réseau avec le service HTTP dans l’appliance Citrix ADC

À l’invite de commandes, tapez ce qui suit :

set service <service name> –netprofile <name>

Exemple :

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

Ajouter une action de réécriture pour transférer l’en-tête HTTP au serveur principal

À l’invite de commandes, tapez ce qui suit :

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

Ajouter une stratégie de réécriture pour transférer l’en-tête HTTP au serveur principal

À l’invite de commandes, tapez ce qui suit :

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

Lier une stratégie de réécriture globale ou serveur virtuel

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Configurer le protocole proxy à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Système > Paramètres > Modifier les paramètres système globaux.
  2. Dans la page Configurer les paramètres globaux du système, activez la case à cocher Protocole proxy.
  3. Cliquez sur OK et Fermer.

    Page Protocole proxy

  4. Accédez à Système > Réseau > Profils réseau.
  5. Dans le volet d’informations, cliquez sur Ajouter pour créer un profil réseau pour le serveur virtuel d’équilibrage de charge.
  6. Dans la page Profil net, définissez les paramètres suivants :
    1. Nom. Nom du profil réseau.
    2. Protocole proxy. Activez ou désactivez le protocole proxy pour le serveur virtuel d’équilibrage de charge.
    3. Version TX du protocole proxy. Définissez la version du protocole proxy comme V1 ou V2 en fonction du format de données entrantes.
  7. Cliquez sur OK.

    image localisée

  8. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  9. Dans le volet d’informations, cliquez sur Ajouter.
  10. Dans la page Serveur virtuel d’équilibrage de charge, définissez les paramètres de base.
  11. Dans la section Paramètres **avancés, sélectionnez **Profils.
  12. Dans la section Profils, cliquez sur l’icône en forme de crayon.
  13. Sélectionnez un profil net et cliquez sur OK.
  14. Cliquez sur Terminé.

    image localisée

  15. Accédez à Gestion du trafic > Équilibrage de charge > Services.
  16. Dans le volet d’informations, cliquez sur Ajouter.
  17. Dans la page Service d’équilibrage de charge, définissez les paramètres de base.
  18. Dans la section Paramètres avancés, sélectionnez Profils.
  19. Dans la section Profils, cliquez sur l’icône en forme de crayon.
  20. Sélectionnez un profil net et cliquez sur OK.
  21. Cliquez sur Terminé.

Remarque :

Si plusieurs appliances Citrix ADC font partie de la couche proxy, vous devez définir la configuration du protocole proxy sur chaque appliance pour l’opération Transférer.

Configuration du protocole proxy