Azure Front Door 的速率限制為何?

速率限制可讓您偵測和封鎖來自任何套接字 IP 位址的異常高流量層級。 藉由在 Azure Front Door 中使用 Azure Web 應用程式防火牆,您可以減輕某些類型的阻斷服務攻擊。 速率限制也會保護您免受不小心設定錯誤以在短時間內傳送大量要求的用戶端。

套接字IP位址是起始 Azure Front Door TCP 連線之客戶端的位址。 一般而言,套接字IP位址是使用者的IP位址,但也可能是 Proxy 伺服器的IP位址,或位於使用者與 Azure Front Door 之間的另一部裝置。

您可以在套接字IP位址層級或遠端位址層級定義速率限制。 如果您有多個從不同套接字 IP 位址存取 Azure Front Door 的用戶端,則各自套用自己的速率限制。 套接字IP位址是Web應用程式防火牆 (WAF) 所見的來源IP位址。 如果您的用戶位於 Proxy 後方,套接字 IP 位址通常是 Proxy 伺服器位址。 遠端位址是通常透過 X-Forwarded-For 要求標頭傳送的原始用戶端 IP。

設定速率限制原則

速率限制是使用 自定義 WAF 規則來設定。

當您設定速率限制規則時,您可以指定 臨界值。 臨界值是從每一個套接字 IP 位址允許在一分鐘或五分鐘內從每個套接字 IP 位址所允許的 Web 要求數目。

您也必須指定至少一個 比對條件,以告知 Azure Front Door 何時啟用速率限制。 您可以設定套用至應用程式內不同路徑的多個速率限制。

如果您需要將速率限制規則套用至所有要求,請考慮使用比對條件,如下列範例所示:

Screenshot that shows the Azure portal showing a match condition that applies to all requests. The match condition looks for requests where the Host header size is zero or greater.

上述比對條件會識別長度大於 0的所有要求Host。 由於 Azure Front Door 的所有有效 HTTP 要求都包含 Host 標頭,因此此比對條件會影響比對所有 HTTP 要求。

速率限制和 Azure Front Door 伺服器

來自相同用戶端的要求通常會抵達相同的 Azure Front Door 伺服器。 在此情況下,您會看到每個用戶端IP位址達到速率限制時,就會立即封鎖要求。

來自相同用戶端的要求可能會抵達尚未重新整理速率限制計數器的不同 Azure Front Door 伺服器。 例如,用戶端可能會針對每個要求開啟新的 TCP 連線,而且每個 TCP 連線都可以路由傳送至不同的 Azure Front Door 伺服器。

如果閾值夠低,對新 Azure Front Door 伺服器的第一個要求可能會通過速率限制檢查。 因此,對於低閾值(例如,每分鐘不到 200 個要求),您可能會看到一些超過閾值的要求通過。

當您判斷速率限制的臨界值和時間範圍時,請記住一些考慮:

  • 具有最小可接受要求計數閾值的較大視窗大小是防止 DDoS 攻擊的最有效組態。 此設定比較有效,因為當攻擊者達到閾值時,這些設定會針對速率限制視窗的其餘部分遭到封鎖。 因此,如果攻擊者在一分鐘時間範圍的前 30 秒遭到封鎖,則只有剩餘 30 秒的速率有限。 如果攻擊者在 5 分鐘視窗的第一分鐘遭到封鎖,則其餘四分鐘會受到限制。
  • 設定較大的時間範圍大小(例如,超過一分鐘五分鐘)和較大的臨界值(例如,200 個超過 100 個)往往比使用較短的時間範圍大小和較低的臨界值更精確地強制執行接近速率限制的臨界值。
  • Azure Front Door WAF 速率限制會在固定的時間週期運作。 一旦違反速率限制臨界值,所有符合該速率限制規則的流量都會在固定窗口的其餘部分遭到封鎖。

下一步