Le limiteur de débit de l'instance de REST API de récupération d'urgence (DR) est un mécanisme permettant de gérer les risques d'épuisement des ressources d'API et d'attaques par force brute.
Niveau | Description | Configuration | Valeur par défaut |
---|---|---|---|
IP address | Prend en compte les demandes par adresse IP. | ipRateLimitQuota | 100 |
ipRateLimitWindow | 60 000 ms (1 minute) | ||
Service | Prend en compte les demandes par nom de service de l'instances de REST API de DR. Dans l'instance de REST API de DR il existe trois noms de service : srm, vr et configure. Les dispositifs « srm v1 » et « srm v2 » portent le même nom de service « srm ». | serviceRateLimitQuota | 1 000 |
serviceRateLimitWindow | 60 000 ms (1 minute) | ||
Session | Prend en compte les demandes par session. | sessionRateLimitQuota | 50 |
sessionRateLimitWindow | 60 000 ms (1 minute) | ||
n/a | Nettoyage périodique des structures de données de limiteur de débit de demande obsolètes pour réduire l'empreinte digitale de la mémoire de l'environnement d'exécution. La valeur 0 (zéro) signifie qu'aucun nettoyage n'est effectué. | rateLimitLogPurgeInterval | 7 200 000 ms (2 heures) |
Le limiteur de débit de l'instance de REST API de DR se compose de trois niveaux qui fonctionnent dans une chaîne pour limiter le débit des demandes entrantes par rapport aux critères du niveau. Si les critères du niveau sont satisfaits, une réponse à la demande est immédiatement renvoyée, ce qui ignore le reste de la chaîne de niveau. La chaîne de niveaux du limiteur de débit de l'instance de REST API de DR correspond à l'adresse IP, au service et à la session dans cet ordre.
Modifiez la configuration du limiteur de débit de l'instance de REST API de DR en ajoutant ou en mettant à jour les valeurs des propriétés spécifiées dans le fichier dr-rest-api.properties. Le fichier se trouve dans le dossier /opt/vmware/dr-rest/lib. Si une propriété de limiteur de débit n'est pas explicitement définie dans le fichier de configuration dr-rest-api.properties de l'instances de REST API de DR, le limiteur de débit utilise la valeur par défaut. Pour prédéfinir une valeur de configuration, ajoutez la configuration correspondante si elle est manquante et définissez la valeur requise. Les valeurs mises à jour prennent effet lorsqu'une nouvelle fenêtre de limite de débit s'affiche.
Exemple de fichier dr-rest-api.properties
... ipRateLimitQuota=100 ipRateLimitWindow=60000 serviceRateLimitQuota=1000 serviceRateLimitWindow=60000 sessionRateLimitQuota=50 sessionRateLimitWindow=60000 rateLimitLogPurgeInterval=0 ...
Réponse HTTP
- RateLimit-Limit : quota du serveur pour les demandes du client dans la fenêtre de temps.
- RateLimit-Remaining : quota restant dans la fenêtre actuelle.
- RateLimit-Reset : temps restant dans la fenêtre actuelle, en millisecondes.
429 Too Many Requests
et l'en-tête RateLimit-Remaining est 0 (zéro). Les réponses de l'instances de REST API de DR contiennent des en-têtes de limite de débit du dernier niveau de limite de débit qui a traité la demande du client.
Meilleures pratiques pour définir la configuration optimale de la limite de débit
La configuration optimale de la limite de débit nécessite la prise en compte de différents facteurs.
- Commencez par les valeurs par défaut des configurations du limiteur de débit.
- ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
- rateLimitLogPurgeInterval
- Écoutez les réponses aux demandes avec le code d'erreur
429 Too Many Requests
et prenez les mesures appropriées.- Attendez la fenêtre de limite de débit suivante et répétez les demandes ayant fait l'objet de la limite de débit.
- Diminuez l'intensité de la demande du côté client.
- Mettez à jour les configurations de limite de débit : augmentez la configuration associée RateLimitQuota et ou diminuez la configuration associée RateLimitWindow.
- Analysez les en-têtes de réponse RateLimit-Limit, RateLimit-Remaining et RateLimit-Reset, et prenez les mesures appropriées.
- Modifiez l'intensité de la demande du côté client dans la direction requise.
- Mettez à jour les configurations de limite de débit dans la direction requise.