Citrix ADC

Protocolo de proxy

El protocolo proxy transporta de forma segura los detalles del cliente del cliente al servidor a través de los dispositivos Citrix ADC. El dispositivo agrega un encabezado de protocolo proxy con los detalles del cliente y lo reenvía al servidor back-end. A continuación se presentan algunos de los casos de uso del protocolo proxy en un dispositivo Citrix ADC.

  • Aprendizaje de la dirección IP del cliente original
  • Selección de un idioma para un sitio web
  • Lista negra de direcciones IP seleccionadas
  • Registro y recopilación de estadísticas.

Los siguientes son los tres modos de operación:

  • Insertar. El dispositivo inserta los detalles del cliente y los envía al servidor back-end.
  • Adelante. El dispositivo reenvía los detalles del cliente al servidor back-end.
  • Despojado. El dispositivo almacena los detalles del cliente para fines de registro. Además, si el protocolo proxy no es compatible con el servidor back-end, envía los detalles del cliente al servidor mediante la configuración de directiva de reescritura

Limitaciones

La función de protocolo proxy no es compatible con las funciones TFO y MultiPath TCP.

Cómo funciona el protocolo proxy en un dispositivo Citrix ADC

Los siguientes diagramas de flujo muestran cómo puede configurar el protocolo proxy en los dispositivos Citrix ADC para la operación Insertar, Reenviar y Despojado:

Operación de inserción

Operación de inserción

El componente interactúa es el siguiente:

  • En la instancia de Citrix ADC, debe habilitar el protocolo proxy en el perfil de red y vincularlo al servicio.
  • En la operación Insertar, Citrix ADC agrega un encabezado proxy con detalles de conexión del cliente y lo reenvía al servidor back-end.
  • En el lado de envío, el dispositivo decide la versión del protocolo proxy en función de la configuración de CLI.

Operación de avance

Operación de avance

El componente interactúa es el siguiente:

  • Un cliente envía una solicitud junto con el encabezado proxy a Citrix ADC. El dispositivo identifica dinámicamente la versión.
  • En Citrix ADC appliance, se trata de una operación de reenvío. El protocolo proxy se habilita en el servidor virtual de equilibrio de carga o en el servidor virtual de conmutación de contenido y se habilita en el servicio. El dispositivo recibe el encabezado proxy y reenvía los detalles del encabezado al servidor back-end.
  • Si los detalles del encabezado del proxy tienen un formato no válido, el dispositivo restablece la conexión.
  • En el lado de envío, el dispositivo decide la versión del protocolo proxy en función de la configuración de CLI.

Operación despojada

Operación despojada

El componente interactúa es el siguiente:

  • Un cliente envía una solicitud junto con un encabezado proxy al dispositivo Citrix ADC.
  • En el dispositivo Citrix ADC, si se trata de una operación Despojado, el dispositivo reenvía la información del cliente obtenida del protocolo proxy y la inserta en el encabezado HTTP mediante expresiones de directiva de reescritura.
  • Los detalles del cliente como la dirección IP de origen, la dirección IP de destino, el puerto de origen y el puerto de destino se agregan en el encabezado HTTP mediante expresiones de directiva de reescritura. La directiva de reescritura evalúa la expresión y, si “true”, se activa la acción de directiva de reescritura correspondiente. Y los detalles del cliente se reenvían al servidor back-end en encabezado HTTP.
  • Si los detalles del encabezado del proxy tienen un formato no válido, el dispositivo restablece la conexión.

Formatos de versión de protocolo proxy

La versión del protocolo Proxy está disponible en dos formatos. El dispositivo decide utilizar un formato basado en la longitud de los datos entrantes. Para obtener información detallada, consulte RFP Protocolo de proxy.

  1. Formato de la versión 1 del protocolo proxy

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

    • PROXY -> Formato de cadena único para encabezado Proxy versión -1.
    • Soporta protocolos TCP sobre IPv4 y TCP sobre IPv6. Para los protocolos restantes, esto es DESCONOCIDO.
    • SRC IP: Dirección IP de origen (IP del cliente original) de un paquete.
    • IP de DST: Dirección IP de destino de un paquete.
    • Puerto SRC: Puerto de origen de un paquete.
    • Puerto DST: Puerto de destino de un paquete.
  2. Formato de la versión 2 del protocolo 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 -> Cadena binaria única para el encabezado Proxy versión -2.
    • Soporta protocolos TCP sobre IPv4 y TCP sobre IPv6. Para los protocolos restantes, esto es DESCONOCIDO.
    • 13º byte: Versión del protocolo y comando.
    • 14 bytes: Familia de direcciones y protocolos.
    • 15-16 bytes: Longitud de la dirección en orden de red.
    • 17º byte en adelante: Información de direcciones presente en el orden de red: Src IP, dst IP, src port, dst port.

Configurar el protocolo proxy en el dispositivo Citrix ADC

Siga el procedimiento que se indica a continuación para configurar el protocolo proxy en su dispositivo Citrix ADC.

  1. Habilitar el protocolo proxy como global.
  2. Configurar el protocolo proxy para la operación Insertar
  3. Configurar el protocolo proxy para la operación de reenvío
  4. Configurar el protocolo proxy para la operación de Strip
  5. Configurar el protocolo proxy para que no se realice ninguna operación

Habilitar el protocolo proxy como global

En el símbolo del sistema, escriba lo siguiente:

set ns param –proxyProtocol ENABLED

Configurar el protocolo proxy para la operación Insertar

Para configurar el protocolo proxy para la operación Insert, debe habilitar o inhabilitar el protocolo en el servidor virtual de equilibrio de carga y habilitarlo en el servicio.

Agregar perfil de red con el protocolo proxy inhabilitado para el servidor virtual de equilibrio de carga

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

Add netprofile proxyprofile-1 –proxyProtocol DISABLED –proxyprotocoltxversion V1

Nota:

Si inhabilita el protocolo proxy en el dispositivo, no es necesario establecer el parámetro de versión del protocolo.

Agregar perfil de red con un protocolo proxy habilitado para el servicio

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add netprofile proxyprofile-2 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Agregar un servidor virtual de equilibrio de carga para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add lb vserver lbvserver-1 http 1.1.1.1 80

Agregar servicio HTTP para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

Add service http-service-1 2.2.2.1 http 80

Establecer el perfil de red con el servidor virtual de equilibrio de carga en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

set lb vserver lbvserver-1 –netprofile proxyProfile-1

Establecer el perfil de red con el servicio HTTP en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

set service <service name> –netprofile <name>

Ejemplo:

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

Configurar el protocolo proxy para la operación de reenvío

Para configurar el protocolo proxy para la operación Reenviar para la siguiente instancia de Citrix ADC en la capa proxy. Debe habilitar o inhabilitar el protocolo y vincularlo al servidor virtual o servicio.

Agregar perfil de red con el protocolo proxy habilitado para el servidor virtual de equilibrio de carga

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add netprofile proxyprofile-3 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Agregar perfil de red con protocolo proxy habilitado para el servicio

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add netprofile proxyprofile-4 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Agregar un servidor virtual de equilibrio de carga para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add lb vserver lbvserver-2 http 2.2.2.2 80

Agregar servicio HTTP para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

Add service http-service-2 3.3.3.1 http 80

Establecer el perfil de red con el servidor virtual de equilibrio de carga en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

set lb vserver lbvserver-2 –netprofile proxyProfile-3

Establecer el perfil de red con el servicio HTTP en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

set service <service name> –netprofile <name>

Ejemplo:

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

Configurar el protocolo proxy para la operación de strip

Para configurar el protocolo proxy para la operación de strip, debe inhabilitar el protocolo proxy en el servidor virtual de equilibrio de carga y habilitar el protocolo proxy en el servicio.

Agregar perfil de red con protocolo proxy habilitado para el servicio

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Agregar un servidor virtual de equilibrio de carga o conmutación de contenido para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

add lb vserver lbvserver-3 http 2.2.2.2 80

Agregar servicio HTTP para el dispositivo Citrix ADC en la capa proxy

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

Add service http-service-3 3.3.3.1 http 80

Establecer el perfil de red con el equilibrio de carga o el servidor virtual de conmutación de contenido en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

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

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

Establecer el perfil de red con el servicio HTTP en el dispositivo Citrix ADC

En el símbolo del sistema, escriba lo siguiente:

set service <service name> –netprofile <name>

Ejemplo:

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

Agregar acción de reescritura para reenviar el encabezado HTTP al servidor back-end

En el símbolo del sistema, escriba lo siguiente:

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

Agregar directiva de reescritura para reenviar el encabezado HTTP al servidor back-end

En el símbolo del sistema, escriba lo siguiente:

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

Vincular directiva de reescritura global o servidor virtual

En el símbolo del sistema, escriba lo siguiente:

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

Ejemplo:

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

Configurar el protocolo proxy mediante la GUI de Citrix ADC

  1. Vaya a Sistema > Configuración > Cambiar configuración global del sistema.
  2. En la página Configurar parámetros de configuración global del sistema, marque la casilla Protocolo proxy.
  3. Haga clic en Aceptar y Cerrar.

    Página de protocolo proxy

  4. Vaya a Sistema > Red > Perfiles de red.
  5. En el panel de detalles, haga clic en Agregar para crear un perfil de red para el servidor virtual de equilibrio de carga.
  6. En la página Perfil de red, defina los siguientes parámetros:
    1. Name. Nombre del perfil de red.
    2. Protocolo proxy. Habilite o inhabilite el protocolo proxy para el servidor virtual de equilibrio de carga.
    3. Versión TX del protocolo proxy. Establezca la versión del protocolo proxy como V1 o V2 en función del formato de datos entrantes.
  7. Haga clic en OK.

    Imagen localizada

  8. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  9. En el panel de detalles, haga clic en Agregar.
  10. En la página Servidor virtual de equilibrio de carga, establezca los parámetros básicos.
  11. En la sección Configuración avanzada, seleccione Perfiles.
  12. En la sección Perfiles, haga clic en el icono del lápiz.
  13. Seleccione un perfil de red y haga clic en Aceptar.
  14. Haga clic en Listo.

    Imagen localizada

  15. Vaya a Administración del tráfico > Equilibrio de carga > Servicios.
  16. En el panel de detalles, haga clic en Agregar.
  17. En la página Servicio de equilibrio de carga, defina los parámetros básicos.
  18. En la sección Configuración avanzada, seleccione Perfiles.
  19. En la sección Perfiles, haga clic en el icono del lápiz.
  20. Seleccione un perfil de red y haga clic en Aceptar.
  21. Haga clic en Listo.

Nota:

Si tiene más de un dispositivo Citrix ADC como parte de la capa proxy, debe establecer la configuración del protocolo proxy en cada dispositivo para la operación de reenvío.

Configuración del protocolo proxy