部分ゾーン(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.1Cloudflare が 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
次の構成を考えます。
- ターゲットゾーン(この例では 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