你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Front Door 的速率限制是什么?

使用速率限制可以检测和阻止来自任何套接字 IP 地址的异常多的流量。 借助 Azure Front Door 中的 Azure Web 应用程序防火墙,可以缓解某些类型的拒绝服务攻击。 速率限制还可以防止意外地错误配置客户端,避免它在短时间内发送大量请求。

套接字 IP 地址是发起到 Azure Front Door 的 TCP 连接的客户端的地址。 通常,套接字 IP 地址是用户的 IP 地址,但它也可能是代理服务器或位于用户和 Azure Front Door 之间的其他设备的 IP 地址。

可以在套接字 IP 地址级别或远程地址级别定义速率限制。 如果有多个客户端从不同的套接字 IP 地址访问 Azure Front Door,则其中每个客户端都会应用自身的速率限制。 套接字 IP 地址是 Web 应用程序防火墙 (WAF) 看到的源 IP 地址。 如果用户位于代理后,套接字 IP 地址通常是代理服务器地址。 远程地址是通常通过 X-Forwarded-For 请求标头发送的原始客户端 IP。

配置速率限制策略

使用自定义 WAF 规则配置速率限制。

配置速率限制规则时,需要指定阈值。 在 1 分钟或 5 分钟时限内,允许每个套接字 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.

前面的匹配条件识别 Host 头长度大于 0 的所有请求。 由于对 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 分钟窗口的第一分钟被阻止,则剩余的 4 分钟速率会受到限制。
  • 设置较大的时间窗口大小(例如,5 分钟而不是 1 分钟)和较大的阈值(例如,200 而不是 100),往往比使用较小的时间窗口大小和较低的阈值能够更精确地强制接近速率限制阈值。
  • Azure Front Door WAF 速率限制在固定时间段内运行。 违反速率限制阈值后,固定窗口的剩余部分将阻止与速率限制规则匹配的所有流量。

后续步骤