INTEGRITY Документация

Разрешение 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

Рассмотрим следующий сценарий:

Если такая настройка выполнена, поддомен (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