Skip to content

Commit d1404f6

Browse files
[DNS] More info on CNAME records (#26743)
* Add new h3 under cname-flattening and link with dns-record-types * Small text touch-ups: missing comma and word * Make example in #proxied-cname-records consistent with description * Bring #proxy-eligibility info into dns-record-types.mdx * Add list of non-proxiable targets to limitations.mdx * Remove parenthesis for simplicity and to avoid ambiguity * Remove line breaks within multi-level list * More cross-links and add #cname-records to proxy-status page * Add CNAME chain scenario to #mix-proxied-and-unproxied * Adjust scope to exclude #cname-targets (PCX-14391) for now * PM feedback: data and clarify what flattened means for proxied
1 parent 315b81f commit d1404f6

File tree

6 files changed

+70
-7
lines changed

6 files changed

+70
-7
lines changed

src/content/docs/dns/cname-flattening/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ sidebar:
88

99
import { Render, GlossaryTooltip } from "~/components";
1010

11-
CNAME flattening speeds up CNAME resolution and allows you to use a CNAME record at your <GlossaryTooltip term="zone apex" link="/dns/concepts/#zone-apex">zone apex</GlossaryTooltip> (`example.com`).
11+
CNAME flattening speeds up CNAME resolution and allows you to use a [CNAME record](/dns/manage-dns-records/reference/dns-record-types/#cname) at your <GlossaryTooltip term="zone apex" link="/dns/concepts/#zone-apex">zone apex</GlossaryTooltip> (`example.com`).
1212

1313
:::note
1414
This functionality is also what allows you to use a [root custom domain](/pages/configuration/custom-domains/) with a Cloudflare Pages site.
1515
:::
1616

1717
## How it works
1818

19-
With CNAME flattening, Cloudflare finds the IP address that a CNAME points to. This process could involve a single lookup or multiple (if your CNAME points to another CNAME). Cloudflare then returns the final IP address instead of a CNAME record, helping DNS queries resolve up to 30% faster.
19+
With CNAME flattening, Cloudflare finds the IP address that a CNAME points to. This process could involve a single lookup or multiple (if your CNAME points to another CNAME). Cloudflare then returns the final IP address instead of a CNAME record, helping DNS queries resolve faster.
2020

2121
For more details on the steps involved in CNAME flattening, review the [CNAME flattening diagram](/dns/cname-flattening/cname-flattening-diagram/) and refer to the [Cloudflare blog post](https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/).
2222

src/content/docs/dns/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Leverage Cloudflare's global network to deliver excellent performance and reliab
1515

1616
<Plan type="all" />
1717

18-
Cloudflare DNS is a fast, resilient and easy-to-manage authoritative DNS service. It delivers excellent performance and reliability to your domain while also protecting your business from [DDoS attacks](https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/) and [route leaks and hijacking](https://www.cloudflare.com/learning/security/glossary/bgp-hijacking/). To know where to begin, refer to [Get started](/dns/get-started/).
18+
Cloudflare DNS is a fast, resilient, and easy-to-manage authoritative DNS service. It delivers excellent performance and reliability to your domain while also protecting your business from [DDoS attacks](https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/) and [route leaks and hijacking](https://www.cloudflare.com/learning/security/glossary/bgp-hijacking/). To know where to begin, refer to [Get started](/dns/get-started/).
1919

2020
Enterprise customers can also use Cloudflare DNS for their private network with [Internal DNS (Beta)](/dns/internal-dns/).
2121

src/content/docs/dns/manage-dns-records/reference/dns-record-types.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ DNS management for **example.com**:
125125

126126
| Type | Name | Content | Proxy status |
127127
| ----- | ---- | ---------------------- | ------------ |
128-
| CNAME | abc | `target.external.test` | DNS Only |
128+
| CNAME | abc | `target.external.test` | Proxied |
129129

130130
</Example>
131131

@@ -145,6 +145,8 @@ In this example, a query for TXT in `abc.example.com` will **not** return the TX
145145

146146
- Cloudflare uses a process called CNAME flattening to deliver better performance. This process supports a few features and can interact with [different setups that depend on CNAME records](/dns/cname-flattening/#aspects-to-keep-in-mind). Refer to the [CNAME flattening section](/dns/cname-flattening/) to learn more about this.
147147

148+
- If you encounter a CNAME record that you cannot proxy — usually associated with another CDN provider — a proxied version of that record will cause connectivity errors. Cloudflare is purposely preventing that record from being proxied to protect you from a misconfiguration. Refer to [proxying limitations](/dns/proxy-status/limitations/#proxy-eligibility) for details.
149+
148150
:::note
149151
Specific CNAME record values with traffic proxied through Cloudflare will enable Orange-to-Orange (O2O) routing for the Shopify SaaS provider. Refer to the [Shopify provider guide](/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/provider-guides/shopify/) for more information.
150152
:::

src/content/docs/dns/proxy-status/index.mdx

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,64 @@ If you have multiple A or AAAA records on the same name and at least one of them
6666
<Details header="Example">
6767

6868
<Example>
69+
6970
DNS management for **example.com**:
7071

7172
| Type | Name | Content | Proxy status | TTL |
7273
| ---- | ------ | ----------- | ------------ | ---- |
7374
| A | `blog` | `192.0.2.1` | Proxied | Auto |
7475
| A | `blog` | `192.0.2.5` | DNS only | Auto |
7576

77+
</Example>
78+
7679
In this example, all traffic intended for `blog.example.com` will be treated as if both records were **Proxied**.
7780

81+
</Details>
82+
83+
Cloudflare will also proxy a request if a hostname on a CNAME chain is proxied.
84+
85+
<Details header="Example">
86+
87+
Consider that the same Cloudflare account has two different zones, `example.com` and `example.net`.
88+
89+
<Example>
90+
91+
DNS management for **example.com**:
92+
93+
| Type | Name | Content | Proxy status | TTL |
94+
| ---- | ------ | ----------- | ------------ | ---- |
95+
| CNAME | `example.com` | `origin.example.net` | DNS only | Auto |
96+
97+
</Example>
98+
99+
<Example>
100+
101+
DNS management for **example.net**:
102+
103+
| Type | Name | Content | Proxy status | TTL |
104+
| ---- | ------ | ----------- | ------------ | ---- |
105+
| CNAME | `origin.example.net` | `<origin>` | Proxied | Auto |
106+
78107
</Example>
79108

109+
In this example, all traffic intended for `example.com` will be treated as **Proxied**.
110+
111+
:::note
112+
CNAME to a different Cloudflare account is prohibited and will result in a [Error 1014 (CNAME Cross-User Banned)](/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1014/)
113+
:::
114+
80115
</Details>
81116

117+
### CNAME records
118+
119+
Proxied [CNAME records](/dns/manage-dns-records/reference/dns-record-types/#cname) are flattened by default, as they return Cloudflare anycast IPs. With CNAME flattening, Cloudflare finds the IP address that a CNAME points to, helping DNS queries resolve faster. Refer to [CNAME flattening](/dns/cname-flattening/) for details.
120+
121+
In some cases, Cloudflare will show a warning message or [prevent](/dns/proxy-status/limitations/#proxy-eligibility) you from proxying a CNAME record. This happens to avoid misconfigurations and is generally related to other CDN providers or to specific records used for DKIM validation.
122+
123+
:::note
124+
Specific CNAME record values with traffic proxied through Cloudflare will enable Orange-to-Orange (O2O) routing for the Shopify SaaS provider. Refer to the [Shopify provider guide](/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/provider-guides/shopify/) for more information.
125+
:::
126+
82127
### Protocol optimization
83128

84129
For proxied records, if your domain has [HTTP/2 or HTTP/3 enabled](/speed/optimization/protocol/) and is also using [Universal SSL](/ssl/edge-certificates/universal-ssl/), Cloudflare automatically generates corresponding [HTTPS Service (HTTPS) records](/dns/manage-dns-records/reference/dns-record-types/#svcb-and-https) on the fly. HTTPS records allow you to provide a client with information about how it should connect to a server upfront, without the need of an initial plaintext HTTP connection.

src/content/docs/dns/proxy-status/limitations.mdx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,31 @@ sidebar:
66
label: Limitations
77
---
88

9-
import { Render, GlossaryTooltip } from "~/components";
9+
import { Render, GlossaryTooltip, Details } from "~/components";
1010

1111
This page describes expected limitations when <GlossaryTooltip term="proxy status">proxying DNS records</GlossaryTooltip>. For further information about proxying, refer to [How Cloudflare works](/fundamentals/concepts/how-cloudflare-works/).
1212

1313
## Proxy eligibility
1414

1515
Only A, AAAA, and CNAME DNS records that serve HTTP or HTTPS traffic can be proxied. Other record types cannot be proxied.
1616

17-
If you encounter a CNAME record that you cannot proxy — usually associated with another CDN provider — a proxied version of that record will cause connectivity errors. Cloudflare is purposely preventing that record from being proxied to protect you from a misconfiguration.
17+
If you encounter a [CNAME record](/dns/manage-dns-records/reference/dns-record-types/#cname) that you cannot proxy — usually associated with another CDN provider — a proxied version of that record will cause connectivity errors. Cloudflare is purposely preventing that record from being proxied to protect you from a misconfiguration.
18+
19+
<Details header="Non-proxiable targets">
20+
21+
- Exact match:
22+
- `dkim2.mcsv.net` ([Mailchimp documentation](https://mailchimp.com/help/set-up-email-domain-authentication/))
23+
- `dkim3.mcsv.net` ([Mailchimp documentation](https://mailchimp.com/help/set-up-email-domain-authentication/))
24+
- `zmverify.zoho.com` ([Zoho documentation](https://www.zoho.com/mail/help/adminconsole/domain-verification.html))
25+
- `dkim.infusionmail.com` ([Keap documentation](https://help.keap.com/help/dmarc))
26+
- Exact match or subdomain of:
27+
- `dkim.amazonses.com` ([Amazon SES documentation](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc))
28+
- Subdomain of:
29+
- `onmicrosoft.com` ([Microsoft documentation](https://learn.microsoft.com/defender-office-365/email-authentication-dkim-configure))
30+
- `dkim.intercom.io` ([Intercom documentation](https://www.intercom.com/help/articles/9744849-connect-your-email-support-channel))
31+
- `acm-validations.aws` ([AWS certificate manager documentation](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html))
32+
33+
</Details>
1834

1935
### Pre-signed DNSSEC
2036

src/content/docs/fundamentals/manage-domains/add-site.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ To use Cloudflare as a reverse proxy but maintain your DNS provider, refer to [p
3434
:::
3535

3636
4. Select a [plan](https://www.cloudflare.com/plans/#compare-features).
37-
5. [Review your DNS records](/dns/zone-setups/full-setup/setup/#review-dns-records) to ensure none are missing. Your DNS records must accurate for your domain to work properly.
37+
5. [Review your DNS records](/dns/zone-setups/full-setup/setup/#review-dns-records) to ensure none are missing. Your DNS records must be accurate for your domain to work properly.
3838

3939
<Render file="dns-scan-intro" product="dns" /> <br />
4040

0 commit comments

Comments
 (0)