Il limitatore della velocità DR REST API è un meccanismo per gestire i rischi di esaurimento delle risorse API e degli attacchi brute force.

La funzionalità di limitazione della velocità è disponibile in DR REST API di Site Recovery Manager 8.8 e versioni successive e vSphere Replication 8.8 e versioni successive. Il limitatore della velocità DR REST API rappresenta un compromesso tra sicurezza e prestazioni.
Tabella 1. Livelli del limite di velocità delle richieste di DR REST API
Livello Descrizione Configurazione Valore predefinito
IP address Considera le richieste in base all'indirizzo IP. ipRateLimitQuota 100
ipRateLimitWindow 60 000 in ms (1 minuto)
Service Considera le richieste in base al nome del servizio DR REST API. In DR REST API sono presenti tre nomi di servizio: srm, vr e configure. "srm v1" e "srm v2" hanno lo stesso nome di servizio di "srm". serviceRateLimitQuota 1000
serviceRateLimitWindow 60 000 in ms (1 minuto)
Session Considera le richieste in base alla sessione. sessionRateLimitQuota 50
sessionRateLimitWindow 60000 in ms (1 minuto)
n/a Pulizia periodica delle strutture dati del limitatore della velocità delle richieste obsolete per ridurre l'impronta digitale della memoria di runtime. Il valore 0 (zero) indica che non viene eseguita alcuna pulizia. rateLimitLogPurgeInterval 7 200 000 in ms (2h)

Il limitatore della velocità DR REST API è costituito da tre livelli che funzionano in catena per limitare le richieste in entrata in base ai criteri del livello. Se i criteri del livello vengono soddisfatti, viene restituita immediatamente una risposta alla richiesta che consente di saltare il resto della catena di livelli. La catena di livelli del limitatore della velocità DR REST API è costituita da indirizzo IP, servizio e sessione in tale ordine.

È possibile modificare la configurazione del limitatore della velocità DR REST API aggiungendo o aggiornando i valori delle proprietà specificate nel file dr-rest-api.properties. Il file si trova nella cartella /opt/vmware/dr-rest/lib/. Se una proprietà del limitatore della velocità non è definita esplicitamente nel file di configurazione dr-rest-api.properties di DR REST API, il limitatore della velocità utilizza il valore predefinito. Per predefinire un valore di configurazione, aggiungere la configurazione corrispondente, se manca, e impostare il valore richiesto. I valori aggiornati diventano effettivi quando inizia una nuova finestra del limite di velocità.

Esempio di file dr-rest-api.properties

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

Risposta HTTP

Ogni risposta di DR REST API a una richiesta ha le intestazioni seguenti.
  • RateLimit-Limit: quota del server per le richieste del client nella finestra temporale.
  • RateLimit-Remaining: quota rimanente nella finestra corrente.
  • RateLimit-Reset: tempo rimanente nella finestra corrente, specificato in millisecondi.
Avvertimento: Quando viene limitata la velocità di una richiesta HTTP, il codice di errore della risposta è 429 Too Many Requests e l'intestazione RateLimit-Remaining è 0 (zero). Le risposte di DR REST API contengono le intestazioni del limite di velocità dell'ultimo livello del limite di velocità che ha elaborato la richiesta del client.

Procedure consigliate per impostare la configurazione ottimale del limite di velocità

Per impostare la configurazione ottimale del limite di velocità, è necessario tenere in considerazione vari fattori.

  • Iniziare con i valori predefiniti delle configurazioni del limitatore della velocità.
    • ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
    • rateLimitLogPurgeInterval
  • Ascoltare le risposte alle richieste con codice di errore 429 Too Many Requests ed eseguire le azioni necessarie.
    • Attendere la finestra del limite di velocità successiva e ripetere le richieste la cui velocità è stata limitata.
    • Ridurre l'intensità delle richieste sul lato client.
    • Aggiornare le configurazioni del limite di velocità: aumentare la configurazione correlata RateLimitQuota e/o diminuire la configurazione correlata RateLimitWindow.
  • Analizzare le intestazioni di risposta RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset ed esegue le azioni necessarie.
    • Modificare l'intensità delle richieste sul lato client nella direzione necessaria.
    • Aggiornare le configurazioni del limite di velocità nella direzione necessaria.