INTEGRITY Dokumentace

Překlad DNS

Když máte částečnou zónu (CNAME setup), Cloudflare zpracovává DNS záznamy trochu jinak než u primárních zón (úplné nastavení), aby interně přeložil origin server, na který se odesílají proxované HTTP požadavky.

Záznamy ve stejné zóně

Když vytvoření nového DNS záznamu v částečné zóně Cloudflare automaticky kontroluje, zda některý z vašich CNAME záznamů neukazuje na existující A, AAAA nebo CNAME záznamy ve stejné zóně.

Cloudflare by například zobrazil varování, pokud byste ve své částečné zóně měli následující záznamy:

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

Protože Cloudflare obsahuje jak záznam CNAME, tak jeho cíl, DNS překlad odešle příchozí HTTP požadavky na sub1.partialzone.com k originu 192.0.2.1.

To může způsobit problémy, pokud už máte DNS záznamy pro sub2.partialzone.com u vašeho autoritativního poskytovatele DNS. Tyto záznamy mohou odkazovat na 192.0.2.4, jinou adresu IP nebo jinou doménu, ale protože Cloudflare obsahuje počáteční záznam i cíl, nikdy se u vašeho autoritativního poskytovatele DNS nedotazuje na záznam pro 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

Pokud se této situaci vyhnete, tedy nemáte cíl záznamu CNAME ve vaší dílčí zóně, toto rozlišení DNS by proběhlo jinak.

    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

Záznamy odkazující na částečnou zónu ve stejném účtu

Můžete také vytvoření CNAME záznamu v zóně (částečné nebo úplné), který ukazuje na záznam v jiné částečné zóně v rámci vašeho účtu.

V takovém případě Cloudflare vždy přeloží cíl CNAME na základě hodnoty u vašeho autoritativního poskytovatele DNS pro cílovou zónu 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

Autoritativní DNS směřuje na cdn.cloudflare.net

Uvažujte následující scénář:

Pokud je takové nastavení zavedené, subdoména (www.partialzone.com v tomto příkladu) se přeloží na proxy IP adresu Cloudflare, což nakonec skončí chybou. Zvažte použití vlastní názvy hostitelů a O2O nastavení místo toho.

    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