Citrix ADC

Cómo limitar el consumo de ancho de banda por usuario o dispositivo cliente

Su sitio web, aplicación o servicio de alojamiento de archivos tiene recursos finitos de red y servidor disponibles para servir a todos sus usuarios. Uno de los recursos más importantes es el ancho de banda. Un consumo considerable de ancho de banda solo por un subconjunto de la base de usuarios puede provocar congestión de la red y una menor disponibilidad de recursos para otros usuarios. Para evitar la congestión de la red, es posible que tenga que limitar el consumo de ancho de banda de un cliente mediante técnicas de denegación de servicio temporales, como responder a una solicitud de cliente con una página HTML si ha excedido un valor de ancho de banda preconfigurado durante un período de tiempo fijo previo a la solicitud.

En general, puede regular el consumo de ancho de banda por dispositivo cliente o por usuario. Este caso de uso demuestra cómo puede limitar el consumo de ancho de banda por cliente a 100 MB durante un período de tiempo de una hora. El caso de uso también demuestra cómo puede regular el consumo de ancho de banda por usuario a 100 MB durante un período de tiempo de una hora, mediante un encabezado personalizado que proporciona el nombre de usuario. En ambos casos, el seguimiento del consumo de ancho de banda durante un período de tiempo en movimiento de una hora se logra estableciendo el parámetro de intervalo en el identificador de flujo en 60 minutos. Los casos de uso también demuestran cómo puede importar una página HTML para enviarla a un cliente que ha superado el límite. La importación de una página HTML no solo simplifica la configuración de la acción de respuesta en estos casos de uso, sino que también simplifica la configuración de todas las acciones de respuesta que necesitan la misma respuesta.

Para limitar el consumo de ancho de banda por usuario o dispositivo cliente mediante la interfaz de línea de comandos

En la interfaz de línea de comandos, realice las siguientes tareas para configurar el análisis de acciones para limitar el consumo de ancho de banda de un cliente o usuario. Cada paso incluye comandos de ejemplo y su salida.

  1. Configure la configuración de equilibrio de carga. Configure el servidor virtual de equilibrio de carga mysitevip y, a continuación, configure todos los servicios que necesite. Enlazar los servicios al servidor virtual. El siguiente ejemplo crea diez servicios y los vincula a mysitevip.

    > add lb vserver mysitevip HTTP 192.0.2.17 80
     Done
    > add service service[1-10] 192.0.2.[240-249] HTTP 80
    service "service1" added
    service "service2" added
    service "service3" added
    .
    .
    .
    service "service10" added
     Done
    > bind lb vserver vserver1 service[1-10]
    service "service1" bound
    service "service2" bound
    service "service3" bound
    .
    .
    .
    service "service10" bound
     Done
    
  2. Configure el selector de flujo. Configure uno de los siguientes selectores de flujo:

    • Para limitar el consumo de ancho de banda por cliente, configure un selector de flujo que identifique la dirección IP del cliente.

       > add stream selector myselector CLIENT.IP.SRC
        Done
      
    • Para limitar el consumo de ancho de banda por usuario sobre la base del valor de un encabezado de solicitud que proporciona el nombre de usuario, configure un selector de flujo que identifique el encabezado. En el ejemplo siguiente, el nombre del encabezado es UserHeader.

       > add stream selector myselector HTTP.REQ.HEADER(“UserHeader”)
        Done
      
  3. Configure un identificador de flujo. Configure un identificador de flujo que utilice el selector de flujo. Establezca el parámetro de intervalo en 60 minutos.

    > add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH
     Done
    
  4. Configure la acción de respondedor. Importe la página HTML que quiere enviar a los usuarios o clientes que hayan superado el límite de consumo de ancho de banda y, a continuación, utilice la página en respuesta action crossed_limits.

    > import responder htmlpage http://192.0.2.20:80/stdpages/wait.html crossed-limits.html
    This operation may take some time, Please wait...
    
     Done
    > add responder action crossed_limits respondwithhtmlpage crossed-limits.html
     Done
    
  5. Configure las directivas de respondedor. Configure la directiva de respuesta myrespol1 con la regla ANALYTICS.STREAM (“myidentifier”).COLLECT_STATS y la acción NOOP. A continuación, configure la directiva myrespol2 para determinar si un cliente o usuario ha cruzado el límite de 100 MB. La directiva myrespol2 se configura con la acción de respuesta crossed_limits.

    > add responder policy myrespol1 'ANALYTICS.STREAM("myidentifier").COLLECT_STATS' NOOP
     Done
    > add responder policy myrespol2 'ANALYTICS.STREAM("myidentifier").BANDWIDTH.GT(1048576)' crossed_limits
     Done
    
  6. Enlazar las directivas de respuesta al servidor virtual de equilibrio de carga. La directiva myrespol1, que solo recopila datos estadísticos, debe tener la prioridad más alta y una expresión GOTO de NEXT.

    > bind lb vserver mysitevip -policyName myrespol1 -priority 1 -gotoPriorityExpression NEXT
     Done
    > bind lb vserver mysitevip -policyName myrespol2 -priority 2 -gotoPriorityExpression END
     Done
    
  7. Pruebe la configuración. Pruebe la configuración enviando solicitudes HTTP de prueba, desde varios clientes o usuarios, al servidor virtual de equilibrio de carga y mediante el comando stat stream identifier para ver las estadísticas que se recopilan para el identificador especificado. El siguiente resultado muestra las estadísticas de los clientes.

    > stat stream identifier myidentifier -sortBy BandW –fullValues
    Stream Session statistics
                              Req           BandW
    192.0.2.30                5000          3761
    192.0.2.31                29            2602
    192.0.2.32                25            51
    
                              RspTime       Conn
    192.0.2.30                2             0
    192.0.2.31                0             0
    192.0.2.32                0             0
     Done
    >
    

Cómo limitar el consumo de ancho de banda por usuario o dispositivo cliente