跳转到内容
搜索文档

快速入门

最后更新 查看 MarkdownAgent 设置

要在 Cloudflare 中使用您自己的 IP 地址,请与您的客户团队确认您的合同是否涵盖此功能。您需要配置针对您要使用的服务的特定设置,并满足所有 BYOIP 客户的标准要求。

在您的账户配置到位后,请参考下方各章节来了解如何设置您的 BYOIP 前缀。此外,请务必查看 BYOIP 特定服务条款 (BYOIP Service-Specific Terms)

开始之前

  • 您的前缀必须在以下区域互联网注册机构 (RIR) 之一进行注册:

  • 还要验证您的 互联网路由注册机构 (IRR) 记录是否是最新的,并包含:

    • 与您要导入的精确前缀相匹配的 routeroute6 对象
    • 与您要导入的正确 ASN 相匹配的 origin
  • 您必须使用 资源公钥基础设施 (RPKI) 验证 并确保您的 ROA 准确无误。您可以使用 Cloudflare RPKI 门户 和第二个来源(例如 Routinator)来仔细检查您的前缀。

  • 如果您不熟悉 Cloudflare API 的工作原理,请参阅基础知识。确保您拥有必要的权限并已获取您的账户 ID。


1. 设置您的前缀

添加您的前缀

  1. 使用 Add Prefix(添加前缀)端点 在应拥有该 BYOIP 前缀的 Cloudflare 账户中创建一个前缀。
Add Prefixbash
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
	}'
响应json
 "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",
  }
  1. 记下分配给您添加的前缀的 id。这将在后面的步骤中使用。

验证前缀所有权

  1. 通过以下方法之一验证前缀所有权:

    1. 复制 API 调用返回的 ownership_validation_token
    2. 在您要导入的前缀的 IRR 记录中,在 descriptionremarks 字段中添加以下字符串。将 <OWNERSHIP_VALIDATION_TOKEN> 替换为您在上一步中复制的实际令牌。
    cf-validation: <OWNERSHIP_VALIDATION_TOKEN>
    1. 考虑您要引入 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::/362001:0db8:1:/362001:0db8:2::/362001:0db8:3::/36

    1. 设置反向 DNS 区域。如果您使用 Cloudflare 进行 DNS,请参阅反向 DNS 区域。如果您使用其他 DNS 提供商,请遵循其说明。
    2. 创建将 cf-validation 作为其 name 的 TXT 记录。它们应该类似于以下示例:
    cf-validation.<REVERSE_ZONE_ADDRESS> IN TXT <TOKEN>
    1. 在您的区域互联网注册机构 (RIR) 处更新域名服务器。更新域名服务器的具体步骤取决于您使用的注册机构。
  2. 在应用了必要的更改之后,使用 Validate Prefix 端点来触发验证检查。

    Required API token permissions

    At least one of the following token permissions is required:
    • Magic Transit Write
    • IP 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 前缀

您可以允许其他账户使用您的部分或全部 BYOIP 前缀。有关详细信息,请参阅 前缀委派

Required API token permissions

At least one of the following token permissions is required:
  • IP Prefixes: Write
Create Prefix Delegationbash
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>"
	}'

2. 创建服务绑定 (Service Bindings)

在 IP 地址管理中,服务绑定将发往给定 IP 地址的流量映射到应路由通过的 Cloudflare 服务。

默认服务绑定

当您将 IP 前缀导入到 Cloudflare 时,必须有一个服务绑定跨越您的整个前缀。发往给定 IP 地址的流量默认将被路由到此服务。您还可以配置其他服务绑定,如步骤中所述。

  1. List Services(列出服务) 端点发送 GET 请求,并记下与您要使用的服务相关联的 id
  1. (可选)如果需要,使用 List Prefixes(列出前缀) 端点获取或确认与您的前缀相关联的 id
  2. Create service binding(创建服务绑定) 端点发送 POST 请求,指明您要导入的整个 BYOIP 前缀以及应用于您的默认绑定的服务。

Required API token permissions

At least one of the following token permissions is required:
  • IP Prefixes: Write
Create Service Bindingbash
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,您可以创建其他服务绑定。

  1. 规划哪些 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 服务绑定。

  1. Create service binding(创建服务绑定) 端点发送 POST 请求,指明您想要绑定到 CDN 或 Spectrum 的 IP 地址。根据需要指定相应的网络掩码

Required API token permissions

At least one of the following token permissions is required:
  • IP Prefixes: Write
Create Service Bindingbash
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 的全球网络中进行传播。


3. 宣告 BGP 前缀

一旦自动创建(遵循步骤 2),BGP 前缀在初始时是被撤销 (withdrawn) 的。在您的所有配置到位后(如果使用 CDN 服务,还包括地址映射2),继续宣告您前缀的 BGP 路由。

  1. 使用 Update BGP prefix(更新 BGP 前缀) 端点开始宣告。

Required API token permissions

At least one of the following token permissions is required:
  • Magic Transit Write
  • IP Prefixes: Write
  • IP Prefixes: BGP On Demand Write
Update BGP Prefixbash
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
		}
	}'

Footnotes

  1. 控制将发往给定 IP 地址的流量路由通过哪个管道的映射。

  2. 指定当 Cloudflare 响应被代理的主机名 (proxied hostnames) 的 DNS 查询时,应使用哪些 IP 地址的映射。

这篇文档对您有帮助吗?