Skip to content

Commit 1b5f1e6

Browse files
[DNS] Add instructions for DNSSEC with outgoing zone transfers (#16592)
* Migrate new DNSSEC with CF as Primary instructions to MDX * Troubleshoot sidebar label not working * Troubleshoot and fix head title tag
1 parent 2e00ac7 commit 1b5f1e6

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
title: Set up DNSSEC with Cloudflare as Primary
3+
pcx_content_type: tutorial
4+
sidebar:
5+
order: 3
6+
label: DNSSEC options
7+
head:
8+
- tag: title
9+
content: Set up multi-signer DNSSEC with outgoing zone transfers
10+
---
11+
12+
import { Example } from "~/components";
13+
14+
With [outgoing zone transfers](/dns/zone-setups/zone-transfers/cloudflare-as-primary/), you keep Cloudflare as your primary DNS provider and use one or more secondary providers for increased availability and fault tolerance.
15+
16+
If you want to use DNSSEC with outgoing zone transfers, you should configure [multi-signer DNSSEC](/dns/dnssec/multi-signer-dnssec/). After setting up [Cloudflare as primary](/dns/zone-setups/zone-transfers/cloudflare-as-primary/setup/), follow the steps below to enable DNSSEC.
17+
18+
## Before you begin
19+
20+
Note that:
21+
22+
- This process requires that your other DNS provider(s) also support multi-signer DNSSEC.
23+
- Although you can complete a few steps via the dashboard, currently the whole process can only be completed using the API.
24+
- Enabling **DNSSEC** and **Multi-signer DNSSEC** in [**DNS** > **Settings**](https://dash.cloudflare.com/?to=/:account/:zone/dns/settings) only replaces the first step below. You still have to follow the rest of this tutorial to complete the setup.
25+
26+
## Steps
27+
28+
1. Use the [Edit DNSSEC Status endpoint](/api/operations/dnssec-edit-dnssec-status) to enable DNSSEC and activate multi-signer DNSSEC for your zone. This is done by setting `status` to `active` and `dnssec_multi_signer` to `true`, as in the following example.
29+
30+
```bash
31+
curl --request PATCH \
32+
'https://api.cloudflare.com/client/v4/zones/{zone_id}/dnssec' \
33+
--header "X-Auth-Email: <EMAIL>" \
34+
--header "X-Auth-Key: <API_KEY>" \
35+
--header "Content-Type: application/json" \
36+
--data '{
37+
"status": "active",
38+
"dnssec_multi_signer": true
39+
}'
40+
```
41+
42+
2. Add the ZSK(s) of your external provider(s) to Cloudflare by creating a DNSKEY record on your zone.
43+
44+
```bash
45+
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records' \
46+
--header "X-Auth-Email: <EMAIL>" \
47+
--header "X-Auth-Key: <API_KEY>" \
48+
--header "Content-Type: application/json" \
49+
--data '{
50+
"type": "DNSKEY",
51+
"name": "<ZONE_NAME>",
52+
"data": {
53+
"flags": 256,
54+
"protocol": 3,
55+
"algorithm": 13,
56+
"public_key": "<PUBLIC_KEY>"
57+
},
58+
"ttl": 3600
59+
}'
60+
```
61+
62+
3. Once the DNSKEY record is transferred out from Cloudflare to your secondary provider, get Cloudflare's ZSK and manually add it to the DNSKEY record.
63+
64+
Currently, the ZSK is not automatically transferred out. You can use either the API or a query from one of the assigned Cloudflare nameservers to obtain it.
65+
66+
<Example>
67+
68+
API example:
69+
70+
```bash
71+
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/dnssec/zsk' \
72+
--header "X-Auth-Email: <EMAIL>" \
73+
--header "X-Auth-Key: <API_KEY>"
74+
```
75+
76+
Command line query example:
77+
78+
```sh
79+
$ dig <ZONE_NAME> dnskey @<CLOUDFLARE_NAMESERVER> +noall +answer | grep 256
80+
```
81+
82+
</Example>
83+
84+
4. Add DS records to your registrar, one for each provider. You can see your Cloudflare DS record on the [dashboard](https://dash.cloudflare.com/?to=/:account/:zone/dns) by going to **DNS** > **Settings** > **DS Record**.
85+
86+
The nameserver settings at your registrar should include the nameservers of all providers you will be using for your multi-signer DNSSEC setup.

0 commit comments

Comments
 (0)