このガイドでは、公開ホスト名をプライベートネットワーク上のオリジンへプロキシする手順を説明します。プライベートネットワークには、Cloudflare WAN(旧 Magic WAN)の IPsec トンネル経由で到達します。CDN、WAF、Cache、そのほかのプロキシ機能は、公開オリジン向けトラフィックと同じように、このトラフィックにも適用されます。
開始前に、次を確認してください。
- 有効な Cloudflare WAN サブスクリプション: この機能には、アカウントの Cloudflare WAN サブスクリプションが必要です。
- アカウントでプライベートオリジンへのアクセスが有効: これは標準の権威 DNS アクセスとは別のエンタイトルメントです。アクセスを希望する場合は、Cloudflare のアカウントチームへ問い合わせてください。
- IPsec トンネルが設定済み: 冗長化のため、異なる Cloudflare anycast エンドポイントを持つ anycast IPsec トンネルを 2 本設定します。トンネルエンドポイントの設定 を参照してください。このユースケースでは、次の 2 つの設定が重要です。
- Automatic return routing は無効のままにします。リクエストがインターネットから発生し、Cloudflare のリバースプロキシ経由でオリジンへ到達する、公開からプライベートへのオリジン向けトラフィックパターンには適用されません。
- デフォルトの Health check 設定(タイプ
reply、方向bidirectional、レートmid)を維持します。このユースケースでトンネルヘルスを正しく追跡するには、これらのデフォルトが必要です。
- 静的ルートが設定済み: 到達したいプライベートプレフィックスに対し、トンネルごとに 1 本ずつ、優先度の異なる静的ルートを 2 本追加します。プライマリがダウンした場合にバックアップトンネルへフェイルオーバーします。たとえば、プライマリトンネル経由のルートに優先度
100、バックアップトンネル経由のルートに101を設定します(数値が小さいほど優先度が高いです)。ルートの設定 を参照してください。 - Cloudflare Source IP をプライベートレンジに設定: Cloudflare Source IP は、プロキシしたリクエストをプライベートネットワークへ送るときに Cloudflare が使う IP です。公開レンジのままにすると、ネットワークはリターントラフィックをトンネル経由で戻せないため、リクエストはタイムアウトします。Cloudflare source IP の設定 を参照してください。
Cloudflare Source IP の設定ミスは、失敗の最も多い原因です。Source IP が公開レンジのままだと、オリジンがあるネットワークにリターンルートがなく、リクエストはアプリケーションへ到達する前にタイムアウトします。
Cloudflare source IP の設定 を開き、Source IP が 100.64.0.0/12(デフォルト)や、選択した別のプライベート /12 など、プライベートレンジになっていることを確認します。
オリジンのプライベート IP アドレスを指す A または AAAA レコードを作成し、プロキシステータスを有効にして Use private network routing をオンにします。これにより、そのホスト名のトラフィックは公開インターネットではなく、Cloudflare WAN トンネル経由で送られます。
ダッシュボードと API の手順は、プライベートネットワークルーティング を参照してください。
DNS レコードを置いたあと、Cloudflare ネットワークからトンネル経由でオリジンへ至る経路を検証します。
Cloudflare ダッシュボードで、IPsec トンネルが健全であることを確認します。ダッシュボードでトンネルヘルスを確認する を参照してください。
プライベートネットワークの外にあるマシンから、プロキシ済みホスト名へ HTTPS リクエストを送ります。
curl -v https://<YOUR_DOMAIN>/成功した応答は、Cloudflare がリクエストを受け付け、プロキシ機能を適用し、トンネル経由でオリジンへ到達したことを示します。
オリジンの VM で、リクエストが Cloudflare Source IP レンジから届いていることを確認します。たとえば、ポート 443 で 100.64.0.0/12 からの受信トラフィックを監視します。
sudo tcpdump -n -i any 'src net 100.64.0.0/12 and dst port 443'100.64.0.0/12 は、アカウントに設定した Source IP レンジに置き換え、ポートはオリジンのリスナーに合わせて調整します。
| 症状 | 原因と対処 |
|---|---|
| クライアントからの接続タイムアウト | Cloudflare Source IP が公開レンジになっています。プライベート /12 に設定します。 |
| リクエストがタイムアウトし、オリジンに応答がない | オリジンがあるネットワークに、Cloudflare Source IP レンジ向けのリターンルートがありません。そのレンジをトンネル経由で戻すルートを追加します。 |
| トンネルは IKE 確立済みだがヘルスチェックが失敗する | 経路上で ICMP がブロックされているか、ヘルスチェックの設定が誤っています。トンネルエンドポイント間で ICMP を許可し、ヘルスチェックの方向が bidirectional、タイプが reply であることを確認します。 |
| トラフィックが公開インターネット経由でルーティングされる | DNS レコードの Use private network routing トグルがオンになっていません。レコードを編集し、トグルをオンにします。 |
- トンネルヘルスアラートを設定 し、トンネルがダウンしたときに通知を受け取ります。
- ダッシュボードと API の詳細は、プライベートネットワークルーティング のリファレンスを確認してください。
- トンネルの問題が発生した場合は、トンネルヘルスのトラブルシューティング と IPsec のトラブルシューティング を参照してください。