El limitador de tasa de la REST API de DR es un mecanismo para administrar los riesgos de agotamiento de recursos de API y ataques por fuerza bruta.
Nivel | Descripción | Configuración | Valor predeterminado |
---|---|---|---|
IP address | Considera las solicitudes por dirección IP. | ipRateLimitQuota | 100 |
ipRateLimitWindow | 60 000 en ms (1 min) | ||
Service | Considera las solicitudes por nombre de servicio de la REST API de DR. En la REST API de DR hay tres nombres de servicios: srm, vr y configure. 'srm v1' y 'srm v2' tienen el mismo nombre de servicio que 'srm'. | serviceRateLimitQuota | 1000 |
serviceRateLimitWindow | 60 000 en ms (1 min) | ||
Session | Tiene en cuenta las solicitudes por sesión. | sessionRateLimitQuota | 50 |
sessionRateLimitWindow | 60000 en ms (1 min) | ||
n/a | Limpieza periódica de estructuras de datos del limitador de tasa de solicitudes obsoletas para reducir la huella de memoria en tiempo de ejecución. El valor 0 (cero) significa que no se realiza ninguna limpieza. | rateLimitLogPurgeInterval | 7 200 000 en ms (2 h) |
El limitador de tasa de la REST API de DR consta de tres niveles que funcionan en cadena para limitar las solicitudes entrantes según los criterios del nivel. En caso de que se cumplan los criterios del nivel, se devuelve inmediatamente una respuesta de solicitud, por lo que se omitirá el resto de la cadena de niveles. La cadena de niveles del limitador de tasa de la REST API de DR es Dirección IP, Servicio, Sesión (en ese orden en particular).
Para cambiar la configuración del limitador de tasa de la REST API de DR, agregue o actualice los valores de las propiedades especificadas en el archivo dr-rest-api.properties. El archivo se encuentra en la carpeta /opt/vmware/ dr-rest/lib/. Si no se define explícitamente una propiedad Limitador de tasa en el archivo de configuración dr-rest-api.properties de la REST API de DR, el limitador de tasa utiliza el valor predeterminado. Para predefinir un valor de configuración, agregue la configuración correspondiente si falta y establezca el valor requerido. Los valores actualizados entran en vigor cuando comienza una nueva ventana del límite de tasa.
Ejemplo de archivo dr-rest-api.properties
... ipRateLimitQuota=100 ipRateLimitWindow=60000 serviceRateLimitQuota=1000 serviceRateLimitWindow=60000 sessionRateLimitQuota=50 sessionRateLimitWindow=60000 rateLimitLogPurgeInterval=0 ...
Respuesta de HTTP
- RateLimit-Limit: cuota del servidor para las solicitudes del cliente en la ventana de tiempo.
- RateLimit-Remaining: la cuota restante en la ventana actual.
- RateLimit-Reset: el tiempo restante en la ventana actual, especificado en milisegundos.
429 Too Many Requests
y el encabezado RateLimit-Remaining es 0 (cero). Las respuestas de la REST API de DR contienen encabezados de límite de tasa del último nivel de límite de tasa que procesó la solicitud del cliente.
Prácticas recomendadas para establecer la configuración óptima del límite de tasa
Para establecer la configuración óptima del límite de tasa, es necesario tener en cuenta varios factores.
- Comience con los valores predeterminados de las configuraciones del limitador de tasa.
- ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
- rateLimitLogPurgeInterval
- Escuche las respuestas de solicitud con código de error
429 Too Many Requests
y realice las acciones correspondientes.- Espere a la siguiente ventana de límite de tasa y repita las solicitudes que tuvieron una tasa limitada.
- Reduzca la intensidad de la solicitud en el lado del cliente.
- Actualice las configuraciones del límite de tasa: aumente la configuración relacionada RateLimitQuota o reduzca la configuración relacionada RateLimitWindow.
- Analice los encabezados de respuesta RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset y lleve a cabo las acciones correspondientes.
- Cambie la intensidad de la solicitud en el lado del cliente en la dirección requerida.
- Actualice las configuraciones del límite de tasa en la dirección requerida.