ADC

Protocolo proxy

El protocolo proxy transporta de forma segura los detalles del cliente al servidor en todos los dispositivos NetScaler. 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 NetScaler.

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

A continuación se presentan los tres modos de funcionamiento:

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

La siguiente tabla proporciona información sobre el estado del servidor virtual y el servicio de LB en diferentes modos de protocolo proxy:

Modo de protocolo proxy Servidor virtual LB Servicio
Insertar Inhabilitado Habilitado
Reenviar Habilitado Habilitado
Despojado Habilitado Inhabilitado

Limitaciones

El protocolo proxy no es compatible con las funciones TCP Fast Open (TFO) y MultiPath TCP. La función solo se admite para los servicios para los que el dispositivo NetScaler realiza la terminación de la conexión TCP. No es compatible con otros servicios; por ejemplo, “ANY”.

Cómo funciona el protocolo proxy en un dispositivo NetScaler

Los diagramas de flujo siguientes muestran cómo configurar el protocolo proxy en los dispositivos NetScaler para las operaciones Insertar, Reenviar y Despojar:

operación de inserción

operación de inserción

El componente interact es el siguiente:

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

Operación de avance

Operación de avance

El componente interact es el siguiente:

  • Un cliente envía una solicitud junto con el encabezado del proxy a NetScaler. El dispositivo identifica dinámicamente la versión.
  • En el dispositivo NetScaler, es 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 no tienen un formato válido, el dispositivo restablece la conexión.
  • En el lado del envío, el dispositivo decide la versión del protocolo proxy en función de la configuración de la CLI.

Operación despojada

Operación despojada

El componente interact es el siguiente:

  • Un cliente envía una solicitud junto con un encabezado proxy al dispositivo NetScaler.
  • En el dispositivo NetScaler, si se trata de una operación de eliminación, 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 un encabezado HTTP mediante expresiones de directiva de reescritura. La directiva de reescritura evalúa la expresión y, si es “true”, se desencadena la acción de directiva de reescritura correspondiente. Y los detalles del cliente se reenvían al servidor back-end en un encabezado HTTP.
  • Si los detalles del encabezado del proxy no tienen un formato válido, el dispositivo restablece la conexión.

Formatos de versión de protocolo

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 de protocolo 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.
    • Admite protocolos TCP sobre IPv4 y TCP sobre IPv6. Para los protocolos restantes, esto es DESCONOCIDO.
    • IP de SRC: 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 encabezado Proxy versión -2.
    • Admite protocolos TCP sobre IPv4 y TCP sobre IPv6. Para los protocolos restantes, esto es DESCONOCIDO.
    • Decimotercer byte: versión y comando del protocolo.
    • Decimocuarto byte: familia de direcciones y protocolos.
    • 15-16th byte: longitud de la dirección en orden de red.
    • Decimoséptimo byte en adelante: información de direcciones presente en el orden de red: IP src, ip dst, puerto src, puerto dst.

Soporte de expresión de infraestructura de directivas de respuesta

El protocolo proxy admite las siguientes expresiones de infraestructura de directivas de respuesta para servidores virtuales de tipo TCP y HTTP:

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

Nota

NetScaler admite la expresión de infraestructura de directivas de respuesta para el protocolo proxy en un servidor virtual de tipo TCP a partir de las versiones 13.1-48.x de NetScaler.

Configurar el protocolo proxy en el dispositivo NetScaler

Realice los siguientes pasos para configurar el protocolo Proxy en su dispositivo NetScaler.

  1. Habilite el protocolo proxy como global.
  2. Configure el protocolo proxy para la operación de inserción.
  3. Configure el protocolo proxy para la operación Forward.
  4. Configure el protocolo proxy para el funcionamiento de Strip.

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 Insert

Para configurar el protocolo proxy para la operación Insertar, debe inhabilitar el protocolo en el servidor virtual de equilibrio de carga y habilitar el protocolo 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

Agregue un servidor virtual de equilibrio de carga para el dispositivo NetScaler 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 NetScaler 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 NetScaler

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 NetScaler

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

set service <service name> –netprofile <name>

Ejemplo:

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

Enlazar el servidor virtual de equilibrio de carga al servicio

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

bind lb vserver <vserver name> <service name>

Ejemplo:

bind lb vserver lbvserver-1 http-service-1

Configurar el protocolo proxy para operaciones de reenvío

Para configurar el protocolo proxy para la operación Forward para la siguiente instancia de NetScaler de la capa proxy, debe habilitar el protocolo y vincularlo al servidor o servicio virtual.

Nota:

El perfil de red creado para el servidor virtual de equilibrio de carga también se puede utilizar como 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 el 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

Agregue un servidor virtual de equilibrio de carga para el dispositivo NetScaler 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 NetScaler 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 NetScaler

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 NetScaler

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

set service <service name> –netprofile <name>

Ejemplo:

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

Enlazar el servidor virtual de equilibrio de carga al servicio

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

bind lb vserver <vserver name> <service name>

Ejemplo:

bind lb vserver lbvserver-2 http-service-2

Configurar el protocolo proxy para la operación strip

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

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

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 NetScaler 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 NetScaler 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 servidor virtual de equilibrio de carga o conmutación de contenido en el dispositivo NetScaler

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

Enlazar el servidor virtual de equilibrio de carga al servicio

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

bind lb vserver <vserver name> <service name>

Ejemplo:

bind lb vserver lbvserver-3 http-service-3

Configure la expresión de infraestructura de directivas de respuesta para el protocolo proxy mediante la CLI

Para configurar una directiva de respuesta, en la línea de comandos, escriba:

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

Ejemplo :

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

Para vincular la directiva de respuesta al servidor virtual de equilibrio de carga, en la línea de comandos, escriba:

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

Ejemplo :

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

Ejemplo de configuración de extremo a extremo

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

Configurar el protocolo proxy mediante la interfaz gráfica de usuario de NetScaler

  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, seleccione la casilla de verificación Protocolo proxy.
  3. Haga clic en Aceptar y Cerrar.
  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. Nombre: 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: defina la versión del protocolo proxy como V1 o V2 en función del formato de datos entrantes.
  7. Haga clic en Aceptar.
  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.
  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 NetScaler como parte de la capa de proxy, debe establecer la configuración del protocolo proxy en cada dispositivo para la operación de reenvío.