Skip to content

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

DNS only を強制する

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

enforce DNS-only 設定は、アカウント単位の緊急回避(break-glass)機構です。1 回の操作で、アカウント内のすべてのゾーンについて Cloudflare のリバースプロキシをバイパスできます。有効にすると、Cloudflare は DNS クエリに対して、Cloudflare の anycast IP アドレスではなく、レコード本体の内容(プロキシ済み A および AAAA レコードではオリジン IP アドレス、プロキシ済み CNAME レコードでは CNAME 対象)を返します。実質的には、レコード自体は変更せず、すべての プロキシ済み DNS レコード を DNS only にした状態になります。

この設定は、障害時にトラフィックをオリジンへ直接向ける必要がある場合など、緊急時専用です。

主な特徴

  • アカウント単位: アカウント内のすべてのゾーンに同時に影響します。
  • 非破壊: DNS レコード自体は変更しません。設定を無効にすると、通常のプロキシ動作に戻ります。
  • API のみ: API でのみ利用でき、Cloudflare ダッシュボードでは使えません。

ゾーンの種類

enforce DNS-only は、すべてのゾーンセットアップ種類で動作します。

  • フルセットアップ: ゾーン内のプロキシ済みレコードは、いくつかの 例外 を除いて影響を受けます。

  • 部分(CNAME)セットアップ: ゾーン内のプロキシ済みレコードは、いくつかの 例外 を除いて影響を受けます。

  • セカンダリゾーン: Secondary DNS Overrides が有効で、レコードのプロキシステータスを手動でプロキシ済みにしている場合、そのレコードは影響を受けます。同じ名前のほかの A または AAAA レコードにも適用されます。詳細は Secondary DNS Overrides を参照してください。

準備

インシデント対応計画の一部として enforce DNS-only に頼る前に、次を行ってください。

  • オリジンサーバーの容量を確認する: Cloudflare のプロキシがないと、通常は Cloudflare がキャッシュまたはフィルタするトラフィックも含め、オリジンサーバーがすべてのトラフィックを直接処理します。この負荷にインフラが耐えられることを確認します。
  • 公開されるレコード内容を確認する: enforce DNS-only が有効なあいだ、プロキシ済み A および AAAA レコードに設定したすべてのオリジン IP と、プロキシ済み CNAME レコードの対象が、DNS クエリで公開されます。オリジンのセキュリティが IP の秘匿に依存している場合は、その前提で計画します。
  • 事前にテストする: 緊急時に使う前に、ステージングまたはテストアカウントの API で動作を確認します。

enforce DNS-only を有効にする

Update DNS Settings エンドポイントで、アカウントの enforce DNS-only を有効にします。

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
Update DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"enforce_dns_only": true
	}'

有効になると、Cloudflare はすべてのプロキシ済みレコードの DNS クエリに対して、Cloudflare の anycast IP ではなく、レコード本体の内容(A および AAAA レコードでは設定済みのオリジン IP アドレス、CNAME レコードでは設定済みの CNAME 対象)を返します。

enforce DNS-only を無効にする

通常のプロキシ動作に戻すには、enforce_dns_onlyfalse に設定します。

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
Update DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"enforce_dns_only": false
	}'

設定を無効にすると、Cloudflare はプロキシ済みレコードの DNS クエリに anycast IP アドレスを返すようになり、プロキシベースの機能もすべて復帰します。

その他の Cloudflare 製品

DNS レコードに依存するほかの Cloudflare 製品を使っている場合は、次のセクションを参照してください。

対象になるもの

enforce DNS-only は、次のレコードに影響します。

対象外

enforce DNS-only は、次のレコードには影響しません。

  • R2 カスタムドメイン: R2 カスタムドメイン を設定したときに DNS レコード表へ追加される、読み取り専用のプロキシ済みレコード。
  • Spectrum アプリケーション: Spectrum アプリケーションが管理する DNS レコード。
  • Tunnel: トンネルサブドメインを指す CNAME レコード。詳細は Tunnel のルーティング または Cloudflare One を参照してください。
  • Web3 ゲートウェイ: Web3 ゲートウェイ構成 が管理する、読み取り専用のプロキシ済みレコード。
  • Workers カスタムドメイン: Workers の カスタムドメイン を設定したときに DNS レコード表へ追加される、読み取り専用のプロキシ済みレコード。

動作の目安

  • 変更は Cloudflare のエッジで即座に反映されます。DNS の伝播待ちはありません。
  • 機能的には、すべてのプロキシ済みレコードを DNS only に設定した状態と同じです。

現在の状態を確認する

Show DNS Settings エンドポイントで、現在の値を確認します。

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
  • Account DNS Settings Read
Show DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

関連リソース

  • Proxy status — プロキシ済みレコードと DNS only レコードの動作を確認します。
  • 一括レコード変更 — 1 つのゾーン内で、複数レコードのプロキシステータスを一括変更します。

役に立ちましたか?