自前の IP アドレスを Cloudflare で使うには、アカウントチームに契約がこの機能をカバーしているか確認してください。利用するサービス固有の設定に加え、すべての BYOIP お客様向けの標準要件も満たす必要があります。
アカウントの設定が整ったら、次のセクションで BYOIP プレフィックスのセットアップ方法を確認してください。BYOIP Service-Specific Terms ↗ も確認してください。
-
プレフィックスは、次のいずれかの Regional Internet Registry(RIR)に登録されている必要があります。
-
Internet Routing Registry(IRR) のレコードが最新で、次を含むことも確認してください。
- オンボードするプレフィックスと完全に一致する
routeまたはroute6オブジェクト - オンボードする正しい ASN と一致する
origin
- オンボードするプレフィックスと完全に一致する
-
Resource Public Key Infrastructure(RPKI)検証 を使い、ROA が正確であることを確認してください。プレフィックスの再確認には Cloudflare の RPKI Portal ↗ と、Routinator ↗ などの別ソースを使えます。
-
Cloudflare API の使いかたに慣れていない場合は、Fundamentals を参照してください。必要な権限とアカウント ID があることを確認してください。
- Add Prefix エンドポイント を使い、BYOIP プレフィックスを所有する Cloudflare アカウントにプレフィックスを作成します。
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--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^(next boundary - current netmask)1.1.0.0/23では、1.1.0.0/24と1.1.1.0/24の 2 つ(2^(24-23))の逆引き DNS ゾーンを用意します。2001:0db8::/34では、2001:0db8::/36、2001:0db8:1:/36、2001:0db8:2::/36、2001:0db8:3::/36の 4 つ(2^(36-34))の逆引き DNS ゾーンを用意します。- 逆引き DNS ゾーンをセットアップします。Cloudflare を DNS に使う場合は、逆引き DNS ゾーン を参照してください。別の DNS プロバイダーを使う場合は、その手順に従ってください。
nameにcf-validationを使って TXT レコードを作成します。次の例のようになります。
cf-validation.<REVERSE_ZONE_ADDRESS> IN TXT <TOKEN>- Regional Internet Registry(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 "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
所有権の検証が成功したら、トークンを削除できます。
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 "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"cidr": "<IP_PREFIX_TO_DELEGATE>",
"delegated_account_id": "<ACCOUNT_ID>"
}'IP アドレス管理では、サービスバインディングは、特定の IP アドレス宛のトラフィックを、どの Cloudflare サービス経由でルーティングするかを対応付けます。
IP プレフィックスを Cloudflare にオンボードするときは、プレフィックス全体を覆うサービスバインディングが 1 つ必要です。特定の 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 "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"cidr": "203.0.113.0/24",
"service_id": "<DEFAULT_SERVICE>"
}'対応する BGP プレフィックスは自動で作成されます。プレフィックスをアドバタイズするまで 5 時間待ってください。
CDN または Spectrum へ IP アドレス単位で選択的にトラフィックをルーティングする場合は、追加のサービスバインディングを作成できます。
- 追加バインディングを付ける 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
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--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>"
}
}サービスバインディングの作成(または削除)後、Cloudflare のグローバルネットワークへ伝播するまで 4〜6 時間 かかります。
自動作成された BGP プレフィックス(ステップ 2 のあと)は、最初は撤回されています。CDN サービスを使う場合の アドレスマップ2 を含む、すべての設定が整ってから、プレフィックスの BGP ルートをアドバタイズします。
- Update BGP prefix エンドポイントでアドバタイズを開始します。
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 "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"on_demand": {
"advertised": true
}
}'