要在 Cloudflare 中使用您自己的 IP 地址,请与您的客户团队确认您的合同是否涵盖此功能。您需要配置针对您要使用的服务的特定设置,并满足所有 BYOIP 客户的标准要求。
在您的账户配置到位后,请参考下方各章节来了解如何设置您的 BYOIP 前缀。此外,请务必查看 BYOIP 特定服务条款 (BYOIP Service-Specific Terms) ↗。
-
您的前缀必须在以下区域互联网注册机构 (RIR) 之一进行注册:
-
还要验证您的 互联网路由注册机构 (IRR) 记录是否是最新的,并包含:
- 与您要导入的精确前缀相匹配的
route或route6对象 - 与您要导入的正确 ASN 相匹配的
origin
- 与您要导入的精确前缀相匹配的
-
您必须使用 资源公钥基础设施 (RPKI) 验证 并确保您的 ROA 准确无误。您可以使用 Cloudflare RPKI 门户 ↗ 和第二个来源(例如 Routinator ↗)来仔细检查您的前缀。
-
如果您不熟悉 Cloudflare API 的工作原理,请参阅基础知识。确保您拥有必要的权限并已获取您的账户 ID。
- 使用 Add Prefix(添加前缀)端点 在应拥有该 BYOIP 前缀的 Cloudflare 账户中创建一个前缀。
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.0/24",
"asn": 13335,
"delegate_loa_creation": true
}' "result": {
"id": "72823e95d6c64d48a8111fec81179816",
"created_at": "2025-02-25T00:34:11.423722Z",
"modified_at": "2025-02-25T00:34:11.423722Z",
"cidr": "203.0.113.0/24",
"account_id": "654c5f71c324478cc9f68d60065d4620",
"description": "",
"approved": "P",
"on_demand_enabled": false,
"on_demand_locked": false,
"advertised": null,
"advertised_modified_at": null,
"loa_document_id": "b9ff4afe312246a8b2e7324d98f40b23",
"asn": 13335,
"ownership_validation_token": "<OWNERSHIP_VALIDATION_TOKEN>",
"delegate_loa_creation" : true,
"irr_validation_state": "pending",
"rpki_validation_state": "pending",
"ownership_validation_state": "pending",
}- 记下分配给您添加的前缀的
id。这将在后面的步骤中使用。
-
通过以下方法之一验证前缀所有权:
- 复制 API 调用返回的
ownership_validation_token。 - 在您要导入的前缀的 IRR 记录中,在
description或remarks字段中添加以下字符串。将<OWNERSHIP_VALIDATION_TOKEN>替换为您在上一步中复制的实际令牌。
cf-validation: <OWNERSHIP_VALIDATION_TOKEN>- 考虑您要引入 Cloudflare 的前缀大小。由于标准的
in-addr.arpa树假定在八位位组或半字节边界上进行委派,如果您导入的前缀未与这些边界对齐,您将不得不将前缀拆分为子网,并为每个子网创建相应的反向 DNS 区域。
示例
要计算您需要多少个较小的子网,请使用以下公式:
2^(下一个边界 - 当前子网掩码)对于
1.1.0.0/23,您需要设置两个 (2^(24-23)) 反向 DNS 区域,一个用于1.1.0.0/24,另一个用于1.1.1.0/24。对于
2001:0db8::/34,您需要设置四个 (2^(36-34)) 反向 DNS 区域,分别用于2001:0db8::/36、2001:0db8:1:/36、2001:0db8:2::/36和2001:0db8:3::/36。- 设置反向 DNS 区域。如果您使用 Cloudflare 进行 DNS,请参阅反向 DNS 区域。如果您使用其他 DNS 提供商,请遵循其说明。
- 创建将
cf-validation作为其name的 TXT 记录。它们应该类似于以下示例:
cf-validation.<REVERSE_ZONE_ADDRESS> IN TXT <TOKEN>- 在您的区域互联网注册机构 (RIR) 处更新域名服务器。更新域名服务器的具体步骤取决于您使用的注册机构。
- 复制 API 调用返回的
-
在应用了必要的更改之后,使用 Validate Prefix 端点来触发验证检查。
At least one of the following token permissions is required:Required API token permissions
Magic Transit WriteIP Prefixes: Write
Validate Prefixbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/validate" \ --request POST \ --header "X-Auth-Email: $CLOUDFLARE_EMAIL" \ --header "X-Auth-Key: $CLOUDFLARE_API_KEY"
一旦所有权验证成功,您就可以删除该令牌。
当所有验证 —— RPKI、IRR 和所有权 —— 都通过时,您前缀中的 approved 字段将返回 "V"。这意味着您可以继续创建 IP 地址服务绑定1。
如果需要,您可以使用 Prefix Details(前缀详情)端点 来检查在验证期间是否发现了任何问题。如果是这样,请进行必要的更改并发送重新开始验证的请求。有关详细信息,请参阅 前缀验证检查。
您可以允许其他账户使用您的部分或全部 BYOIP 前缀。有关详细信息,请参阅 前缀委派。
Required API token permissions
At least one of the following token permissions is required:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/delegations" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "<IP_PREFIX_TO_DELEGATE>",
"delegated_account_id": "<ACCOUNT_ID>"
}'在 IP 地址管理中,服务绑定将发往给定 IP 地址的流量映射到应路由通过的 Cloudflare 服务。
当您将 IP 前缀导入到 Cloudflare 时,必须有一个服务绑定跨越您的整个前缀。发往给定 IP 地址的流量默认将被路由到此服务。您还可以配置其他服务绑定,如步骤中所述。
- 向 List Services(列出服务) 端点发送
GET请求,并记下与您要使用的服务相关联的id。
- (可选)如果需要,使用 List Prefixes(列出前缀) 端点获取或确认与您的前缀相关联的
id。 - 向 Create service binding(创建服务绑定) 端点发送
POST请求,指明您要导入的整个 BYOIP 前缀以及应用于您的默认绑定的服务。
Required API token permissions
At least one of the following token permissions is required:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.0/24",
"service_id": "<DEFAULT_SERVICE>"
}'相应的 BGP 前缀将自动创建。请在宣告前缀前等待五个小时。
如果您希望根据每个 IP 地址有选择地将流量路由到 CDN 或 Spectrum,您可以创建其他服务绑定。
- 规划哪些 IP 将获得其他绑定。Cloudflare 强烈建议通过聚合的 CIDR 块实现服务绑定,因为这比为不连续的 CIDR 块添加离散绑定更有效率。
示例
Spectrum 保护的前缀: 203.0.113.0/24
要升级到 CDN 的 IP:
203.0.113.16
203.0.113.17
203.0.113.18
203.0.113.19
203.0.113.20
203.0.113.21
203.0.113.22
203.0.113.23
为 203.0.113.16 添加一个带有 /29 网络掩码的离散 CDN 服务绑定。
- 向 Create service binding(创建服务绑定) 端点发送
POST请求,指明您想要绑定到 CDN 或 Spectrum 的 IP 地址。根据需要指定相应的网络掩码。
Required API token permissions
At least one of the following token permissions is required:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.16/29",
"service_id": "<SERVICE_ID>"
}'在响应体中,初始预配状态应为 provisioning。
{
"errors": [],
"messages": [],
"success": true,
"result": {
"cidr": "203.0.113.16/29",
"id": "<SERVICE_BINDING_ID>",
"provisioning": {
"state": "provisioning"
},
"service_id": "<SERVICE_ID>",
"service_name": "<SERVICE_NAME>"
}
}一旦创建(或删除)服务绑定,将需要 4 到 6 个小时 在 Cloudflare 的全球网络中进行传播。
一旦自动创建(遵循步骤 2),BGP 前缀在初始时是被撤销 (withdrawn) 的。在您的所有配置到位后(如果使用 CDN 服务,还包括地址映射2),继续宣告您前缀的 BGP 路由。
- 使用 Update BGP prefix(更新 BGP 前缀) 端点开始宣告。
Required API token permissions
At least one of the following token permissions is required:Magic Transit WriteIP Prefixes: WriteIP Prefixes: BGP On Demand Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bgp/prefixes/$BGP_PREFIX_ID" \
--request PATCH \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"on_demand": {
"advertised": true
}
}'