デフォルトでは、ユーザーデバイス上のすべての DNS リクエストは、ローカル解決でよく使うトップレベルドメイン(localhost など)を除き、Cloudflare の パブリック DNS リゾルバー で解決されます。内部 DNS リゾルバーを Cloudflare に接続し、公開ルーティングされないドメインの解決に使えます。
プライベート DNS クエリを解決するには:
-
Cloudflare Tunnel で プライベートネットワークを接続 します。
-
Networking > Routes で、内部 DNS リゾルバーの IP アドレスがトンネルに含まれていることを確認します。
Routes を開く ↗ -
次のいずれかの方法で、特定の DNS クエリを内部 DNS リゾルバーへルーティングします。
- 内部 DNS リゾルバーを指す Local Domain Fallback エントリを作成 します。たとえば、
myorg.privatecorpへのリクエストをすべて、公開解決せず内部リゾルバー10.0.0.25で解決するよう、Cloudflare One Client に指示できます。 - または、内部 DNS リゾルバーを指す リゾルバーポリシーを作成 します。
リゾルバーポリシー は Local Domain Fallback と似た機能を提供しますが、ローカルデバイスではなく Cloudflare Gateway で実行されます。プライベート DNS 解決をより細かく制御したい場合に推奨します。たとえば、特定の地域のユーザー全員が最も近いプライベート DNS サーバーを使うようにしたり、プライベート DNS トラフィックを解決する前に特定の条件を満たすようにしたり、プライベート DNS トラフィックに Gateway の DNS ポリシー を適用したりできます。
- 内部 DNS リゾルバーを指す Local Domain Fallback エントリを作成 します。たとえば、
-
TCP と UDP 向けに Gateway プロキシを有効化 します。
-
最後に、トンネルのデフォルト トランスポートプロトコル が QUIC であることを確認します。これにより、
cloudflaredが UDP ベースのトラフィックをプロキシできます。ほとんどの場合、DNS クエリの解決に必要です。
Cloudflare One Client は、解決のために内部 DNS リゾルバーへ DNS クエリを送るようになります。詳細は Cloudflare One Client が DNS リクエストを処理する方法 を参照してください。
テストとして、内部 DNS サービスに対して dig コマンドを実行します。
dig AAAA www.myorg.privatecorpmyorg.privatecorp をフォールバックドメインとして上で設定したため、この dig コマンドは動作します。そのステップを省略した場合でも、プライベート DNS リゾルバーを使うよう dig を強制できます。
dig @10.0.0.25 AAAA www.myorg.privatecorpエンドユーザーのデバイスで Cloudflare One Client が無効な場合、どちらの dig コマンドも失敗します。
Cloudflare Tunnel でプライベート DNS を設定するときに問題が起きたら、次の切り分けを試してください。
-
Cloudflare ダッシュボードの Networking > Tunnels を開き、
cloudflaredが Cloudflare に接続されていることを確認します。 -
cloudflaredがquicプロトコルで動作していることを確認します(ログでInitial protocol quicを探します)。 -
cloudflaredを実行しているマシンが、Cloudflare への通信のため UDP ポート 7844 での送信を許可されていることを確認します。 -
エンドユーザーのデバイスが Cloudflare One Client に登録されていることを、https://help.teams.cloudflare.com ↗ で確認します。
-
Gateway ネットワークポリシー の 優先順位 を再確認します。より広い Block または Allow ポリシーが、アプリケーション固有のポリシーより優先されていないことを確認します。
-
Gateway ネットワークログ で、UDP の DNS 解決が許可されているかブロックされているかを確認します。
-
内部 DNS リゾルバーが、ルーティング可能なプライベート IP アドレスで利用できることを確認します。
cloudflaredを実行しているマシンでdigコマンドを試して確認できます。 -
dig ... +tcpを使い、DNS 解決を UDP ではなく TCP に強制してセットアップを確認します。