ADC

Limitation du débit pour NetScaler Gateway

La fonctionnalité de limitation de débit de NetScaler Gateway vous permet de définir la charge maximale pour une entité réseau ou une entité virtuelle donnée sur l’appliance NetScaler Gateway. Étant donné que l’appliance NetScaler Gateway consomme tout le trafic non authentifié, elle est souvent exposée à des demandes de traitement à un taux élevé. La fonction de limitation de débit vous permet de configurer l’appliance NetScaler Gateway pour surveiller le débit de trafic associé à une entité et prendre des mesures préventives, en temps réel, en fonction du trafic. Pour plus d’informations sur le fonctionnement de la limitation de débit dans une appliance Citrix ADC, voir Limitation de débit.

Citrix ADC possède la fonctionnalité de limitation de débit qui fournit une protection aux serveurs principaux pour un taux imprévu. Étant donné que la fonctionnalité de Citrix ADC ne servait pas le trafic non authentifié que NetScaler Gateway gère, NetScaler Gateway avait besoin de sa propre fonctionnalité de limitation de débit. Cela est nécessaire pour vérifier un taux imprévu de demandes provenant de diverses sources auxquelles l’appliance NetScaler Gateway est exposée. Par exemple, les demandes de connexion/de contrôle non authentifiées et certaines API exposées pour les validations des utilisateurs finaux ou des appareils.

Cas d’utilisation courants pour la limitation de débit

  • Limitez le nombre de demandes par seconde à partir d’une URL.

  • Supprimer une connexion basée sur les cookies reçus à la demande d’un hôte particulier si la demande dépasse la limite de débit.

  • Limitez le nombre de requêtes HTTP qui arrivent du même hôte (avec un masque de sous-réseau particulier) et qui ont la même adresse IP de destination.

Configurer la limitation de débit pour NetScaler Gateway

Conditions préalables

Un serveur virtuel d’authentification configuré.

Points à noter

  • Au cours des étapes de configuration, un exemple d’identificateur de limite est configuré. La même chose peut être configurée avec tous les paramètres pris en charge comme le sélecteur de flux, mode. Pour obtenir une description exhaustive des capacités de limitation de débit, voir Limitation de débit.

  • La stratégie peut également être liée à un serveur virtuel VPN comme suit. Vous avez besoin d’un serveur virtuel VPN configuré pour lier les stratégies à l’aide de la commande suivante.

     bind vpn vserver  -policy denylogin –pri 1 –type aaa_request
     <!--NeedCopy-->
    
  • AAA_REQUEST est un nouveau point de liaison introduit pour les stratégies de répondeur. Les stratégies configurées à ce point de liaison sont appliquées à toutes les demandes entrantes sur le serveur virtuel spécifié. Les stratégies sont traitées pour le trafic non authentifié/de contrôle avant tout autre traitement.

  • La liaison de la stratégie au serveur virtuel NetScaler Gateway permet de limiter le débit au niveau du point de liaison AAA_REQUEST pour tout le trafic consommé par NetScaler Gateway, y compris les demandes non authentifiées.

  • La liaison de la stratégie à un débit de serveur virtuel d’authentification limite les demandes non authentifiées/de contrôle qui touchent le serveur virtuel d’authentification.

Pour configurer la limitation de débit à l’aide de l’interface de ligne de commande, à l’invite de commandes, tapez les commandes suivantes :

add limitIdentifier <limitIdentifier name> -threshold <positive_integer> -timeslice <positive_integer> -mode <mode type>
<!--NeedCopy-->

Exemple :

add limitIdentifier limit_one_login -threshold 10 -timeslice 4294967290 -mode REQUEST_RATE
<!--NeedCopy-->
add responderaction denylogin respondwith ‘“HTTP/1.1 200 OK\r\n\r\n” + “Request is denied due to unusual rate”’
<!--NeedCopy-->
add responder policy denylogin 'sys.check_limit("limit_one_login")' denylogin
<!--NeedCopy-->
bind authentication vserver <vserver name> -policy denylogin –pri 1 –type aaa_request
<!--NeedCopy-->

Exemple :

bind authentication vserver authvserver -policy denylogin –pri 1 –type aaa_request
<!--NeedCopy-->

Description des paramètres

  • LimitIdentifier : nom d’un identificateur de limite de taux. Doit commencer par une lettre ASCII ou un caractère de soulignement (_) et ne doit être composé que de caractères alphanumériques ou de soulignement ASCII. Les mots réservés ne doivent pas être utilisés. Il s’agit d’un argument obligatoire. Longueur maximale : 31

  • threshold : nombre maximal de demandes autorisées dans la tranche de temps donnée lorsque les demandes (le mode est défini sur REQUEST_RATE) sont suivies par tranche de temps. Lorsque les connexions (le mode est défini sur CONNECTION) sont suivies, il s’agit du nombre total de connexions qui seraient laissées passer. Valeur par défaut : 1 Valeur minimale : 1 Valeur maximale : 4294967295

  • TimeSlice - Intervalle de temps, en millisecondes, spécifié en multiples de 10, pendant lequel les demandes sont suivies pour vérifier si elles dépassent le seuil. L’argument n’est nécessaire que lorsque le mode est défini sur REQUEST_RATE. Valeur par défaut : 1000 Valeur minimale : 10 Valeur maximale : 4294967295

  • mode - Définit le type de trafic à suivre.

    • REQUEST_RATE - Effectue le suivi des requêtes/tranche de temps.
    • CONNEXION - Effectue le suivi des transactions actives.

Pour configurer la limitation de débit à l’aide de l’interface graphique Citrix ADC :

  1. Accédez à AppExpert > Limitation de débit > Identificateurs de limite, cliquez sur Ajouter et spécifiez les détails pertinents comme indiqué dans la section CLI.

    Créez un identificateur de limite.

  2. Accédez à AppExpert>Responder>Stratégies. Sur la page Stratégies de répondeur, cliquez sur Ajouter.

  3. Sur la page Créer une stratégie de répondeur, créez une stratégie de répondeur avec une action de répondeur qui possède l’identificateur de limite.

  4. Pour créer une action de répondeur, cliquez sur Ajouter en regard de Action et saisissez un nom pour l’action du répondeur.

  5. Sélectionnez le type Répondre avec dans le menu déroulant, spécifiez l’expression suivante, « HTTP/1.1 200 OK\r\n\r\n » + « La demande est refusée en raison d’un taux inhabituel », puis cliquez sur Créer.

    Action Créer un répondeur

  6. Pour créer une stratégie de répondeur, sur la page Créer une stratégie de répondeur, entrez un nom pour la stratégie de répondeur, spécifiez l’expression suivante, ‘sys.check_limit (« limit_one_login ») ‘, puis cliquez sur Créer.

    Créer une stratégie de répondeur

  7. Liez la stratégie de répondeur au serveur virtuel d’authentification.

    • Accédez à Security>AAA-Application Traffic>Virtual Server.
    • Sélectionnez le serveur virtuel.
    • Ajoutez une stratégie.
    • Choisissez la stratégie de répondeur que vous souhaitez lier au serveur, définissez la priorité.
    • Choisissez le type AAA-REQUEST et cliquez sur Continuer.

Remarque :

Vous pouvez également activer la limitation de débit au point de liaison AAA_REQUEST pour le serveur virtuel VPN.

Configuration pour les cas d’utilisation courants de l’application de la limitation de débit à NetScaler Gateway

Voici des exemples de commandes permettant de configurer des cas d’utilisation courants.

  • Limitez le nombre de demandes par seconde à partir d’une URL.

     add stream selector ipStreamSelector http.req.url “client.ip.src”
    
     add ns limitIdentifier ipLimitIdentifier –threshold 4 –timeslice 1000 –mode request_rate –limitType smooth –selectorName ip StreamSelector
    
     add responder policy ipLimitResponderPolicy “http.req.url.contains(\”myasp.asp\”) && sys.check_limit(\”ipLimitIdentifier\”)” myWebSiteRedirectAction
    
     bind authentication virtual server authvserver -policy denylogin –pri 1 –type aaa_request
     <!--NeedCopy-->
    
  • Supprimez une connexion en fonction des cookies reçus depuis www.yourcompany.com si la demande dépasse la limite de débit.

     add stream selector cacheStreamSelector “http.req.cookie.value(\”mycookie\”)” “client.ip.src.subnet(24)”
    
     add ns limitIdentifier myLimitIdentifier –Threshold 2 –timeSlice 3000 –selectorName reqCookieStreamSelector
    
     add responder action sendRedirectURL redirect `"http://www.mycompany.com"` + http.req.url' –bypassSafetyCheck Yes
    
     add responder policy rateLimitCookiePolicy
    
     “http.req.url.contains(\www.yourcompany.com) && sys.check_limit(\”myLimitIdentifier\”)” sendRedirectUrl
    
     <!--NeedCopy-->
    
  • Limitez le nombre de requêtes HTTP qui arrivent du même hôte (avec un masque de sous-réseau de 32) et qui ont la même adresse IP de destination.

     add stream selector ipv6_sel “CLIENT.IPv6.src.subnet(32)”CLIENT.IPv6.dst
    
     add ns limitIdentifier ipv6_id –imeSlice 20000 –selectorName ipv6_sel
    
     add lb vserver ipv6_vip HTTP 3ffe:: 209 80 –persistenceType NONE –cltTime
    
     add responder action redirect_page redirect “\”`http://redirectpage.com/\”"`
    
     add responder policy ipv6_resp_pol “SYS.CHECK_LIMIT(\”ipv6_id\”)” redirect_page
    
     bind responder global ipv6_resp_pol 5 END –type DEFAULT
     <!--NeedCopy-->
    
Limitation du débit pour NetScaler Gateway