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 limitados de red y servidor disponibles para atender a todos sus usuarios. Uno de los recursos más importantes es el ancho de banda. El consumo sustancial de ancho de banda por parte de solo un subconjunto de la base de usuarios puede provocar congestión de la red y reducir la disponibilidad de recursos para otros usuarios. Para evitar la congestión de la red, es posible que tengas que limitar el consumo de ancho de banda de un cliente mediante técnicas temporales de denegación de servicio, como responder a una solicitud de un cliente con una página HTML si ha superado 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 una hora. El caso de uso también demuestra cómo se puede regular el consumo de ancho de banda por usuario a 100 MB durante un período 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 móvil de una hora se logra estableciendo el parámetro de intervalo en el identificador de transmisión en 60 minutos. Los casos de uso también muestran cómo se 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 a fin de limitar el consumo de ancho de banda de un cliente o usuario. Cada paso incluye comandos de ejemplo y sus resultados.

  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
    <!--NeedCopy-->
    
  2. Configure el selector de transmisión. Configure uno de los siguientes selectores de transmisión:

    • 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
       <!--NeedCopy-->
      
    • Para limitar el consumo de ancho de banda por usuario en función 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
       <!--NeedCopy-->
      
  3. Configure un identificador de transmisión. Configure un identificador de transmisión que utilice el selector de transmisión. Establezca el parámetro de intervalo en 60 minutos.

    > add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH
     Done
    <!--NeedCopy-->
    
  4. Configure la acción de respuesta. Importe la página HTML que desea 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 la acción de respuesta crossed_limits.

    > import responder htmlpage http://.1.1.1/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
    <!--NeedCopy-->
    
  5. Configure las directivas de respuesta. 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 superado 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(104857600)' crossed_limits
     Done
    <!--NeedCopy-->
    
  6. Enlace 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
    <!--NeedCopy-->
    
  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 utilizando el comando stat stream identifier para ver las estadísticas recopiladas 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
    >
    <!--NeedCopy-->
    
Cómo limitar el consumo de ancho de banda por usuario o dispositivo cliente

En este artículo