Die DR REST API-Ratenbegrenzung ist ein Mechanismus zum Verwalten der Risiken von API-Ressourcenauslastung und Brute-Force-Angriffen.

Die Ratenbegrenzung ist in der DR REST API von Site Recovery Manager 8.8 und höher und vSphere Replication 8.8 und höher verfügbar. Die DR REST API-Ratenbegrenzung stellt einen Kompromiss zwischen Sicherheit und Leistung dar.
Tabelle 1. Ebenen der DR REST API-Anforderungsratenbegrenzung
Ebene Beschreibung Konfiguration Standardwert
IP address Berücksichtigt Anforderungen pro IP-Adresse. ipRateLimitQuota 100
ipRateLimitWindow 60 000 in ms (1 Min.)
Service Berücksichtigt Anforderungen pro DR REST API-Dienstname. In der DR REST API gibt es drei Dienstnamen: srm, vr und configure. „srm v1“ und „srm v2“ haben denselben Dienstnamen wie „srm“. serviceRateLimitQuota 1.000
serviceRateLimitWindow 60 000 in ms (1 Min.)
Session Berücksichtigt Anforderungen pro Sitzung. sessionRateLimitQuota 50
sessionRateLimitWindow 60 000 in ms (1 Min.)
n/a Regelmäßiges Bereinigen veralteter Datenstrukturen für die Anforderungsratenbegrenzung, um den Fingerabdruck des Arbeitsspeichers zur Laufzeit zu reduzieren. Der Wert 0 (Null) bedeutet, dass überhaupt keine Bereinigung durchgeführt wird. rateLimitLogPurgeInterval 7 200 000 in ms (2 Std.)

Die DR REST API-Ratenbegrenzung besteht aus drei Ebenen, die in einer Kette arbeiten, um die eingehenden Anforderungen anhand der Kriterien der jeweiligen Ebene zu begrenzen. Wenn die Kriterien der Ebene erfüllt sind, wird sofort eine Anforderungsantwort zurückgegeben, wodurch der Rest der Ebenenkette übersprungen wird. Die Kette der DR REST API-Ratenbegrenzung besteht aus IP-Adresse, Dienst, Sitzung in dieser Reihenfolge.

Sie ändern die Dr REST API-Ratenbegrenzungskonfiguration, indem Sie die Werte der angegebenen Eigenschaften in der Datei dr-rest-api.properties hinzufügen oder aktualisieren. Die Datei befindet sich im Ordner /opt/vmware/dr-rest/lib/. Wenn eine Eigenschaft der Ratenbegrenzung nicht explizit in der Konfigurationsdatei dr-rest-api.properties der DR REST API definiert ist, verwendet die Ratenbegrenzung den Standardwert. Um einen Konfigurationswert vorzudefinieren, fügen Sie die entsprechende Konfiguration hinzu, falls sie fehlt, und legen Sie den erforderlichen Wert fest. Die aktualisierten Werte werden wirksam, wenn ein neues Ratengrenzwertfenster beginnt.

Beispiel der Datei dr-rest-api.properties

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

HTTP-Antwort

Jede DR REST API-Anforderungsantwort weist die folgenden Kopfzeilen auf.
  • RateLimit-Limit – das Serverkontingent für Anforderungen des Clients im Zeitfenster.
  • RateLimit-Remaining – das verbleibende Kontingent im aktuellen Fenster.
  • RateLimit-Reset – die verbleibende Zeit im aktuellen Fenster, angegeben in Millisekunden.
Achtung: Wenn eine HTTP-Anforderung eine Ratenbegrenzung aufweist, ist der Antwortfehlercode 429 Too Many Requests und die Kopfzeile RateLimit-Remaining 0 (null). DR REST API-Antworten enthalten Ratengrenzwert-Kopfzeilen aus der letzten Ratengrenzwertebene, die die Clientanforderung verarbeitet hat.

Best Practices für die Festlegung der optimalen Ratengrenzwert-Konfiguration

Bei der Einrichtung der optimalen Ratengrenzwert-Konfiguration müssen verschiedene Faktoren berücksichtigt werden.

  • Beginnen Sie mit den Standardwerten der Ratenbegrenzungskonfigurationen.
    • ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
    • rateLimitLogPurgeInterval
  • Überwachen Sie Anforderungsantworten mit Fehlercode 429 Too Many Requests und ergreifen Sie entsprechende Maßnahmen.
    • Warten Sie auf das nächste Ratengrenzwertfenster und wiederholen Sie die Anforderungen, für die eine Ratenbegrenzung gilt.
    • Verringern Sie die Anforderungsintensität auf der Clientseite.
    • Aktualisieren Sie die Konfigurationen für Ratengrenzwerte. Erhöhen Sie die zugehörige Konfiguration RateLimitQuota und oder verringern Sie die zugehörige Konfiguration RateLimitWindow.
  • Analysieren Sie die Antwortheader RateLimit-Limit, RateLimit-Remaining und RateLimit-Reset und ergreifen Sie entsprechende Maßnahmen.
    • Ändern Sie die Anforderungsintensität auf der Clientseite in die erforderliche Richtung.
    • Aktualisieren Sie die Konfigurationen für Ratengrenzwerte in die erforderliche Richtung.