Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Gateway リゾルバーポリシーでリージョン別プライベート DNS サーバーを実装する

最終更新 Markdown で表示Agent セットアップ

Gateway リゾルバーポリシーを使うと、さまざまな条件にもとづいて DNS クエリをカスタム DNS リゾルバーへ振り分けられます。このチュートリアルでは、リージョン別のプライベート DNS サーバーを設定し、ユーザーの地理的位置にもとづいて最も近い内部リソースへ誘導する方法を示します。

内部ネットワークが複数拠点にまたがり、DNS でプライベートネットワークリソースへのアクセスを管理している組織で特に有効です。

このチュートリアルを終えると、ユーザーの所在地にもとづいて DNS クエリをリージョン別のプライベート DNS サーバーへ自動で振り分ける Gateway リゾルバーポリシーを設定できます。内部リソースへの最適なパフォーマンスとアクセスを提供します。

例として、米国(US)と欧州(EU)のリージョンサーバーをプライベート DNS サーバーに使います。

前提条件

開始する前に、次を用意します。

  • Enterprise の Zero Trust アカウント
  • 複数リージョンにデプロイしたプライベート DNS サーバー(例: US、EU、APAC)
  • プライベート DNS サーバーを Cloudflare に接続する Cloudflare Tunnel
  • 解決が必要な内部ドメイン(例: internal.example.com

1. Cloudflare Tunnel でプライベート DNS サーバーを接続する

まず、Cloudflare Tunnel を使い、リージョン別のプライベート DNS サーバーを Cloudflare に接続します。

プライベート DNS サーバーがある各リージョンで、トンネルを作成 します。各トンネルに、DNS サーバーの プライベート IP アドレスを追加 します。たとえば、US リージョンは 10.0.1.53/32、EU リージョンは 10.1.1.53/32 です。

すべてのリージョン DNS サーバーで、この手順を繰り返します。

2. リージョンごとに Gateway リゾルバーポリシーを作成する

プライベート DNS サーバーを Cloudflare に接続したら、Gateway リゾルバーポリシーを設定し、ユーザーの所在地にもとづいて適切なリージョン DNS サーバーへ DNS クエリを振り分けます。

リージョンごとにリゾルバーポリシーを作成する

プライベート DNS サーバーがある各リージョンで、次の手順を行います。

  1. Traffic policies > Resolver policies を開きます。

  2. Add a policy を選びます。

  3. リージョンにもとづいてポリシーに名前を付けます(例: US Internal DNS)。

  4. 内部ドメインとそのリージョンのユーザーに一致する式を作成します。たとえば、米国のユーザーに一致させる場合:

    セレクター 演算子 論理
    Domain in internal.example.com And
    Source Country IP Geolocation in United States
  5. Select DNS resolverConfigure custom DNS resolvers を選びます。

  6. リージョン DNS サーバーのプライベート IP アドレスを入力します(例: US は 10.0.1.53、EU は 10.1.1.53)。

  7. ドロップダウンメニューで <IP-address> - Private を選びます。

  8. (任意)Add DNS resolver を選び、セカンダリ IP アドレスを入力してバックアップ DNS リゾルバーを追加します。

  9. Create policy を選びます。

  10. プライベート DNS サーバーがある各リージョンで、手順 1〜9 を繰り返します。たとえば、EU リージョンのユーザーに一致するポリシーを作成する場合:

セレクター 演算子 論理
Domain in internal.example.com And
Source Country IP Geolocation in AustriaBelgiumFranceGermanyNetherlands

フォールバック用のリゾルバーポリシーを作成する

専用 DNS サーバーがないリージョンのユーザー向け、またはトラフィックに一致するポリシーがない場合のキャッチオールポリシーを作成します。

  1. Traffic policies > Resolver policies を開きます。

  2. Add a policy を選びます。

  3. ポリシーに名前を付けます(例: Internal DNS Fallback)。

  4. 内部ドメインに一致する式を作成します。

    セレクター 演算子
    Domain in internal.example.com
  5. Select DNS resolverConfigure custom DNS resolvers を選びます。

  6. プライマリ DNS サーバーのプライベート IP アドレスを入力します。

  7. Create policy を選びます。

3. ポリシーの順序を設定する

Gateway は 優先順位 にもとづいてリゾルバーポリシーを適用します。ポリシーは、具体的なものからあいまいなものへ並べます。

  1. Traffic policies > Resolver policies を開きます。
  2. ドラッグハンドルでポリシーを並べ替えます。
    • リージョンカバレッジ付きのリゾルバーポリシーを先に
    • フォールバック用のリゾルバーポリシーを最後に

Gateway は最初に一致したポリシーを適用します。トラフィックに一致するポリシーがない場合、Gateway はフォールバック用のリゾルバーポリシーを適用します。リージョンカバレッジ付きリゾルバーポリシー同士の順序は問いません。

4. 設定をテストする

各リージョンからテストする

設定をテストするには、プライベート DNS サーバーがある各リージョンのデバイスに Cloudflare One Client をデプロイし、内部ドメインへ DNS クエリを実行します。たとえば、US リージョンをテストする場合:

  1. US リージョンのデバイスに Cloudflare One Client をデプロイ します。

  2. そのデバイスでターミナルを開き、次を実行します。

    nslookup internal.example.com
  3. DNS クエリが、内部リソースの想定 IP アドレスを返すことを確認します。応答には、US の DNS サーバーが internal.example.com に対して返すよう設定した IP アドレスが表示されるはずです。

  4. ほかのリージョンのデバイスからもテストを繰り返し、それぞれのリージョン DNS サーバーから応答を受けることを確認します。DNS サーバーの設定により、リージョンごとに異なる IP アドレスが返ることがあります。

Gateway ログで確認する

  1. Insights > Logs > DNS query logs を開きます。
  2. internal.example.com へのクエリでフィルタします。
  3. Resolver IP フィールドを確認し、ユーザーの所在地にもとづいて正しいリージョン DNS サーバーへクエリが振り分けられていることを確認します。

ベストプラクティス

  • バックアップリゾルバーを使う: 各リージョンにセカンダリ DNS リゾルバーを設定し、可用性を高めます。
  • DNS パフォーマンスを監視する: Gateway Analytics で DNS クエリのパフォーマンスを追跡し、リージョン振り分けの問題を見つけます。
  • ネットワークポリシーを組み合わせる: リゾルバーポリシーと ネットワークポリシー を組み合わせ、ユーザー ID とデバイスポスチャにもとづいて内部リソースへのアクセスを制御します。
  • 仮想ネットワークを検討する: リージョン間で IP アドレス空間が重複している場合は、仮想ネットワーク でトラフィックを分離します。
  • フェイルオーバーをテストする: リージョン DNS サーバーが利用できなくなったときの動作を定期的にテストし、バックアップリゾルバーが想定どおり動くことを確認します。

関連リソース

役に立ちましたか?