Skip to content

Commit ba77326

Browse files
RebeccaTamachiroMaddy-Cloudflare
authored andcommitted
[iDNS] Internal DNS MVP UI release (cloudflare#22632)
* Add Dash steps for internal zone creation * Add tabs components and Dash steps to dns-views * Revise create a view Dash steps * Add dash instructions for reference zone assignment * Get-started: remove api-only and add Dash tab placeholder * Fix broken link * Add partial for zone creation and replace in relevant pages * Add reference zone dash steps and intro to get-started * Create and apply partial for view-create-dash * Overall review and add conditions to view creation partial * Overall review and link to iDNS from docs landing page * Specify reference at the bottom of internal zones and view is API-only * Add Internal DNS to /products page * Remove 'descriptive' specification for zone name * Update get-started to match Gateway resolver UI text * Fix typo * Apply suggestions from code review Co-authored-by: Maddy <[email protected]> * Add missing period and implement some page descriptions --------- Co-authored-by: Maddy <[email protected]>
1 parent f4bd84e commit ba77326

14 files changed

+180
-23
lines changed

src/content/docs/dns/index.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Leverage Cloudflare's global network to deliver excellent performance and reliab
1717

1818
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

20+
Enterprise customers can also use Cloudflare DNS for their private network with [Internal DNS (Beta)](/dns/internal-dns/).
21+
2022
***
2123

2224
## Features

src/content/docs/dns/internal-dns/dns-views.mdx

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sidebar:
66
label: Views
77
---
88

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

1111
Internal DNS views are logical groupings of [internal DNS zones](/dns/internal-dns/internal-zones/). As explained in the [architecture overview](/dns/internal-dns/#architecture-overview), DNS views are referenced by [Gateway resolver policies](/cloudflare-one/policies/gateway/resolver-policies/) to define how a specific query should be resolved.
1212

@@ -20,17 +20,39 @@ When setting up DNS views, observe the following conditions:
2020

2121
## Create a view
2222

23+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
24+
25+
<Render file="internal-dns-view-create-dash"/>
26+
27+
</TabItem>
28+
<TabItem label="API">
29+
2330
Use the [Create Internal DNS View](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/create/) endpoint. For each view you create, list all the internal zones that should be grouped under that view.
2431

25-
## Delete a view
32+
</TabItem> </Tabs>
2633

27-
Use the [Delete Internal DNS View](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/delete/) endpoint.
34+
## Delete a view
2835

2936
DNS views can be deleted even if they still have internal zones linked to them. The internal DNS zones will continue to exist but will be unlinked once the view is deleted.
3037

3138
It is also possible to delete a DNS view that is being referenced by a Gateway resolver policy. In this case, queries matching the policy will return SERVFAIL.
3239

33-
## Other actions
40+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
41+
42+
1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account.
43+
2. Go to **Internal DNS** > **Views**.
44+
3. Find the view you want to delete.
45+
4. Select the three dots in the corresponding row and choose *Delete*.
46+
5. In the confirmation dialog, select **Delete** again to proceed.
47+
48+
</TabItem>
49+
<TabItem label="API">
50+
51+
Use the [Delete Internal DNS View](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/delete/) endpoint.
52+
53+
</TabItem> </Tabs>
54+
55+
## Other API actions
3456

3557
- [Update a DNS view](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/edit/) (`PATCH`)
3658
- [Get view details](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/get/) (`GET`)

src/content/docs/dns/internal-dns/get-started.mdx

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,12 @@ import { TabItem, Tabs, Details, Example, Render } from "~/components";
99

1010
Follow this guide to get started with Internal DNS.
1111

12-
Although there are some steps that can be achieved on the dashboard, currently the whole process can only be completed via API.
13-
1412
## Before you begin
1513

1614
<Render file="internal-dns-beta-note" />
1715

1816
- Make sure you have an Enterprise account with access to [Gateway resolver policies](/cloudflare-one/policies/gateway/resolver-policies/) and [Internal DNS](/dns/internal-dns/).
1917
- Consider the different ways in which you can [connect to Gateway resolver](/dns/internal-dns/connectivity/).
20-
- If you are not familiar with how to use Cloudflare API, refer to [Fundamentals](/fundamentals/api/get-started/).
2118
- If you will be using an API token for authentication, make sure you have the following permissions:
2219

2320
<Details header="API token configuration">
@@ -41,28 +38,64 @@ Although there are some steps that can be achieved on the dashboard, currently t
4138

4239
## 1. Set up your internal DNS zone
4340

44-
<Render file="internal-zone-create" params={{
41+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
42+
43+
<Render file="internal-zone-create-dash" params={{
44+
conditional: "get-started-detail"}}
45+
/>
46+
47+
</TabItem> <TabItem label="API">
48+
49+
<Render file="internal-zone-create-api" params={{
4550
conditional: "get-started-detail"}}
4651
/>
4752

53+
</TabItem> </Tabs>
54+
4855
### (Optional) Reference a zone from another zone
4956

50-
1. Use the [Update DNS settings](/api/resources/dns/subresources/settings/subresources/zone/methods/edit/) endpoint to add a reference from an internal zone to another internal zone. In `--data`, specify the `internal_dns` object with the parameter `reference_zone_id`. For details, refer to [reference zones](/dns/internal-dns/internal-zones/reference-zones/).
57+
<Render file="internal-reference-zone-intro" params={{
58+
conditional: "get-started-link"}}
59+
/>
60+
61+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
62+
63+
1. Go to **Internal DNS** and select a zone.
64+
2. Within the selected zone, go to **Reference zone**.
65+
3. Select **Add reference zone**.
66+
4. Find the zone you want to use as reference and choose **Select** in the respective row.
67+
68+
</TabItem> <TabItem label="API">
69+
70+
1. Use the [Update DNS settings](/api/resources/dns/subresources/settings/subresources/zone/methods/edit/) endpoint to add a reference from an internal zone to another internal zone. In `--json`, specify the `internal_dns` object with the parameter `reference_zone_id`.
5171

5272
<Example>
5373
<Render file="internal-reference-zone-api"/>
5474
</ Example>
5575

76+
</TabItem> </Tabs>
77+
5678
## 2. Link your internal zone to a view
5779

5880
Since the resolver policy will require a [DNS view](/dns/internal-dns/dns-views/), you must have at least one view to be able to route requests to internal zones.
5981

82+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
83+
84+
<Render file="internal-dns-view-create-dash" params={{
85+
conditional: "get-started-detail"}}
86+
/>
87+
88+
</TabItem> <TabItem label="API">
89+
6090
1. Use the [Create Internal DNS View](/api/resources/dns/subresources/settings/subresources/account/subresources/views/methods/create/) endpoint. For each view you create, list all the internal zones that should be grouped under that view.
6191

6292
<Details header="DNS view configuration conditions">
6393
<Render file="internal-dns-view-conditions" />
6494
</Details>
6595

96+
</TabItem> </Tabs>
97+
98+
6699
## 3. Configure Gateway policies
67100

68101
:::note
@@ -76,7 +109,7 @@ Besides selecting an internal DNS view when setting up your resolver policies, y
76109
1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Gateway** > **Resolver policies**.
77110
2. Select **Add a policy** and enter a name and description.
78111
3. Create an expression for the traffic you wish to route. For guidance about selectors, operators, and values, refer to [Gateway](/cloudflare-one/policies/gateway/resolver-policies/#selectors).
79-
4. Select **Use DNS view**. In the dropdown, choose the view that queries matching the expression should be sent to.
112+
4. Select **Use Internal DNS**. Choose the view that queries matching the expression should be sent to.
80113
5. (Optional) Adjust the option to **fallback through public DNS** according to your use case.
81114
- Off: Gateway DNS resolver returns the response as-is to the client.
82115
- On: In case the response from the internal zone is REFUSED, NXDOMAIN, or a response with a CNAME type, Gateway DNS resolver sends the query to Cloudflare 1.1.1.1 public resolver and tries to resolve the query via public DNS.
@@ -91,4 +124,6 @@ Use the rule settings object to define `resolve_dns_internally`, specifying `vie
91124
- `none`: Gateway DNS resolver returns the response as-is to the client.
92125
- `public_dns`: In case the response from the internal zone is REFUSED, NXDOMAIN, or a response with a CNAME type, Gateway DNS resolver sends the query to Cloudflare 1.1.1.1 public resolver and tries to resolve the query via public DNS.
93126

94-
</TabItem> </Tabs>
127+
</TabItem> </Tabs>
128+
129+
Once you add the Gateway resolver policy, it will be listed in the respective internal view under **Resolver policies referencing this view**.

src/content/docs/dns/internal-dns/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Simplify private network management with Cloudflare DNS for your internal resour
2121

2222
<Plan type="enterprise" />
2323

24-
Manage DNS records that should only be accessible within your private network. Internal DNS [zones](/dns/internal-dns/internal-zones/) and [views](/dns/internal-dns/dns-views/) pair up with [Gateway resolver policies](/cloudflare-one/policies/gateway/resolver-policies/) so that you can control how a DNS query should be responded to according to the query context, such as its source IP.
24+
Manage DNS records that should only be accessible within your private network. Internal DNS [zones](/dns/internal-dns/internal-zones/) and [views](/dns/internal-dns/dns-views/) pair up with [Gateway resolver policies](/cloudflare-one/policies/gateway/resolver-policies/) so that you can control how a DNS query should be responded to according to query context, such as query source IP.
2525

2626
<Render file="internal-dns-beta-note" />
2727

src/content/docs/dns/internal-dns/internal-zones/index.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
pcx_content_type: concept
33
title: Internal zones
4+
description: Explore internal DNS zones in Cloudflare. These zones organize DNS records for resources accessible only within your private network, queried via Cloudflare Gateway.
45
sidebar:
56
order: 2
67
group:

src/content/docs/dns/internal-dns/internal-zones/internal-dns-records.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
pcx_content_type: concept
33
title: Manage internal DNS records
4+
description: Manage internal DNS records in Cloudflare. Learn about supported DNS record types and CNAME flattening.
45
sidebar:
56
order: 4
67
label: Internal DNS records
@@ -16,7 +17,7 @@ Refer to [Manage DNS records](/dns/manage-dns-records/how-to/create-dns-records/
1617

1718
## CNAME flattening in Internal DNS
1819

19-
With CNAME flattening, Cloudflare finds the final target content that a CNAME points to and then returns this content instead of a CNAME record. With Internal DNS, CNAME flattening is applied by default and cannot be turned off.
20+
With [CNAME flattening](/dns/cname-flattening/), Cloudflare finds the final target content that a CNAME points to and then returns this content instead of a CNAME record. With Internal DNS, CNAME flattening is applied by default and cannot be turned off.
2021

2122
Cloudflare will try to flatten the CNAME record considering both the specified [DNS view](/dns/internal-dns/dns-views/) and any existing [reference zones](/dns/internal-dns/internal-zones/reference-zones/). If the reference zone then has another CNAME, the record will again be considered from the perspective of the original view.
2223

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
---
22
pcx_content_type: how-to
33
title: Reference zones
4+
description: Learn about reference zones. Cloudflare Internal DNS allows zones to reference others for query resolution when no direct record is found.
45
sidebar:
56
order: 4
67
---
78

8-
import { Example, Render } from "~/components";
9+
import { Example, Render, Tabs, TabItem } from "~/components";
910

10-
During an [internal DNS query resolution](/dns/internal-dns/#architecture-overview), if no internal record is found within a matching internal zone, Cloudflare will check if the matching internal zone is referencing another internal zone. Successive references can be followed with a maximum of five references in a chain.
11+
<Render file="internal-reference-zone-intro"/>
1112

1213
:::note
13-
A wildcard record (`*.example.local`) in the matching internal zone will take precedence over an exact match in a referenced zone.
14+
A wildcard record (`*.example.local`) in the matching internal zone will take precedence over an exact match in a reference zone.
1415
:::
1516

1617
## Configuration conditions
@@ -22,11 +23,24 @@ A wildcard record (`*.example.local`) in the matching internal zone will take pr
2223

2324
## Set up
2425

25-
To set up a reference zone, use the [Update DNS settings](/api/resources/dns/subresources/settings/subresources/zone/methods/edit/) endpoint. In `--data`, specify the `internal_dns` object with the parameter `reference_zone_id`.
26+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
27+
28+
1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account.
29+
2. Go to **Internal DNS** and select a zone.
30+
3. Within the selected zone, go to **Reference zone**.
31+
4. Select **Add reference zone**. If your zone already has a reference zone set up, you must first remove it. As explained in the [configuration conditions](#configuration-conditions), each internal zone can only reference one other zone at a time.
32+
5. Find the zone you want to use as reference and choose **Select** in the respective row.
33+
34+
</TabItem>
35+
<TabItem label="API">
36+
37+
Use the [Update DNS settings](/api/resources/dns/subresources/settings/subresources/zone/methods/edit/) endpoint. In `--json`, specify the `internal_dns` object with the parameter `reference_zone_id`.
2638

2739
<Example>
2840
<Render file="internal-reference-zone-api"/>
2941

3042
A third zone (C) could also point to zone B as a reference, but zone A cannot add another zone as a reference while also having zone B configured as its reference zone.
3143

32-
</ Example>
44+
</ Example>
45+
46+
</TabItem> </Tabs>

src/content/docs/dns/internal-dns/internal-zones/setup.mdx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
22
pcx_content_type: how-to
33
title: Manage internal zones
4+
description: Understand how to set up and manage internal DNS zones with Cloudflare. Explore configuration conditions, zone creation, and available API endpoints.
45
sidebar:
56
order: 2
67
---
78

8-
import { Example, Render } from "~/components";
9+
import { Example, Render, Tabs, TabItem } from "~/components";
910

1011
Refer to the following sections to learn how to manage your [internal DNS zones](/dns/internal-dns/internal-zones/).
1112

@@ -17,9 +18,18 @@ When setting up internal zones, observe the following conditions:
1718

1819
## Create an internal zone
1920

20-
<Render file="internal-zone-create" />
21+
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
2122

22-
## Other actions
23+
<Render file="internal-zone-create-dash" />
24+
25+
</TabItem>
26+
<TabItem label="API">
27+
28+
<Render file="internal-zone-create-api" />
29+
30+
</TabItem> </Tabs>
31+
32+
## Other API actions
2333

2434
The API endpoints to manage internal zones are the same as for managing public zones. The main difference is that the zone type must be set to `internal`. Refer to the API documentation below for details:
2535

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
params:
3+
- conditional?
4+
---
5+
6+
import { Details, Render } from "~/components";
7+
8+
1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account.
9+
2. Go to **Internal DNS** > **Views**.
10+
3. Select **Create a view**.
11+
4. Give your view a descriptive name.
12+
13+
{ props.conditional === "get-started-detail" && (
14+
<Details header="DNS view configuration conditions">
15+
<Render file="internal-dns-view-conditions" />
16+
</Details>
17+
)
18+
}
19+
20+
5. Select **Manage zones** to add zones to your view. Select the internal zones that should be used to resolve queries sent by Gateway resolver to this view.
21+
6. Choose **Save** to confirm.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
params:
3+
- conditional?
4+
---
5+
6+
During an [internal DNS query resolution](/dns/internal-dns/#architecture-overview), if no internal record is found within a matching internal zone, Cloudflare will check if the matching internal zone is referencing another internal zone. Successive references can be followed with a maximum of five references in a chain.
7+
8+
9+
{ props.conditional === "get-started-link" && (
10+
<p>
11+
For details, refer to <a href="/dns/internal-dns/internal-zones/reference-zones/">reference zones</a>.
12+
</p>
13+
)
14+
}

0 commit comments

Comments
 (0)