ADC

Protocole Proxy

Le protocole proxy transporte en toute sécurité les informations du client du client au serveur via les appliances NetScaler. L’appliance ajoute un en-tête de protocole proxy avec les détails du client et le transfère au serveur principal. Vous trouverez ci-dessous certains des scénarios d’utilisation du protocole proxy dans une appliance NetScaler.

  • Adresse IP du client d’origine
  • Sélection d’une langue pour un site Web
  • Bloquer la liste des adresses IP sélectionnées
  • Enregistrement et collecte de statistiques.

Voici les trois modes de fonctionnement :

  • Insérer. NetScaler insère les informations du client et les envoie au serveur principal.
  • Avancer. NetScaler transmet les informations du client au serveur principal. À partir de la version 14.1-12.x de NetScaler, ainsi que les informations du client, NetScaler transmet les informations TLV (Type Length Value) envoyées dans le protocole proxy V2 aux serveurs principaux si la fonctionnalité de protocole proxy est activée sur le serveur virtuel et le service.
  • Dépouillé. NetScaler enregistre les informations du client à des fins de journalisation. De plus, 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

Le tableau suivant fournit des informations sur l’état du serveur virtuel et du service LB dans différents modes de protocole proxy :

Mode protocole proxy Serveur virtuel LB Service
Insérer Désactivé Activé
Vers l’avant Activé Activé
Dépouillé Activé Désactivé

Limitations

Le protocole proxy n’est pas pris en charge pour les fonctionnalités TCP Fast Open (TFO) et TCP MultiPath. Cette fonctionnalité n’est prise en charge que pour les services pour lesquels l’appliance NetScaler met fin à la connexion TCP. Il ne prend pas en charge d’autres services, par exemple « ANY ».

Comment fonctionne le protocole proxy dans une appliance NetScaler

Les organigrammes suivants montrent comment configurer le protocole proxy sur les appliances NetScaler pour les opérations d’insertion, de transfert et de retrait :

Opération d’insertion

Opération d'insertion

L’interaction des composants est la suivante :

  • Sur l’instance NetScaler, vous devez activer le protocole proxy dans le profil réseau et le lier au service.
  • Lors de l’opération d’insertion, NetScaler ajoute un en-tête de proxy avec les détails de connexion du client et le transmet au serveur principal.
  • Côté 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

L’interaction des composants est la suivante :

  • Un client envoie une demande avec l’en-tête du proxy à NetScaler. L’appliance identifie dynamiquement la version.
  • Dans NetScaler, il s’agit d’une opération Forward. 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 du proxy ainsi que le TLV dans le protocole proxy V2 et transmet l’en-tête et le TLV au serveur principal.
  • Si les détails de l’en-tête du proxy ne sont pas au format incorrect, l’appliance réinitialise la connexion.
  • Côté 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 dépouillée

Opération dépouillée

L’interaction des composants est la suivante :

  • Un client envoie une demande accompagnée d’un en-tête de proxy à l’appliance NetScaler.
  • Dans l’appliance NetScaler, s’il s’agit d’une opération Stripped, 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 un 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 elle est « true », l’action de stratégie de réécriture correspondante est déclenchée. Les détails du client sont ensuite transférés au serveur principal dans un en-tête HTTP.
  • Si les détails de l’en-tête du proxy ne sont pas au format incorrect, 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, voir DP sur le protocole proxy .

  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 autres protocoles, c’est INCONNU.
    • 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 version 2 du protocole proxy

    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 l’en-tête Proxy version -2.
    • Prise en charge des protocoles TCP sur IPv4 et TCP sur IPv6. Pour les autres protocoles, c’est INCONNU.
    • Treizième octet — version du protocole et commande.
    • Quatorzième octet — famille d’adresses et de protocoles.
    • 15-16e octet : longueur de l’adresse dans l’ordre du réseau.
    • À partir du dix-septième octet - Adresses des informations présentes dans l’ordre du réseau - IP src, IP dst, port src, port dst.

Support d’expression de l’infrastructure des stratégies des répondeurs

Le protocole proxy prend en charge les expressions d’infrastructure de stratégie de réponse suivantes pour les serveurs virtuels de type TCP et HTTP :

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

Remarque

NetScaler prend en charge l’expression de l’infrastructure de stratégie de répondeur pour le protocole proxy sur un serveur virtuel de type TCP à partir des versions 13.1-48.x de NetScaler.

Configurer le protocole proxy dans l’appliance NetScaler

Effectuez les étapes suivantes pour configurer le protocole proxy dans votre appliance NetScaler.

  1. Activez le protocole proxy en tant que global.
  2. Configurez le protocole proxy pour l’opération d’insertion.
  3. Configurez le protocole proxy pour le fonctionnement Forward.
  4. Configurez le protocole proxy pour le fonctionnement de Strip.

Activer le protocole proxy en tant que global

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

set ns param –proxyProtocol ENABLED

Configurer le protocole proxy pour l’opération d’insertion

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

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

À 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, il n’est pas nécessaire de définir le paramètre de version du protocole.

Ajouter un profil réseau 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 NetScaler 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 NetScaler 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 réseau avec un serveur virtuel d’équilibrage de charge dans l’appliance NetScaler

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

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

Exemple :

set lb vserver lbvserver-1 –netprofile proxyProfile-1

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

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

set service <service name> –netprofile <name>

Exemple :

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

Liez le serveur virtuel d’équilibrage de charge au service

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

bind lb vserver <vserver name> <service name>

Exemple :

bind lb vserver lbvserver-1 http-service-1

Configurer le protocole proxy pour une opération de transfert

Pour configurer le protocole proxy pour l’opération Forward pour la prochaine instance NetScaler de la couche proxy, vous devez activer le protocole et vous connecter au serveur ou au service virtuel.

Remarque :

Le profil réseau créé pour le serveur virtuel d’équilibrage de charge peut également être utilisé pour le service.

Ajouter un profil réseau avec le protocole proxy activé pour le serveur virtuel d’équilibrage de charge

À 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 réseau 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 NetScaler 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 NetScaler 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 réseau avec un serveur virtuel d’équilibrage de charge dans l’appliance NetScaler

À 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 NetScaler

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

set service <service name> –netprofile <name>

Exemple :

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

Liez le serveur virtuel d’équilibrage de charge au service

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

bind lb vserver <vserver name> <service name>

Exemple :

bind lb vserver lbvserver-2 http-service-2

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

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

Ajouter un profil réseau avec le protocole proxy activé pour le serveur virtuel

À 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 NetScaler 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 NetScaler 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éfinissez le profil réseau avec un serveur virtuel d’équilibrage de charge ou de commutation de contenu dans l’appliance NetScaler

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

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

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

Liez le serveur virtuel d’équilibrage de charge au service

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

bind lb vserver <vserver name> <service name>

Exemple :

bind lb vserver lbvserver-3 http-service-3

Configurer l’expression de l’infrastructure de stratégie du répondeur pour le protocole proxy à l’aide de l’interface de ligne de commande

Pour configurer une stratégie de répondeur, à l’invite de commandes, tapez :

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

Exemple :

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

Pour lier la stratégie du répondeur au serveur virtuel d’équilibrage de charge, à l’invite de commande, tapez :

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

Exemple :

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

Exemple de configuration de bout en bout

> 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-->

Configurer le protocole proxy à l’aide de l’interface graphique NetScaler

  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.
  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 réseau, 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 sur V1 ou V2 en fonction du format des données entrantes.
  7. Cliquez sur OK.
  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 réseau, puis cliquez sur OK.
  14. Cliquez sur Terminé.
  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 réseau, puis cliquez sur OK.
  21. Cliquez sur Terminé.

Remarque :

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