← Cloudflare DNS / dns / zone-setups / partial-setup
Разрешение DNS
Если у вас частичная зона (Настройка CNAME), Cloudflare обрабатывает записи DNS немного иначе, чем в основных зонах (полная настройка), чтобы внутренне определить исходный сервер, на который отправляются проксируемые HTTP-запросы.
Записи в пределах одной зоны
Когда вы создать новую запись DNS в частичной зоне Cloudflare автоматически проверяет, указывают ли ваши записи CNAME на существующие записи A, AAAA или CNAME в той же зоне.
Например, Cloudflare покажет предупреждение, если в вашей частичной зоне есть следующие записи:
sub1.partialzone.com CNAME sub2.partialzone.com
sub2.partialzone.com A 192.0.2.1Поскольку Cloudflare содержит как CNAME, так и его целевой адрес, наше DNS-разрешение будет направлять входящие HTTP-запросы к sub1.partialzone.com к источнику 192.0.2.1.
Это может вызвать проблемы, если у вас уже есть DNS-записи для sub2.partialzone.com у вашего авторитетного DNS-провайдера. Эти записи могут указывать на 192.0.2.4, другой IP-адрес или другой домен, но, поскольку Cloudflare хранит исходную запись и её целевой адрес, он никогда не запрашивает эту запись у вашего авторитативного DNS-провайдера для sub2.partialzone.com.
flowchart TD
accTitle: DNS resolution flow with CNAME target in same partial zone
A[Request to <code>sub1.partialzone.com</code>] --> B[<code>CNAME</code> record for <code>sub1.partialzone.com</code> to <code>sub2.partialzone.com</code>]
subgraph Cloudflare
B --> C[<code>A</code> record for <code>sub2.partialzone.com</code> to <code>192.0.2.1</code>]
end
C --> D[<code>192.0.2.1</code>]
subgraph Authoritative DNS
E[<code>A</code> record for <code>sub2.partialzone.com</code> to <code>192.0.2.4</code>]
end
Если вы исключаете такую ситуацию, то есть у вас нет цель CNAME-записи в вашей частичной зоне: в этом случае разрешение DNS происходило бы иначе.
flowchart TD
accTitle: DNS resolution flow with CNAME target not in partial zone
A[Request to <code>sub1.partialzone.com</code>] --> B[<code>CNAME</code> record for <code>sub1.partialzone.com</code> to <code>sub2.partialzone.com</code>]
B --> C[<code>A</code> record for <code>sub2.partialzone.com</code> to <code>192.0.2.4</code>]
C --> D[<code>192.0.2.4</code>]
subgraph Cloudflare
B
end
subgraph Authoritative DNS
C
end
Записи, указывающие на частичную зону в том же аккаунте
Вы также могли бы создать запись CNAME в зоне (частичной или полной), которая указывает на запись в другой частичной зоне вашего аккаунта.
В этом случае Cloudflare всегда будет разрешать целевой CNAME на основании значения у авторитативного DNS-провайдера зоны, на которую указывает CNAME.
flowchart TD
accTitle: DNS resolution flow with CNAME target in a zone within the same account
A[Request to <code>www\.alice.com</code>] --> B[<code>CNAME</code> record for <code>www\.alice.com</code> to <code>www\.partialzone.com</code>]
B --> C[<code>A</code> record for <code>www\.partialzone.com</code> to <code>192.0.2.4</code>]
C --> D[<code>192.0.2.4</code>]
subgraph Cloudflare account
subgraph Cloudflare zone 1
B
end
subgraph Cloudflare zone 2
E[<code>A</code> record for <code>www\.partialzone.com</code> to <code>203.0.113.1</code>]
end
end
subgraph Authoritative DNS
C
end
Авторитетный DNS указывает на cdn.cloudflare.net
Рассмотрим следующий сценарий:
- Целевая зона (в этом примере зона Cloudflare 2) является частичной зоной, и DNS-запись в этой частичной зоне проксируется.
- DNS-запись на авторитетном DNS-сервере указывает на
cdn.cloudflare.net
Если такая настройка выполнена, поддомен (www.partialzone.com в этом примере) будет разрешаться в IP-адрес прокси Cloudflare, что в итоге приведёт к ошибке. Рассмотрите возможность использования пользовательские имена хостов и O2O настройку.
flowchart TD
accTitle: DNS resolution flow with CNAME target in a zone within the same account and auth DNS pointing to cdn.cloudflare.net
A[Request to <code>www\.alice.com</code>] --> B[<code>CNAME</code> record for <code>www\.alice.com</code> to <code>www\.partialzone.com</code>]
B --> C[<code>CNAME</code> record for <code>www\.partialzone.com</code> to <code>www\.partialzone.com.cdn.cloudflare.net</code>]
C --> D[<code>Cloudflare proxy IP</code>]
subgraph Cloudflare account
subgraph Cloudflare zone 1
B
end
subgraph Cloudflare zone 2
E[Proxied <code>A</code> record for <code>www\.partialzone.com</code> to <code>203.0.113.1</code>]
end
end
subgraph Authoritative DNS
C
end