Network Flow(前称 Magic Network Monitoring)规则可监控您的网络流量,以防针对特定 IP 地址或前缀的分布式拒绝服务(DDoS)攻击。当流量超过规则阈值或与已知的 DDoS 攻击特征相匹配时,您将收到警报。
Network Flow 支持三种规则类型:
| 规则类型 | 描述 | 可用性 |
|---|---|---|
| 动态阈值(推荐) | 分析您网络在一段时间内的流量模式,并根据流量历史记录自动调整 DDoS 阈值(位或数据包)。 | 仅限 API |
| 静态阈值 | 您为 DDoS 流量监控定义固定的阈值(位或数据包)。 | API 和仪表板 |
| sFlow DDoS 攻击 | 如果您向 Cloudflare 发送 sFlow 数据,当在您的流量中检测到特定的 DDoS 攻击类型时,您可以收到警报。 | 仅限 API(仅限 sFlow 数据) |
您只能在 Cloudflare 仪表板中配置静态流量阈值规则。
要创建新规则:
- 转到 Network flow(网络流) 页面。
- 选择 Configure Network flow(配置网络流)。
- 在 Configure rules(配置规则) 选项卡中,选择 Add new rule(添加新规则)。
- 填写规则字段。有关每个字段的详细信息,请参阅静态阈值规则。
- 完成后选择 Create a new rule(创建新规则)。
- 转到 Network flow(网络流) 页面。
- 选择 Configure Network flow(配置网络流)。
- 在 Configure rules(配置规则) 选项卡中,找到您要编辑的静态阈值规则,然后选择 Edit(编辑)。
- 编辑相应的字段。有关每个字段作用的更多信息,请参阅规则配置字段。
- 完成后选择 Save(保存)。
- 转到 Network flow(网络流) 页面。
- 选择 Configure Network flow(配置网络流)。
- 在 Configure rules(配置规则) 选项卡中,找到您要删除的静态阈值规则,然后选择 Delete(删除)。
- 选择 I understand that deleting a rule is permanent(我理解删除规则是永久性的),然后再次选择 Delete(删除)。
规则触发时,自动宣告(Auto-Advertisement)会自动激活 Magic Transit,无需手动干预即可通过 Cloudflare 路由您的流量进行 DDoS 缓解。
此功能适用于使用 Magic Transit On Demand 的企业级客户。您可以为任何动态阈值、静态阈值或 sFlow DDoS 攻击规则启用 it。
按照前面的步骤创建或编辑规则。然后,启用 Auto-Advertisement。
每次针对已标记规则中所有前缀的自动通告尝试完成后,系统将发送 Webhook、PagerDuty 和电子邮件通知。
您将收到每个前缀的通告状态,可用状态如下:
- 已通告:前缀已成功通告。
- 已通告(之前):前缀在本次自动通告尝试之前已处于通告状态。
- 延迟:前缀当前无法通告,但将尝试通告。待前缀可通告后,系统将发送包含更新状态的新通知。
- 已锁定:前缀已被锁定,无法通告。
- 无法通告:Cloudflare 无法通告该前缀。此状态可能由多种原因导致,但通常发生在您不被允许通告某个前缀时。
- 错误:前缀通告过程中发生了一般性错误。
每个规则必须包含一个或多个 IP 前缀。规则中的所有前缀都将作为聚合流量进行评估——它们的总流量将与阈值进行对比。
- 要对多个前缀的组合流量进行警报,请将它们添加到同一个规则中。
- 要对单个前缀的流量进行警报,请为每个前缀创建一个单独的规则。
在以下示例中,当 192.168.0.0/24 和 172.118.0.0/24 的组合数据包流量超过 10000 个数据包时,将触发规则。如果启用了自动宣告(Auto-Advertisement),当规则触发时,Cloudflare 将宣告这两个前缀。
您还可以使用 API 大规模配置规则 IP 前缀。
{
"rules": [
{
"name": "Too many packets",
"prefixes": ["192.168.0.0/24", "172.118.0.0/24"],
"packet_threshold": 10000,
"automatic_advertisement": true,
"duration": "1m0s",
"type": "threshold"
}
]
}要为单个前缀设置阈值,请创建单独的规则:
{
"rules": [
{
"name": "Too many packets",
"prefixes": ["172.118.0.0/24"],
"packet_threshold": 1000,
"automatic_advertisement": true,
"duration": "1m0s",
"type": "threshold"
}
]
}