本地流转流量 (Breakout traffic) 允许您定义哪些应用程序应当绕过 Cloudflare 的安全过滤,直接流向互联网。它通过检查 DNS 请求来工作。这意味着,如果您的网络正在缓存 DNS 请求,则本地流转流量仅在您的缓存条目过期且您的客户端发出 Cloudflare One Appliance(前称 Magic WAN Connector)可以检测到的新 DNS 请求后才会生效。这可能需要几分钟的时间。
flowchart LR accTitle: 本地流转流量流向 accDescr: 应用程序 1 和 2 配置为绕过 Cloudflare 的安全过滤,直接流向互联网。 a(Cloudflare One Appliance) --> b(Cloudflare) -->|经过过滤的流量|c(互联网) a-- 本地流转流量 ---d(应用程序1) & e(应用程序2) --> c classDef orange fill:#f48120,color: black class a,b orange
在上图中,应用程序 1 和 2 配置为绕过 Cloudflare 的安全过滤,直接流向互联网。
在您能够为 Cloudflare One Appliance 添加或删除 Breakout traffic 应用程序之前,您需要创建一个账户级别的列表,其中包含您想要配置的应用程序。目前,只有通过 API(通过 managed_app_id 端点)才能添加或修改此列表。
要将应用程序添加到您的账户:
发送 POST 请求以向您的账户添加新应用程序。
Required API token permissions
At least one of the following token permissions is required:Magic WAN WriteMagic Transit Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/apps" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"managed_app_id": "<APP_ID>",
"name": "<APP_NAME>",
"type": "<APP_TYPE>"
}'{
"result": {
"account_app_id": "eb09v665c0784618a3e4ba9809258fd4",
"name": "<APP_NAME>",
"type": "<APP_TYPE>",
},
"success": true,
"errors": [],
"messages": []
}您现在可以将此新应用程序添加到您的 Cloudflare One Appliance 中的 Breakout traffic 列表。
您需要为您的每个现有站点配置 Breakout traffic 应用程序,因为这是针对每个站点进行的配置。
- 转到 Connectors(连接器) 页面。
- 转到 Appliances(设备) 选项卡 > Profiles(配置文件)。
- 选择您要配置的 Cloudflare One Appliance > Edit(编辑)。
- 选择 Traffic Steering(流量引导)。
- 在 ${props.featureName},选择 ${props.dashName === "CF1 Cloudflare WAN" ? "Create" : "Assign application traffic"}。
- 从列表中选择一个 or 多个应当绕过 Cloudflare 过滤的应用程序。您也可以使用搜索框。
- (可选)您还可以将应用程序固定到 WAN 端口。在 Preferred breakout port 中,选择您想要分配应用程序的 WAN。有关更多信息,请参阅 为本地流转应用程序指定 WAN 端口。
- 选择 Save(保存)。
您选择的应用程序的流量将 ${props.whatHappensApp}。
-
发送
GET请求以列出与账户关联的应用程序。
At least one of the following token permissions is required:Required API token permissions
Magic WAN WriteMagic WAN ReadMagic Transit ReadMagic Transit Write
List Appsbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/apps" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": [ { "managed_app_id": "<APP_ID>", "name": "<APP_NAME>", "type": "File Sharing", "hostnames": [ "<app_name.com>", "<app-name.info>" ] } ] }记下您想要添加的任何应用程序的
"managed_app_id"值。 发送
POST请求以向 Breakout traffic 策略添加新应用。
At least one of the following token permissions is required:Required API token permissions
Magic WAN WriteMagic Transit Write
Create a new App Configbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/sites/$SITE_ID/app_configs" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "managed_app_id": "<MANAGED_APP_ID>", "breakout": true }'{ "result": { "account_app_id": "<APP_ID>", "name": "<APP_NAME>", "type": "<BREAKOUT_OR_PRIORITY>" }, "success": true, "errors": [], "messages": [] }
- 转到 Connectors(连接器) 页面。
- 转到 Appliances(设备) 选项卡 > Profiles(配置文件)。
- 选择您想要配置的设备 > Edit(编辑)。
- 选择 Traffic Steering(流量引导)。
- 在 ${props.featureName} 中,找到您要删除的应用程序 > 选择其旁边的三个点 > Remove application traffic。
- (可选)如果您的应用程序有多个页面,您可以使用搜索框快速找到您正在寻找的应用程序。
您需要为您的每个现有站点删除 Breakout traffic 应用程序,因为这是针对每个站点进行的配置。
-
发送
GET请求以列出与站点关联的应用程序。
At least one of the following token permissions is required:Required API token permissions
Magic WAN WriteMagic WAN ReadMagic Transit ReadMagic Transit Write
List App Configsbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/sites/$SITE_ID/app_configs" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": [ { "id": "<APP_ID>", "site_id": "<SITE_ID>", "managed_app_id": "<APP_NAME>", "breakout": true } ] }记下您想要删除的应用程序的
"id"值。 发送
DELETE请求以从 Breakout traffic 策略中删除应用程序。curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/magic/sites/%7Bsite_id%7D/app_configs/%7Bid%7D" \ --request DELETE{ "result": { "id": "<APP_ID>", "site_id": "<SITE_ID>", "managed_app_id": "<APP_NAME>", "breakout": true }, "success": true, "errors": [], "messages": [] }
您可以在 Cloudflare One Appliance 中将应用程序固定到特定的 WAN 端口。在您首选的 WAN 端口关闭的情况下,Cloudflare One Appliance 会自动故障转移到标准配置的 WAN 端口优先级。
通过此首选本地流转端口,客户可以直接控制其本地互联网流转流量。您可以指定一个特定的 WAN 上行链路作为配置为绕过 Cloudflare 网络的关键应用程序的主要路径。这为对性能敏感的应用程序提供了所需的预测能力和控制,从而确保您的关键流量始终采用您选择的路径。
将应用程序固定到 WAN 端口:
- 转到 Connectors(连接器) 页面。
- 转到 Appliances(设备) 选项卡 > Profiles(配置文件)。
- 选择您的设备 > Edit(编辑)。
- 在 Traffic steering(流量引导) > Breakout Traffic 中,找到您要固定到 WAN 端口的应用程序。
- 选择其旁边的三个点 > Edit application traffic。
- 从 Preferred breakout port 下拉菜单中,选择您要分配给应用程序的 WAN 端口。
- 选择 Save(保存)。
您可以配置您的 Cloudflare One Appliance(前称 Magic WAN Connector),将 本地流转流量的 NetFlow 统计信息导出到 Network Flow(前称 Magic Network Monitoring)。这可以提供对直接离开您的站点、绕过 Cloudflare 网络的流量的洞察分析。
Cloudflare One Appliance 使用 NetFlow v9 仅导出本地流转流量的流数据(flow data)。您可以通过 Cloudflare API 设置关联站点的 NetFlow 配置来启用并配置此导出。
- 向您站点的 NetFlow 配置端点发送
PUT请求。 - 在 JSON 请求体中,您必须包含
collector_ip参数。要将流量统计信息导出到 Network Flow,请使用 IP 地址162.159.65.1。这是启用该功能所需的唯一字段。
最小配置示例:
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/sites/$SITE_ID/netflow_config" \
--request PUT \
--json '{
"collector_ip": "162.159.65.1"
}'- 您可以通过向 JSON 负载中添加可选字段来自定义配置。这些字段包括:
collector_port:收集器的 UDP 端口。默认值为2055。sampling_rate:数据包采样率。active_timeout:活动流的超时时间(以秒为单位)。inactive_timeout:非活动流的超时时间(以秒为单位)。
完整配置示例:
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/sites/$SITE_ID/netflow_config" \
--request PUT \
--json '{
"collector_ip": "162.159.65.1",
"collector_port": 2055,
"sampling_rate": 100,
"active_timeout": 60,
"inactive_timeout": 30
}'您的 Cloudflare One Appliance 现在将开始导出其本地流转流量的 NetFlow 数据,这些数据将被摄取并显示在您的 Network Flow 仪表板中。您可以通过发送 GET 请求来检索当前设置,或者通过向同一端点发送 DELETE 请求来禁用导出。
如果您的场所中部署了 Cloudflare One Appliance(前称 Magic WAN Connector)和 Cloudflare One Client,则 Cloudflare One Appliance 会自动将 Cloudflare One Client 流量路由到互联网,而不是 Cloudflare WAN IPsec 隧道。这可以防止流量被封装两次。
您可能需要配置防火墙以允许此新流量。确保允许以下 IP 和端口:
- Destination IPs(目的 IP):
162.159.193.0/24、162.159.197.0/24 - Destination ports(目的端口):
443、500、1701、2408、4443、4500、8095、8443
有关此主题的更多信息,请参阅带有防火墙的 Cloudflare One Client。
除了按目标应用程序进行匹配之外,您还可以定义按源(按源 LAN 接口、源 VLAN 或源 IP 地址 / CIDR 块)进行匹配的突围规则。这对于将整个访客 VLAN 或特定子网突围到本地互联网非常有用,而无需枚举目标应用程序。
基于源的突围是通过 API 和 Terraform 配置的。
| 条件 | 行为 |
|---|---|
| 源 LAN 接口 | 发源于所选 LAN 的所有流量均被突围。任何连接到该 LAN 的 VLAN 都会自动包含在内。 |
| 源 CIDR / IP 范围 | 源 IP 在指定范围内的所有流量均被突围。接受单个 IP、范围或 CIDR 块。 |
可以使用相同的条件将流量标记为优先而不是突围。有关详细信息,请参阅优先流量。
基于源和基于目标(托管应用程序或自定义应用程序)的规则可以共存于同一设备上,并且会独立进行评估。如果流同时匹配基于源的突围规则和基于目标的突围规则,设备将对其进行突围。