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.

Le limiteur de débit est disponible dans l'instance de REST API de DR de Site Recovery Manager 8.8 et versions ultérieures et vSphere Replication 8.8 et versions ultérieures. Le limiteur de débit de l'instance de REST API de DR est un compromis entre la sécurité et les performances.
Tableau 1. Niveaux de limite de débit de demande de l'instances de REST API de DR
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

Chaque réponse de demande de l'instances de REST API de DR comporte les en-têtes suivants.
  • 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.
Attention : Lorsqu'une demande HTTP est limitée au niveau du débit, le code d'erreur de la réponse est 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.