Ingress Controller de Citrix ADC

Casos de uso TCP

Este tema cubre varios casos de uso de TCP que puede configurar en el Citrix ADC de entrada mediante las anotaciones en el Citrix Ingress Controller.

En la siguiente tabla se enumeran los casos de uso de TCP con anotaciones de ejemplo:

Caso de uso Anotación de muestra
Eliminar conexiones TCP inactivas de forma silenciosa ingress.citrix.com/frontend-tcpprofile: '{"apache":{"DropHalfClosedConnOnTimeout" : "ENABLE", "DropEstConnOnTimeout":"ENABLE"}}'
Reconocimientos de conexión TCP retrasados ingress.citrix.com/frontend-tcpprofile: '{"apache":{"delayack" : "150"}}'
Gestión de sesiones MPTCP del lado del cliente ingress.citrix.com/frontend-tcpprofile: '{"apache":{"mptcp": "ENABLED", "mptcpSessionTimeout":"7200"}}'
Optimización de TCP N/D
Defender el TCP contra los ataques de suplantación ingress.citrix.com/frontend_tcpprofile: '{"rstwindowattenuate" : "enabled", "spoofSynDrop":"enabled"}

Eliminar conexiones TCP inactivas de forma silenciosa

En una red, una gran cantidad de conexiones TCP se vuelven inactivas y el Citrix ADC de entrada envía paquetes RST para cerrarlos. Los paquetes enviados a través de los canales activan esos canales innecesariamente, lo que provoca una inundación de mensajes que, a su vez, hace que Ingress Citrix ADC genere una inundación de mensajes de rechazo de servicio.

Al usar los dropestconnontimeout parámetros drophalfclosedconnontimeout y en los perfiles TCP, puede eliminar silenciosamente las conexiones TCP semicerradas en tiempo de espera inactivo o eliminar las conexiones establecidas de TCP en un tiempo de espera inactivo. De forma predeterminada, estos parámetros están inhabilitados en el Citrix ADC de entrada. Si habilita ambos, ni una conexión semicerrada ni una conexión establecida provocan que se envíe un paquete RST al cliente cuando se agote el tiempo de espera de la conexión. El Citrix ADC simplemente interrumpe la conexión.

Con las anotaciones para los perfiles TCP, puede habilitar o inhabilitar el drophalfclosedconnontimeout y dropestconnontimeout en el Citrix ADC de entrada. A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar estos parámetros:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"drophalfclosedconnontimeout" : "enable", "dropestconnontimeout":"enable"}}'

Reconocimientos de conexión TCP retrasados

Para evitar el envío de varios paquetes ACK, Ingress Citrix ADC admite el mecanismo de acuse de recibo retrasado de TCP. Envía un ACK retrasado con un tiempo de espera predeterminado de 100 ms. Citrix ADC de entrada acumula paquetes de datos y envía ACK solo si recibe dos paquetes de datos a continuación o si el temporizador expira. El retraso mínimo que puede establecer para el ACK implementado de TCP es de 10 ms y el máximo es de 300 ms. De forma predeterminada, el retraso se establece en 100 ms.

Con las anotaciones para los perfiles TCP, puede administrar el parámetro ACK retrasado. A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar estos parámetros:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"delayack" : "150"}}'

Gestión de sesiones MPTCP del lado del cliente

Realice la configuración TCP en las conexiones Citrix ADC de entrada para MPTCP entre el cliente y Citrix ADC de entrada. Las conexiones MPTCP no se admiten entre Citrix ADC y la comunicación back-end. Tanto el cliente como el dispositivo Citrix ADC de entrada deben admitir la misma versión MPTCP.

Puede habilitar MPTCP y establecer el tiempo de espera de la sesión MPTCP (mptcpsessiontimeout) en segundos mediante los perfiles TCP en Ingress Citrix ADC. Si el mptcpsessiontimeout valor no está establecido, las sesiones MPTCP se vacían después de que se agote el tiempo de espera de inactividad del cliente. El valor de tiempo de espera mínimo que puede establecer es 0 y el máximo es 86400. De forma predeterminada, el valor de tiempo de espera se establece en 0.

Con las anotaciones para los perfiles TCP, puede habilitar MPTCP y establecer el valor del parámetro mptcpsessiontimeout en Ingress Citrix ADC. A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar MPTCP y establecer el valor del parámetro mptcpsessiontimeout en 7200 en el Citrix ADC de entrada:

ingress.citrix.com/frontend-tcpprofile: '{"apache":{"mptcp" : "ENABLED", "mptcpSessionTimeout":"7200"}}'

Optimización de TCP

La mayoría de las capacidades de optimización de TCP relevantes de Ingress Citrix ADC se exponen a través de un perfil TCP correspondiente. Con las anotaciones para los perfiles TCP, puede habilitar las siguientes capacidades de optimización de TCP en Ingress Citrix ADC:

  • Selective acknowledgment (SACK): TCP SACK aborda el problema de las pérdidas de paquetes múltiples, lo que reduce la capacidad de rendimiento general. Con el acuse de recibo selectivo, el receptor puede informar al remitente sobre todos los segmentos que se reciben correctamente, lo que permite al remitente retransmitir solo los segmentos que se perdieron. Esta técnica ayuda a T1 a mejorar el rendimiento general y a reducir la latencia de la conexión.

    A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar SACK en el Citrix ADC de entrada:

     ingress.citrix.com/frontend_tcpprofile: '{"sack" : "enabled"}
    
  • Forward acknowledgment (FACK): Para evitar la congestión de TCP midiendo explícitamente el número total de bytes de datos pendientes en la red y ayudando al remitente (ya sea T1 o un cliente) a controlar la cantidad de datos inyectados en la red durante los tiempos de espera de retransmisión.

    A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar FACK en el Citrix ADC de entrada:

     ingress.citrix.com/frontend_tcpprofile: '{"fack" : "enabled"}
    
  • Window Scaling (WS): La escala de la ventana TCP permite aumentar el tamaño de la ventana de recepción TCP más allá de 65535 bytes. Ayuda a mejorar el rendimiento de TCP en general y especialmente en redes de gran ancho de banda y larga demora. Ayuda a reducir la latencia y a mejorar el tiempo de respuesta a través de TCP.

    A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar WS en el Citrix ADC de entrada:

     ingress.citrix.com/frontend_tcpprofile: '{"ws" : "enabled", "wsval" : "9"}
    

    Donde wsval es el factor utilizado para calcular el tamaño de la nueva ventana. El argumento es obligatorio solo cuando la escala de ventana está habilitada. El valor mínimo que puede establecer es 0 y el máximo es 14. De forma predeterminada, el valor se establece en 4.

  • Maximum Segment Size (MSS): MSS de un solo segmento TCP. Este valor depende de la configuración de MTU en enrutadores intermedios y clientes finales. Un valor de 1460 corresponde a una MTU de 1500.

    A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar MSS en el Citrix ADC de entrada:

     ingress.citrix.com/frontend_tcpprofile: '{"mss" : "1460", "maxPktPerMss" : "512"}
    

    Donde:

    • mss es el MSS que se utilizará para la conexión TCP. El valor mínimo que puede establecer es 0 y el máximo es 9176.
    • maxPktPerMss es el número máximo de paquetes TCP permitidos por tamaño máximo de segmento (MSS). El valor mínimo que puede establecer es 0 y el máximo es 1460.
  • Keep-Alive (KA): Envíe sondeos TCP keepalive (KA) periódicos para comprobar si el par sigue activo.

    A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar TCP keepalive (KA) en el Citrix ADC de entrada:

     ingress.citrix.com/frontend_tcpprofile: '{"ka" : "enabled", "kaprobeupdatelastactivity":"enabled", "KAconnIdleTime": "900",  "kamaxprobes" : "3",  "kaprobeinterval" : "75"}
    

    Donde:

    • ka se utiliza para permitir el envío de sondeos TCP keep-alive (KA) periódicos para comprobar si el par sigue activo. Valores posibles: ENABLED, DISABLED. Valor por defecto: DISABLED.
    • kaprobeupdatelastactivity actualiza la última actividad de la conexión después de recibir sondeos keepalive (KA). Valores posibles: ENABLED, DISABLED. Valor predeterminado: ENABLED.
    • KAconnIdleTime es la duración (en segundos) para que la conexión esté inactiva, antes de enviar una sonda keepalive (KA). El valor mínimo que puede establecer es 1 y el máximo es 4095.
    • kaprobeinterval es el tiempo interno (en segundos) antes del siguiente sondeo keepalive (KA), si el par no responde. El valor mínimo que puede establecer es 1 y el máximo es 4095.
  • bufferSize: Especifique el tamaño del búfer TCP, en bytes. El valor mínimo que puede establecer es 8190 y el máximo es 20971520. De forma predeterminada, el valor se establece en 8190.

    A continuación se muestra una anotación de ejemplo del perfil TCP para especificar el tamaño del búfer TCP:

     ingress.citrix.com/frontend_tcpprofile: '{"bufferSize" : "8190"}
    
  • MPTCP: Habilite MPTCP y establezca la configuración MPTCP opcional. A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar MPTCP y establecer las configuraciones MPTCP opcionales:

     ingress.citrix.com/frontend_tcpprofile: '{"mptcp" : "enabled", "mptcpDropDataOnPreEstSF":"enabled", "mptcpFastOpen": "enabled", "mptcpSessionTimeout":"7200"}
    
  • flavor: Defina el algoritmo de control de congestión TCP. Los valores válidos son Default, BIC, CUBIC, Westwood y Nile. De forma predeterminada, el valor se establece en Predeterminado. A continuación, se muestra un ejemplo de anotación del perfil TCP para establecer el algoritmo de control de congestión TCP:

     ingress.citrix.com/frontend_tcpprofile: '{"flavor" : "westwood"}
    
  • Dynamic receive buffering: Habilitar o inhabilitar el almacenamiento en búfer de recepción dinámico. Cuando está habilitado, permite que el búfer de recepción se ajuste dinámicamente en función de las condiciones de la memoria y de la red. Valores posibles: ENABLED, DISABLED y el valor predeterminado: DISABLED.

    Nota:

    Se debe establecer el argumento tamaño del búfer para que se realicen ajustes dinámicos.

     ingress.citrix.com/frontend_tcpprofile: '{"dynamicReceiveBuffering" : "enabled"}
    

Defienda el TCP contra los ataques de suplantación

Puede habilitar el Citrix ADC de entrada para defender TCP contra ataques de suplantación de identidad mediante los perfiles rstWindowAttenuation en TCP. De forma predeterminada, el parámetro rstWindowAttenuation está inhabilitado. Este parámetro está habilitado para proteger el Citrix ADC de entrada contra la suplantación de identidad. Si lo habilita, responde con acuse de recibo correctivo (ACK) para un número de secuencia no válido. Los valores posibles están habilitados o inhabilitados.

A continuación, se muestra una anotación de ejemplo del perfil TCP para habilitar rstWindowAttenuation en el Citrix ADC de entrada:

ingress.citrix.com/frontend_tcpprofile: '{"rstwindowattenuate" : "enabled", "spoofSynDrop":"enabled"}
Casos de uso TCP