Skip to content

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

使用開始

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

このガイドに沿って Internal DNS を使い始めます。

始める前に

  • Gateway resolver ポリシーInternal DNS にアクセスできる Enterprise アカウントがあることを確認します。

  • Gateway resolver への接続方法 の違いを確認します。

  • 認証に API トークンを使う場合は、次の権限があることを確認します。

API トークンの設定

Permissions

  • Account - DNS Views - Edit
  • Zone - DNS - Edit
  • Account - Account Settings - Edit
  • Zone - DNS Settings - Edit
  • Zone - Zone - Edit

Account Resources

  • Include - (Your account)

Zone Resources

  • Include - Specific zones

    Internal DNS 用のトークンを作成するときは、「All zones」ではなく、特定の内部ゾーンにスコープすることを推奨します。最小権限の原則に沿った運用です。あとから新しい内部ゾーンを作った場合は、トークンのスコープにそれらを追加する必要があります。ゾーン種別の自動スコープ(例: 「all internal zones」)は、今後のリリースで対応予定です。

1. 内部 DNS ゾーンを設定する

  1. Cloudflare ダッシュボードで、Internal DNS ページを開きます。

    Internal DNS を開く ↗
  2. Create an internal zone を選択します。

  3. 内部ゾーンに名前を付けます。

内部ゾーンの設定条件

  • 内部ゾーンには、パブリックゾーンで Cloudflare がサポートするのと同じ DNS レコードタイプ を含められます。
  • 内部ゾーンは、同じアカウント内のパブリックゾーンと同じ名前にできます。
  • 各内部ゾーンは、複数の ビュー にリンクできます。1
  • 1 つのアカウント内に、同じ名前の内部ゾーンを複数置けます。ただし、同じ名前の内部ゾーンを同じビューにリンクすることはできません。
  • 内部ゾーンには、トップレベルドメイン(TLD)の制限はありません。公開登録されていない TLD(例: xyz.local)でも、TLD そのもの(local)でも、ルート(.)でも、内部ゾーンを作成できます。

1 Gateway resolver ポリシーが参照する、内部 DNS ゾーンの論理グループです。特定のクエリをどのように解決するかを定義します。

  1. 希望する方法で、内部ゾーンに DNS レコードを追加します。
  • フォーマット済みの BIND ファイルを インポート します。
  • Add a record を選択し、追加したいレコードタイプの下で Create を選びます。詳細は DNS レコードタイプ を参照してください。
  1. 追加したい内部ゾーンごとに、この手順を繰り返します。
  1. Create Zone エンドポイントを使い、内部ゾーン を作成します。アカウント ID を指定し、typeinternal に設定します。

内部ゾーンの設定条件

  • 内部ゾーンには、パブリックゾーンで Cloudflare がサポートするのと同じ DNS レコードタイプ を含められます。
  • 内部ゾーンは、同じアカウント内のパブリックゾーンと同じ名前にできます。
  • 各内部ゾーンは、複数の ビュー にリンクできます。1
  • 1 つのアカウント内に、同じ名前の内部ゾーンを複数置けます。ただし、同じ名前の内部ゾーンを同じビューにリンクすることはできません。
  • 内部ゾーンには、トップレベルドメイン(TLD)の制限はありません。公開登録されていない TLD(例: xyz.local)でも、TLD そのもの(local)でも、ルート(.)でも、内部ゾーンを作成できます。

1 Gateway resolver ポリシーが参照する、内部 DNS ゾーンの論理グループです。特定のクエリをどのように解決するかを定義します。

Required API token permissions

At least one of the following token permissions is required:
  • Zone Zone Edit
  • Zone DNS Edit
Create Zonebash
curl "https://api.cloudflare.com/client/v4/zones" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"account": {
				"id": "<ACCOUNT_ID>"
		},
		"name": "<ZONE_NAME>",
		"type": "internal"
	}'
  1. 希望する方法で、内部ゾーンに DNS レコードを追加します。
  1. 追加したい内部ゾーンごとに、この手順を繰り返します。

(任意)別のゾーンからゾーンを参照する

内部 DNS クエリの解決 の途中で、一致する内部ゾーン内に内部レコードが見つからない場合、Cloudflare はその内部ゾーンが別の内部ゾーンを参照しているかを確認します。参照は連鎖してたどられ、最大 5 件まで続きます。

詳細は 参照ゾーン を参照してください。

  1. Cloudflare ダッシュボードで、Internal DNS ページを開きます。

    Internal DNS を開く ↗
  2. ゾーンを選択します。

  3. 選択したゾーン内で Reference zone を開きます。

  4. Add reference zone を選択します。

  5. 参照として使いたいゾーンを探し、その行で Select を選びます。

  1. Update DNS settings エンドポイントを使い、内部ゾーンから別の内部ゾーンへの参照を追加します。--json では、reference_zone_id パラメーターを持つ internal_dns オブジェクトを指定します。

次の例では、内部ゾーン A(ID 8a904aeb565c42cfa207d98f6edea2f3)が内部ゾーン B(ID 8e64c6fb4b514f3faf64de81efc11e51)を参照しています。

Required API token permissions

At least one of the following token permissions is required:
  • Zone DNS Settings Write
  • DNS Write
Update DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/zones/8a904aeb565c42cfa207d98f6edea2f3/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"internal_dns": {
				"reference_zone_id": "8e64c6fb4b514f3faf64de81efc11e51"
		}
	}'

2. 内部ゾーンをビューにリンクする

resolver ポリシーには DNS ビュー が必要なため、内部ゾーンへリクエストをルーティングするには、少なくとも 1 つのビューが必要です。

  1. Cloudflare ダッシュボードで、Internal DNS ページを開きます。

    Internal DNS を開く ↗
  2. Internal DNS Views を開きます。

  3. Create a view を選択します。

  4. ビューにわかりやすい名前を付けます。

DNS ビューの設定条件

  • DNS ビューは空でもよく、内部ゾーン がリンクされていなくてもかまいません。
  • DNS ビューに公開 DNS ゾーンは含められません。1
  • 各内部 DNS ゾーン名は、同じ DNS ビュー内で一意である必要があります。
  • 各 DNS ビュー名は、同じ Cloudflare アカウント内で一意である必要があります。

1 公開 DNS レコードを含み、公開リゾルバーから到達できる DNS ゾーンです。

  1. Manage zones を選択し、ビューにゾーンを追加します。Gateway resolver からこのビューへ送られるクエリの解決に使う内部ゾーンを選びます。
  2. Save を選択して確定します。
  1. Create Internal DNS View エンドポイントを使います。作成するビューごとに、そのビューにまとめる内部ゾーンをすべて列挙します。

DNS ビューの設定条件

  • DNS ビューは空でもよく、内部ゾーン がリンクされていなくてもかまいません。
  • DNS ビューに公開 DNS ゾーンは含められません。1
  • 各内部 DNS ゾーン名は、同じ DNS ビュー内で一意である必要があります。
  • 各 DNS ビュー名は、同じ Cloudflare アカウント内で一意である必要があります。

1 公開 DNS レコードを含み、公開リゾルバーから到達できる DNS ゾーンです。

3. Gateway ポリシーを設定する

resolver ポリシーの設定時に内部 DNS ビューを選ぶほか、Fallback through public DNS オプションも有効にできます。

  1. Cloudflare One で、Traffic policies > Firewall policies > Resolver policies を開きます。
  2. Add a policy を選択し、名前と説明を入力します。
  3. ルーティングしたいトラフィックの式を作成します。セレクター、演算子、値については、Gateway resolver ポリシー を参照してください。
  4. Use Internal DNS を選択します。式に一致するクエリの送信先となるビューを選びます。
  5. (任意)用途に合わせて Fallback through public DNS を調整します。
  • Off: Gateway DNS resolver は、応答をそのままクライアントに返します。
  • On: 内部ゾーンからの応答が REFUSED、NXDOMAIN、または CNAME タイプの応答である場合、Gateway DNS resolver はクエリを Cloudflare 1.1.1.1 の公開リゾルバーへ送り、公開 DNS での解決を試みます。
  1. Create policy を選択して確定します。

Zero Trust > Gateway > Rules 配下の API エンドポイントを使い、resolver ポリシーを設定します。セレクター、演算子、値については、Gateway を参照してください。

ルール設定オブジェクトで resolve_dns_internally を定義し、view_idfallback オプションを指定します。fallback オプションの動作は次のとおりです。

  • none: Gateway DNS resolver は、応答をそのままクライアントに返します。
  • public_dns: 内部ゾーンからの応答が REFUSED、NXDOMAIN、または CNAME タイプの応答である場合、Gateway DNS resolver はクエリを Cloudflare 1.1.1.1 の公開リゾルバーへ送り、公開 DNS での解決を試みます。

Gateway resolver ポリシーを追加すると、対象の内部ビューの Resolver policies referencing this view に表示されます。

Terraform で管理する

Internal DNS のリソースは、Cloudflare Terraform provider でも管理できます。パターンは公開 DNS ゾーンと同じです。違いは、cloudflare_zone リソースで type = "internal" を設定することだけです。

日常の管理にはゾーンスコープの API トークンを使い、新しいゾーンの作成にはアカウントレベルのトークンを使います。トークンが特定ゾーンにスコープされている場合は、新しい内部ゾーンを追加したときに更新してください。動作する完全な例は、Terraform provider のドキュメント を参照してください。

役に立ちましたか?