Cloudflare は、ネットワークのルーター向けトンネル宛先として使う IPv4 anycast アドレスをアカウントに割り当てます。このアドレスは、Cloudflare dashboard の Address Space > Leased IPs ↗ で確認できます。追加のエンドポイントアドレスが必要な場合は、アカウントチームへ連絡してください。
Cloudflare は、多くのグローバル分散データセンターの複数ノードからエンドポイント IP を通知することで、自ネットワーク上の障害を自動処理します。お客様ネットワーク上の障害に対応するには、別々のルーターから 2 つのトンネルを設定します。
トンネルを作成する前に、次の情報を用意します。
- Cloudflare endpoint address: アカウントに割り当てられた anycast IP アドレス。Cloudflare dashboard の Address Space > Leased IPs ↗ で確認できます。
- Customer endpoint IP: Cloudflare が代理で通知するプレフィックスの外にある、パブリックインターネットで到達可能な IP アドレス(通常は ISP が提供します)。Cloudflare Network Interconnect を使う場合、または IPsec トンネルでは不要です(ルーターが
ID_IPV4_ADDR型の IKE ID を使う場合を除く)。 - Interface address: RFC 1918 プライベート IP 空間(
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)または169.254.240.0/20(このアドレス空間はリンクローカルアドレスでもあります)からの/31(推奨)または/30サブネット。
GRE または IPsec トンネルでトラフィックを Cloudflare WAN へオンボードできます。設定は Cloudflare dashboard または API で行います。API を使う場合は、account ID と API キー が必要です。
| 機能 | GRE | IPsec |
|---|---|---|
| 暗号化 | なし | あり |
| 認証 | なし | 事前共有キー (PSK) |
| セットアップの複雑さ | より単純 | PSK の交換が必要 |
| 適する用途 | 信頼済みネットワーク、CNI 接続 | 暗号化が必要なインターネット向け接続 |
両方のトンネルタイプの技術要件は トンネルとカプセル化 を参照してください。
完全な一覧は IPsec のサポート暗号 を参照してください。IPsec トンネルは Internet Key Exchange version 2 (IKEv2) のみをサポートします。
Cloudflare WAN と anycast IPsec トンネルを使う場合、アンチリプレイ保護は無効にすることを推奨します。Cloudflare はこの設定をデフォルトで無効にします。ただし、無効化をサポートしないデバイス(Cisco Meraki、Velocloud、AWS VPN Gateway など)向けに、API または Cloudflare dashboard から有効にできます。
このトピックの詳細は アンチリプレイ保護 を参照するか、この機能の有効化は IPsec トンネルを追加する を参照してください。
GRE と IPsec トンネル以外に、Network Interconnect (CNI) でもトラフィックを Cloudflare WAN へオンボードできます。詳細は Network Interconnect (CNI) を参照してください。
-
Connectors ページを開きます。
Connectors を開く ↗ -
IPsec/GRE tunnels タブから Create a tunnel を選択します。
-
Add tunnels ページで、GRE tunnel または IPsec tunnel のいずれかを選びます。
-
Name に分かりやすいトンネル名を付けます。この名前は一意である必要があり、スペースや特殊文字を含められず、他のトンネルと共有できません。
-
(任意) Description にトンネルの説明を入力します。
-
IPv4 Interface address に、トンネルの内部 IP アドレスとインターフェースのプレフィックス長(
/31または/30)を入力します。Cloudflare 側でトンネル経由のトラフィックをルーティングするために使います。IP アドレス空間を最も効率よく使う/31サブネットを推奨します。
トンネルタイプに応じて、次のセクションを展開して設定を完了します。
GRE tunnel
-
Customer GRE endpoint にルーターのパブリック IP アドレスを入力します。Cloudflare Network Interconnect のような物理または仮想接続を使う場合、Cloudflare が提供するためこの値は不要です。
-
Cloudflare GRE endpoint に、アカウントに割り当てられた anycast アドレスの 1 つを入力します。Leased IPs ↗ で確認できます。
-
(任意) TTL と MTU はデフォルト値のままにするか、ネットワーク向けにカスタマイズします。
-
(任意) ヘルスチェック設定を構成します。各オプションの詳細は次を展開します。
Health check options
- Tunnel health checks: デフォルトで有効です。トンネルヘルスチェックを無効にすると、動作していても トンネルヘルス dashboard ではトンネルが 100% ダウンと表示されます。Cloudflare はトンネルがダウンしたことを検出できず、トンネル経由でトラフィックを送り続けます。ダウンしたトンネルを検出する独自の仕組みが必要です。Cloudflare はダウンを警告できません。詳細は トンネルヘルスチェック を参照してください。
- Health check rate: トンネルヘルスチェックを有効のままにする場合、トンネルの ヘルスチェックレート を選びます。選択肢は Low、Medium、High です。
- Health check type: デフォルトは Reply で、ICMP(Internet Control Message Protocol)reply を作成します。ファイアウォールがこの種のパケットを攻撃とみなして破棄する場合は、ICMP request を作成する Request に変更します。詳細は トンネルヘルスチェック を参照してください。
- Health check direction: Cloudflare WAN ではデフォルトで bidirectional です。詳細は 双方向と単方向のヘルスチェック を参照してください。
- Health check target: トンネルのお客様側です。このフィールドは Health check direction が Unidirectional のときだけ表示されます。
-
(任意) 正式に追加する前にトンネルをテストすることを推奨します。テストするには Test tunnels を選択します。
-
(任意) このトンネルを、Cloudflare への送信と応答の受信だけが必要で、WAN 内の他サイトからのトラフィック受信が不要なサイト向けに設定する場合は、Automatic return routing を選択します。この機能には Unified Routing が必要です。詳細は Automatic Return Routing を設定する を参照してください。
-
複数のトンネルを追加するには、新しいトンネルごとに Add GRE tunnel を選択します。
-
トンネル情報を追加したら、Add tunnels を選択します。
-
(任意) ネットワークと Cloudflare の間でルートを動的に交換したい場合は、Allow BGP (Border Gateway Protocol) peering(ベータ)を選択します。この機能には Unified Routing が必要です。
BGP は、ルートが頻繁に変わる環境や自動フェイルオーバーが必要なときに推奨されます。詳細は BGP ルートを設定する を参照してください。
IPsec tunnel
-
(任意) Customer endpoint にルーターのパブリック IP アドレスを入力します。この値は、ルーターが
ID_IPV4_ADDR型の IKE ID を使う場合にのみ必要です。 -
Cloudflare endpoint に、アカウントに割り当てられた anycast アドレスの 1 つを入力します。Leased IPs ↗ で確認できます。
-
(任意) ヘルスチェック設定を構成します。各オプションの詳細は次を展開します。
Health check options
- Tunnel health checks: デフォルトで有効です。トンネルヘルスチェックを無効にすると、動作していても トンネルヘルス dashboard ではトンネルが 100% ダウンと表示されます。Cloudflare はトンネルがダウンしたことを検出できず、トンネル経由でトラフィックを送り続けます。ダウンしたトンネルを検出する独自の仕組みが必要です。Cloudflare はダウンを警告できません。詳細は トンネルヘルスチェック を参照してください。
- Health check rate: トンネルヘルスチェックを有効のままにする場合、トンネルの ヘルスチェックレート を選びます。選択肢は Low、Medium、High です。
- Health check type: デフォルトは Reply で、ICMP(Internet Control Message Protocol)reply を作成します。ファイアウォールがこの種のパケットを攻撃とみなして破棄する場合は、ICMP request を作成する Request に変更します。詳細は トンネルヘルスチェック を参照してください。
- Health check direction: Cloudflare WAN ではデフォルトで bidirectional です。詳細は 双方向と単方向のヘルスチェック を参照してください。
- Health check target: トンネルのお客様側です。このフィールドは Health check direction が Unidirectional のときだけ表示されます。
-
まだ事前共有キーがない場合:
- Add pre-shared key later を選択します。
- (任意) 正式に追加する前にトンネル構成をテストすることを推奨します。テストするには Test tunnels を選択します。
- Add tunnels を選択します。
- Cloudflare dashboard が設定済みトンネルの一覧を読み込みます。作成したばかりの IPsec トンネルは、まだ機能していないことを示す警告の三角アイコンを表示します。Edit を選択します。
- Generate a new pre-shared key > Update and generate a pre-shared key を選びます。キーを安全な場所に保存し、Done を選択します。
-
すでに事前共有キーがある場合:
- Use my own pre-shared key を選択します。
- Your pre-shared key にキーを貼り付けます。
- (任意) 正式に追加する前にトンネルをテストすることを推奨します。テストするには Test tunnels を選択します。
- Add tunnels を選択します。
-
(任意) 無効化をサポートしないデバイスがある場合は Replay protection を有効にします。詳細は アンチリプレイ保護 を参照してください。
-
(任意) このトンネルを、Cloudflare への送信と応答の受信だけが必要で、WAN 内の他サイトからのトラフィック受信が不要なサイト向けに設定する場合は、Automatic return routing を選択します。この機能には Unified Routing が必要です。詳細は Automatic Return Routing を設定する を参照してください。
-
複数のトンネルを追加するには、新しいトンネルごとに Add IPsec tunnel を選択します。
-
トンネル情報を追加したら、Add tunnels を選択します。
-
(任意) ネットワークと Cloudflare の間でルートを動的に交換したい場合は、Allow BGP (Border Gateway Protocol) peering(ベータ)を選択します。この機能には Unified Routing が必要です。
BGP は、ルートが頻繁に変わる環境や自動フェイルオーバーが必要なときに推奨されます。詳細は BGP ルートを設定する を参照してください。
GRE tunnel
API を使って POST リクエストを作成し、GRE トンネルを作成します。
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/gre_tunnels" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<TUNNEL_NAME>",
"description": "<TUNNEL_DESCRIPTION>",
"interface_address": "<INTERFACE_ADDRESS>",
"cloudflare_gre_endpoint": "<CLOUDFLARE_ENDPOINT>",
"customer_gre_endpoint": "<CUSTOMER_ENDPOINT>"
}'{
"errors": [
{
"code": 1000,
"message": "message"
}
],
"messages": [
{
"code": 1000,
"message": "message"
}
],
"result": {
"gre_tunnels": [
{
"cloudflare_gre_endpoint": "<IP_ADDRESS>",
"customer_gre_endpoint": "<IP_ADDRESS>",
"interface_address": "<INTERFACE_CIDR>",
"name": "<TUNNEL_NAME>",
"description": "<TUNNEL_DESCRIPTION>",
"health_check": {
"direction": "unidirectional",
"enabled": true,
"rate": "low",
"type": "reply"
},
"mtu": 0,
"ttl": 0
}
]
},
"success": true
}IPsec tunnel
-
API を使って
POSTリクエストを作成し、IPsec トンネルを作成します。例では、リプレイ保護はデフォルトで無効です。使用デバイスがこの機能の無効化をサポートしない場合は、各 IPsec トンネルで
"replay_protection": trueフラグを付けて有効にできます。IPsec トンネルをすでに作成済みなら、PUTリクエスト で更新します。このトピックの詳細は アンチリプレイ保護 を参照してください。
At least one of the following token permissions is required:Required API token permissions
Magic WAN WriteMagic Transit Write
Create an IPsec tunnelbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/ipsec_tunnels" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "<TUNNEL_NAME>", "description": "<TUNNEL_DESCRIPTION>", "interface_address": "<INTERFACE_ADDRESS>", "cloudflare_endpoint": "<CLOUDFLARE_ENDPOINT>", "customer_endpoint": "<CUSTOMER_ENDPOINT>" }'{ "errors": [ { "code": 1000, "message": "message" } ], "messages": [ { "code": 1000, "message": "message" } ], "result": { "ipsec_tunnels": [ { "id": "<IPSEC_TUNNEL_ID>", "interface_address": "<INTERFACE_CIDR>", "name": "<TUNNEL_NAME>", "cloudflare_endpoint": "<IP_ADDRESS>", "customer_endpoint": "<IP_ADDRESS>", "description": "<TUNNEL_DESCRIPTION>", "health_check": { "direction": "unidirectional", "enabled": true, "rate": "low", "type": "reply" }, "psk_metadata": {}, "replay_protection": false } ] }, "success": true }トンネルの
id値を控えます。事前共有キー (PSK) の生成に使います。 -
PSK を生成する
POSTリクエスト を作成します。前のコマンドで受け取ったトンネルid値を使います。
At least one of the following token permissions is required:Required API token permissions
Magic WAN WriteMagic Transit Write
Generate Pre-Shared Key (PSK) for IPsec tunnelsbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/ipsec_tunnels/$IPSEC_TUNNEL_ID/psk_generate" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "ipsec_id": "<IPSEC_ID>", "ipsec_tunnel_id": "<IPSEC_TUNNEL_ID>", "psk": "<PSK_CODE>", "psk_metadata": { "last_generated_on": "2025-03-13T14:28:47.054317925Z" } }, "success": true, "errors": [], "messages": [] }psk値を控えます。 -
PSK で IPsec トンネルを更新する
PUTリクエスト を作成します。curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/magic/ipsec_tunnels/%7Bipsec_tunnel_id%7D" \ --request PUT \ --json '{ "psk": "<PSK_VALUE>" }'
{
"result": {
"modified": true,
"modified_ipsec_tunnel": {
"id": "<IPSEC_ID>",
"interface_address": "<IPSEC_CIDR>",
"created_on": "2025-03-13T14:28:21.139535Z",
"modified_on": "2025-03-13T14:33:26.09683Z",
"name": "<TUNNEL_NAME>",
"cloudflare_endpoint": "<IP_ADDRESS>",
"customer_endpoint": "<IP_ADDRESS>",
"remote_identities": {
"hex_id": "",
"fqdn_id": "",
"user_id": ""
},
"psk_metadata": {
"last_generated_on": "2025-03-13T14:28:47.054318Z"
},
"description": "<TUNNEL_DESCRIPTION>",
"health_check": {
"enabled": true,
"target": "",
"type": "reply",
"rate": "mid",
"direction": "unidirectional"
}
}
},
"success": true,
"errors": [],
"messages": []
}- 手順 3 の
psk値を使い、機器側の IPsec トンネルも設定します。
双方向ヘルスチェックを設定する
双方向ヘルスチェックは GRE と IPsec トンネルで利用できます。Cloudflare WAN ではこのオプションのデフォルトは双方向です。
API で "bidirectional" または "unidirectional" を使ってこの設定を変更できます。
curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/magic/ipsec_tunnels/%7Bipsec_tunnel_id%7D" \
--request PUT \
--json '{
"health_check": {
"direction": "bidirectional"
}
}'{
"result": {
"modified": true,
"modified_ipsec_tunnel": {
"id": "<IPSEC_ID>",
"interface_address": "<IPSEC_CIDR>",
"created_on": "2025-03-13T14:28:21.139535Z",
"modified_on": "2025-03-13T14:33:26.09683Z",
"name": "<TUNNEL_NAME>",
"cloudflare_endpoint": "<IP_ADDRESS>",
"customer_endpoint": "<IP_ADDRESS>",
"remote_identities": {
"hex_id": "",
"fqdn_id": "",
"user_id": ""
},
"psk_metadata": {
"last_generated_on": "2025-03-13T14:28:47.054318Z"
},
"description": "<TUNNEL_DESCRIPTION>",
"health_check": {
"enabled": true,
"target": "",
"type": "reply",
"rate": "mid",
"direction": "bidirectional"
}
}
},
"success": true,
"errors": [],
"messages": []
}トンネルの健全性を確認するため、Cloudflare は ICMP(Internet Control Message Protocol)reply パケット ↗ からなる ヘルスチェックプローブ をネットワークへ送ります。Cloudflare はこれらのプローブを受信して、トンネルが健全かどうかを判断します。
Cloudflare WAN では双方向ヘルスチェック、Magic Transit(direct server return)では単方向ヘルスチェックがデフォルトです。ただし、単方向の ICMP reply パケットをインターネット経由で Cloudflare へルーティングすると、ステートフルファイアウォールなどの中間ネットワーク機器で破棄されることがあります。エグレス トラフィックがある Magic Transit のお客様は、この設定を双方向に変更できます。
パブリック IP 範囲を使うレガシーヘルスチェックシステムをお使いのお客様には、次を推奨します。
- トンネルヘルスチェックのターゲット IP アドレスを、
172.64.240.252/30プレフィックス範囲内のアドレスに設定する。 - 送信元 IP アドレスが設定済みのトンネルヘルスチェックターゲット(例:
172.64.240.253/32)と一致する パケット ↗ に一致するポリシーベースルートを適用し、トンネル経由で Cloudflare へ戻す。
トンネルエンドポイントを設定したので、次は Cloudflare 経由でトラフィックを誘導するルートを設定します。ルーティングには 2 つの選択肢があります。
- 静的ルート: ルートがほとんど変わらない単純で安定したネットワークに適します。各ルートを手動で定義します。
- BGP ピアリング: ルートが頻繁に変わる動的環境、複数プレフィックス、自動フェイルオーバーが必要なときに適します。作成時にトンネルで BGP を有効にする必要があります。
両方のオプションの詳細な手順は ルートを設定する を参照してください。
ルートを設定したあとは、サイトをセットアップ する必要があります。
トンネルで問題が起きる場合:
- トンネルヘルスチェックの問題は トンネルヘルスのトラブルシューティング を参照してください。
- IPsec トンネル確立の問題は IPsec ログでトラブルシューティングする を参照してください。