Skip to content

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

DNS 解決

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

部分ゾーン(CNAME セットアップ)では、プロキシされた HTTP リクエストの送信先オリジンサーバーを内部解決するため、Cloudflare はプライマリゾーン(フルセットアップ)とは少し異なる方法で DNS レコードを扱います。

同じゾーン内のレコード

部分ゾーンで 新しい DNS レコードを作成する と、Cloudflare は同じゾーン内の既存の A、AAAA、または CNAME レコードを、いずれかの CNAME レコードが指していないかを自動で確認します。

たとえば、部分ゾーンに次のレコードがある場合、Cloudflare は警告を表示します。

sub1.partialzone.com   CNAME   sub2.partialzone.com
sub2.partialzone.com   A       192.0.2.1

Cloudflare が CNAME とそのターゲットの両方を持っているため、DNS 解決は sub1.partialzone.com への着信 HTTP リクエストをオリジン 192.0.2.1 へ送ります。

権威 DNS プロバイダー側に、すでに sub2.partialzone.com の DNS レコードがある場合、問題が起きることがあります。それらのレコードは 192.0.2.4、別の IP アドレス、または別のドメインを指している可能性があります。ただし、Cloudflare が最初のレコードとターゲットの両方を持っているため、sub2.partialzone.com のレコードを権威 DNS プロバイダーへ照会しません。

    flowchart TD
      accTitle: 同一部分ゾーン内に CNAME ターゲットがある場合の DNS 解決フロー
      A[<code>sub1.partialzone.com</code> へのリクエスト] --> B[<code>sub1.partialzone.com</code> から <code>sub2.partialzone.com</code> への <code>CNAME</code> レコード]
      subgraph Cloudflare
        B --> C[<code>sub2.partialzone.com</code> から <code>192.0.2.1</code> への <code>A</code> レコード]
      end
      C --> D[<code>192.0.2.1</code>]
      subgraph 権威 DNS
      E[<code>sub2.partialzone.com</code> から <code>192.0.2.4</code> への <code>A</code> レコード]
      end

この状況を避ける場合、つまり部分ゾーン内に CNAME レコードの ターゲット がない場合、DNS 解決は次のように進みます。

    flowchart TD
      accTitle: 部分ゾーン外に CNAME ターゲットがある場合の DNS 解決フロー
      A[<code>sub1.partialzone.com</code> へのリクエスト] --> B[<code>sub1.partialzone.com</code> から <code>sub2.partialzone.com</code> への <code>CNAME</code> レコード]
      B --> C[<code>sub2.partialzone.com</code> から <code>192.0.2.4</code> への <code>A</code> レコード]
      C --> D[<code>192.0.2.4</code>]
      subgraph Cloudflare
        B
      end
      subgraph 権威 DNS
        C
      end

同じアカウント内の部分ゾーンを指すレコード

ゾーン(部分またはフル)で、アカウント内の別の部分ゾーンのレコードを指す CNAME レコードを作成する こともできます。

この場合、Cloudflare は常に、CNAME ターゲットゾーンの権威 DNS プロバイダー側の値に基づいて CNAME ターゲットを解決します。

    flowchart TD
      accTitle: 同じアカウント内のゾーンに CNAME ターゲットがある場合の DNS 解決フロー
      A[<code>www\.alice.com</code> へのリクエスト] --> B[<code>www\.alice.com</code> から <code>www\.partialzone.com</code> への <code>CNAME</code> レコード]
      B --> C[<code>www\.partialzone.com</code> から <code>192.0.2.4</code> への <code>A</code> レコード]
      C --> D[<code>192.0.2.4</code>]
      subgraph Cloudflare アカウント
        subgraph Cloudflare ゾーン 1
          B
        end
        subgraph Cloudflare ゾーン 2
        E[<code>www\.partialzone.com</code> から <code>203.0.113.1</code> への <code>A</code> レコード]
        end
      end
      subgraph 権威 DNS
      C
      end

権威 DNS が cdn.cloudflare.net を指す場合

次の構成を考えます。

  • ターゲットゾーン(この例では Cloudflare ゾーン 2)が部分ゾーンであり、部分ゾーン上の DNS レコードがプロキシ済みである。
  • 権威 DNS サーバー上の DNS レコードが cdn.cloudflare.net を指している。

この構成では、サブドメイン(この例では www.partialzone.com)は Cloudflare プロキシ IP に解決され、最終的にエラーになります。代わりに カスタムホスト名O2O のセットアップを検討してください。

    flowchart TD
      accTitle: 同じアカウント内のゾーンに CNAME ターゲットがあり、権威 DNS が cdn.cloudflare.net を指す場合の DNS 解決フロー
      A[<code>www\.alice.com</code> へのリクエスト] --> B[<code>www\.alice.com</code> から <code>www\.partialzone.com</code> への <code>CNAME</code> レコード]
      B --> C[<code>www\.partialzone.com</code> から <code>www\.partialzone.com.cdn.cloudflare.net</code> への <code>CNAME</code> レコード]
      C --> D[<code>Cloudflare プロキシ IP</code>]
      subgraph Cloudflare アカウント
        subgraph Cloudflare ゾーン 1
          B
        end
        subgraph Cloudflare ゾーン 2
        E[<code>www\.partialzone.com</code> から <code>203.0.113.1</code> へのプロキシ済み <code>A</code> レコード]
        end
      end
      subgraph 権威 DNS
      C
      end

役に立ちましたか?