El limitador de velocidad de DR REST API es un mecanismo para administrar los riesgos de agotamiento de recursos de API y ataques por fuerza bruta.

El limitador de velocidad está disponible en la DR REST API de Site Recovery Manager 8.8 y versiones posteriores, así como en vSphere Replication 8.8 y versiones posteriores. El limitador de velocidad de DR REST API es un compromiso entre seguridad y rendimiento.
Tabla 1. Niveles de límite de velocidad de solicitudes de DR REST API
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 DR REST API. En DR REST API hay tres nombres de servicio: srm, vr y configure. 'srm v1' y 'srm v2' tienen el mismo nombre de servicio: 'srm'. serviceRateLimitQuota 1000
serviceRateLimitWindow 60 000 en ms (1 min)
Session Considera las solicitudes por sesión. sessionRateLimitQuota 50
sessionRateLimitWindow 60 000 en ms (1 min)
n/a Limpieza periódica de las estructuras de datos del limitador de velocidad de solicitudes obsoletas para reducir la huella digital 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 velocidad de DR REST API consta de tres niveles que funcionan en cadena para limitar la velocidad de las solicitudes entrantes según los criterios del nivel. En caso de que se cumplan los criterios del nivel, se devuelve inmediatamente una respuesta a la solicitud, por lo que se omitirá el resto de la cadena de niveles. La cadena de niveles del limitador de velocidad de DR REST API es la dirección IP, el servicio y la sesión, en ese orden.

Para cambiar la configuración del limitador de velocidad de DR REST API, 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 del limitador de velocidad en el archivo de configuración dr-rest-api.properties de DR REST API, el limitador de velocidad 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 surten efecto cuando se inicia una nueva ventana de límite de velocidad.

Ejemplo de archivo dr-rest-api.properties

...
ipRateLimitQuota=100
ipRateLimitWindow=60000
serviceRateLimitQuota=1000
serviceRateLimitWindow=60000
sessionRateLimitQuota=50
sessionRateLimitWindow=60000
rateLimitLogPurgeInterval=0
...

Respuesta HTTP

Cada respuesta de solicitud de DR REST API tiene los siguientes encabezados.
  • RateLimit-Limit: la 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.
Atención: Cuando una solicitud HTTP tiene una velocidad limitada, el código de error de respuesta es 429 Too Many Requests y el encabezado RateLimit-Remaining es 0 (cero). Las respuestas de DR REST API contienen encabezados de límite de velocidad del último nivel de límite de velocidad que procesó la solicitud del cliente.

Prácticas recomendadas para establecer la configuración óptima de límite de velocidad

Para establecer la configuración óptima de límite de velocidad, es necesario tener en cuenta varios factores.

  • Comience con los valores predeterminados de las configuraciones del limitador de velocidad.
    • ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
    • rateLimitLogPurgeInterval
  • Escuche las respuestas a las solicitudes con el código de error 429 Too Many Requests y realice las acciones correspondientes.
    • Espere a la siguiente ventana de límite de frecuencia y repita las solicitudes con velocidad limitada.
    • Reduzca la intensidad de las solicitudes en el lado del cliente.
    • Actualice las configuraciones de límite de velocidad: aumente la configuración relacionada RateLimitQuota y/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 las solicitudes en el lado del cliente en la dirección requerida.
    • Actualice las configuraciones de límite de velocidad en la dirección requerida.