Comment limiter la consommation de bande passante par utilisateur ou périphérique client

Votre site Web, application ou service d’hébergement de fichiers dispose de ressources réseau et serveur limitées pour servir tous ses utilisateurs. L’une des ressources les plus importantes est la bande passante. Une consommation importante de bande passante par seulement un sous-ensemble de la base d’utilisateurs peut entraîner une congestion du réseau et une réduction de la disponibilité des ressources pour les autres utilisateurs. Pour éviter la congestion réseau, vous devrez peut-être limiter la consommation de bande passante d’un client en utilisant des techniques de déni de service temporaires telles que la réponse à une demande client avec une page HTML si elle a dépassé une valeur de bande passante préconfigurée sur une période de temps fixe précédant la demande.

En général, vous pouvez réguler la consommation de bande passante par appareil client ou par utilisateur. Ce cas d’utilisation montre comment vous pouvez limiter la consommation de bande passante par client à 100 Mo sur une période d’une heure. Le cas d’utilisation montre également comment vous pouvez réguler la consommation de bande passante par utilisateur à 100 Mo sur une période d’une heure, à l’aide d’un en-tête personnalisé qui fournit le nom d’utilisateur. Dans les deux cas, le suivi de la consommation de bande passante sur une période de déplacement d’une heure est réalisé en définissant le paramètre d’intervalle dans l’identificateur de flux sur 60 minutes. Les cas d’utilisation montrent également comment importer une page HTML à envoyer à un client qui a dépassé la limite. L’importation d’une page HTML simplifie non seulement la configuration de l’action du répondeur dans ces cas d’utilisation, mais simplifie également la configuration de toutes les actions du répondeur qui nécessitent la même réponse.

Pour limiter la consommation de bande passante par utilisateur ou par périphérique client à l’aide de l’interface de ligne de commande

Dans l’interface de ligne de commande, effectuez les tâches suivantes pour configurer l’analyse des actions afin de limiter la consommation de bande passante d’un client ou d’un utilisateur. Chaque étape comprend des exemples de commandes et leur sortie.

  1. Configurez votre configuration d’équilibrage de charge. Configurez le serveur virtuel d’équilibrage de charge mysitevip, puis configurez tous les services dont vous avez besoin. Liez les services au serveur virtuel. L’exemple suivant crée dix services et lie les services à 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. Configurez le sélecteur de flux. Configurez l’un des sélecteurs de flux suivants :

    • Pour limiter la consommation de bande passante par client, configurez un sélecteur de flux qui identifie l’adresse IP du client.

       > add stream selector myselector CLIENT.IP.SRC
        Done
      
    • Pour limiter la consommation de bande passante par utilisateur sur la base de la valeur d’un en-tête de demande qui fournit le nom d’utilisateur, configurez un sélecteur de flux qui identifie l’en-tête. Dans l’exemple suivant, le nom de l’en-tête est UserHeader.

       > add stream selector myselector HTTP.REQ.HEADER(“UserHeader”)
        Done
      
  3. Configurez un identifiant de flux. Configurez un identificateur de flux qui utilise le sélecteur de flux. Définissez le paramètre d’intervalle sur 60 minutes.

    > add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH
     Done
    
  4. Configurez l’action du répondeur. Importez la page HTML que vous souhaitez envoyer aux utilisateurs ou aux clients qui ont dépassé la limite de consommation de bande passante, puis utilisez la page dans l’action répondeur 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. Configurez les stratégies de répondeur. Configurez la stratégie de répondeur myrespol1 avec la règle ANALYTICS.STREAM (« myidentifier ») .COLLECT_STATS et l’action NOOP. Ensuite, configurez la stratégie myrespol2 pour déterminer si un client ou un utilisateur a dépassé la limite de 100 Mo. La stratégie myrespol2 est configurée avec l’action du répondeur 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. Liez les stratégies du répondeur au serveur virtuel d’équilibrage de charge. La stratégie myrespol1, qui ne recueille que des données statistiques, doit avoir la priorité la plus élevée et une expression 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. Tester la configuration. Testez la configuration en envoyant des requêtes HTTP de test, provenant de plusieurs clients ou utilisateurs, au serveur virtuel d’équilibrage de charge et en utilisant la commande stat stream identifier pour afficher les statistiques collectées pour l’identificateur spécifié. La sortie suivante affiche des statistiques pour les clients.

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

Comment limiter la consommation de bande passante par utilisateur ou périphérique client