Create a Secondary DNS Zone
Prerequisite: Before creating a secondary DNS zone with IONOS Cloud DNS, ensure that the primary zone is capable of establishing a zone transfer with the secondary DNS server; this means port 53 is open for TCP and UDP connections.
To create a secondary zone on the IONOS Cloud DNS, follow this step:
- Perform a POST request to the
/secondaryzones
endpoint by providing thezoneName
,description
, andprimaryIps
for the IP address of the primary nameserver.
Note: For sending DNS notify messages, Cloud DNS uses following Anycast addresses: IPv4 212.227.123.25 or IPv6 2001:8d8:fe:53::5cd:25.
Result: On a successful POST request, you receive a response containing the secondary DNS zone UUID, Name Servers, primaryIps, and the request status.
curl --location 'https://dns.de-fra.ionos.com/secondaryzones' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--data '{
"properties": {
"zoneName": "example.com",
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
]
}
}'
202 Accepted
{
"id": "a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"type": "secondaryzone",
"href": "/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"metadata": {
"createdDate": "2023-08-04T10:21:32+00:00",
"lastModifiedDate": "2023-08-04T10:21:33+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.com"
}
}
To retrieve information about all the secondary zones, follow this step:
- Send a GET request to the
/secondaryzones
endpoint.
Result: On a successful GET request, you receive a response containing all secondary DNS zones.
curl --location 'https://dns.de-fra.ionos.com/secondaryzones' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
200 OK
{
"id": "0a85684c-2171-5a78-985a-a3999a0f5046",
"type": "collection",
"href": "/secondaryzones?limit=100&offset=0",
"items": [
{
"id": "a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"type": "secondaryzone",
"href": "/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"metadata": {
"createdDate": "2023-08-04T13:14:28+00:00",
"lastModifiedDate": "2023-08-04T13:14:28+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.com"
}
},
{
"id": "33085c93-425c-4909-9a5c-64ebf34dd9e9",
"type": "secondaryzone",
"href": "/secondaryzones/33085c93-425c-4909-9a5c-64ebf34dd9e9",
"metadata": {
"createdDate": "2023-08-04T13:15:32+00:00",
"lastModifiedDate": "2023-08-04T13:15:32+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.info"
}
},
{
"id": "fa4e179a-b1ab-4de5-ae38-48d5f02a605f",
"type": "secondaryzone",
"href": "/secondaryzones/fa4e179a-b1ab-4de5-ae38-48d5f02a605f",
"metadata": {
"createdDate": "2023-08-04T13:15:40+00:00",
"lastModifiedDate": "2023-08-04T13:15:40+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.net"
}
},
{
"id": "04706207-a691-4710-902d-10acf5441bf1",
"type": "secondaryzone",
"href": "/secondaryzones/04706207-a691-4710-902d-10acf5441bf1",
"metadata": {
"createdDate": "2023-08-04T13:15:46+00:00",
"lastModifiedDate": "2023-08-04T13:15:46+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.org"
}
}
],
"offset": 0,
"limit": 100,
"_links": {
"self": "/secondaryzones?limit=100&offset=0",
"next": "/secondaryzones?limit=100&offset=100"
}
}
To retrieve information about a specific secondary zone, follow this step:
- Send a GET request to the
/secondaryzones/{secondaryzoneId}
endpoint.
Result: On a successful GET request, you receive a response containing the secondary DNS zone UUID, Name Servers, primaryIps, and secondary zone status.
curl --location 'https://dns.de-fra.ionos.com/secondaryzones/04706207-a691-4710-902d-10acf5441bf1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
{
"id": "04706207-a691-4710-902d-10acf5441bf1",
"type": "secondaryzone",
"href": "/secondaryzones/04706207-a691-4710-902d-10acf5441bf1",
"metadata": {
"createdDate": "2023-08-04T13:15:46+00:00",
"lastModifiedDate": "2023-08-04T13:15:46+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "This is a secondary zone created in IONOS Cloud DNS",
"primaryIps": [
"1.2.3.4",
"5.6.7.8"
],
"zoneName": "example.org"
}
}
To retrieve records information about a specific secondary zone, follow this step:
- Send a GET request to the
/secondaryzones/{secondaryzoneId}/records
endpoint.
Result: On a successful GET request, you receive a response containing the secondary DNS zone records information: status,content, type, priority, TTL and name.
curl --location 'https://dns.de-fra.ionos.com/secondaryzones/04706207-a691-4710-902d-10acf5441bf1/records' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
{
"id": "04706207-a691-4710-902d-10acf5441bf1",
"type": "collection",
"href": "/secondaryzones/04706207-a691-4710-902d-10acf5441bf1/records?limit=100&offset=0",
"metadata": {
"primaryIps": [
"217.160.220.23"
]
},
"items": [
{
"type": "record",
"metadata": {
"fqdn": "example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "example.org hostmaster.example.org 2037070192 28800 7200 604800 600",
"enabled": true,
"name": "",
"priority": 0,
"ttl": 3600,
"type": "SOA"
}
},
{
"type": "record",
"metadata": {
"fqdn": "example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "ns.ui-global-dns.de",
"enabled": true,
"name": "",
"priority": 0,
"ttl": 3600,
"type": "NS"
}
},
{
"type": "record",
"metadata": {
"fqdn": "example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "ns.ui-global-dns.biz",
"enabled": true,
"name": "",
"priority": 0,
"ttl": 3600,
"type": "NS"
}
},
{
"type": "record",
"metadata": {
"fqdn": "example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "ns.ui-global-dns.com",
"enabled": true,
"name": "",
"priority": 0,
"ttl": 3600,
"type": "NS"
}
},
{
"type": "record",
"metadata": {
"fqdn": "example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "ns.ui-global-dns.org",
"enabled": true,
"name": "",
"priority": 0,
"ttl": 3600,
"type": "NS"
}
},
{
"type": "record",
"metadata": {
"fqdn": "www.example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "127.0.0.1",
"enabled": true,
"name": "www",
"priority": 0,
"ttl": 3600,
"type": "A"
}
},
{
"type": "record",
"metadata": {
"fqdn": "www.example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "0:0:0:0:0:0:0:1",
"enabled": true,
"name": "www",
"priority": 0,
"ttl": 3600,
"type": "AAAA"
}
},
{
"type": "record",
"metadata": {
"fqdn": "www2.example.org",
"zoneId": "04706207-a691-4710-902d-10acf5441bf1",
"rootName": "example.org"
},
"properties": {
"content": "203.0.113.220",
"enabled": true,
"name": "www2",
"priority": 0,
"ttl": 3600,
"type": "A"
}
}
],
"offset": 0,
"limit": 100,
"_links": {
"self": "/secondaryzones/04706207-a691-4710-902d-10acf5441bf1/records?limit=100&offset=0",
"next": "/secondaryzones/04706207-a691-4710-902d-10acf5441bf1/records?limit=100&offset=100"
}
}
To modify the description of a secondary zone or update the IP addresses of its primary nameserver, follow this step:
- Send a PUT request to the
/secondaryzones/{secondaryzoneId}
endpoint.
Result: On a successful PUT request, you receive a response containing the secondary DNS zone metadata with the new updated properties.
curl --location --request PUT 'https://dns.de-fra.ionos.com/secondaryzones/04706207-a691-4710-902d-10acf5441bf1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--data '{
"properties": {
"zoneName": "example.org",
"description": "Changing description and primaryIps for secondary zone example.org",
"primaryIps": [
"5.6.8.7",
"12.23.34.99"
]
}
}'
202 Accepted
{
"id": "a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"type": "secondaryzone",
"href": "/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c",
"metadata": {
"createdDate": "2023-08-04T10:21:32+00:00",
"lastModifiedDate": "2023-08-10T09:32:29+00:00",
"nameservers": [
"nscs.ui-dns.com",
"nscs.ui-dns.de",
"nscs.ui-dns.org",
"nscs.ui-dns.biz"
],
"state": "AVAILABLE"
},
"properties": {
"description": "Changing description and primaryIps for secondary zone example.com",
"primaryIps": [
"5.6.8.7",
"12.23.34.99"
],
"zoneName": "example.com"
}
}
Note: The creation of a secondary zone initiates zone transfer. In case of disrupted network connectivity at this time, you can initiate the zone transfer manually between the primary and secondary (i.e. secondary name server could not access primary nameserver on port 53) zones.
To initiate zone transfer from the primary zone to the secondary zone, follow this step:
- Send a PUT request to the
/secondaryzones/{secondaryzoneId}/axfr
endpoint.
Note: For sending DNS notify messages, Cloud DNS uses following Anycast addresses: IPv4 212.227.123.25 or IPv6 2001:8d8:fe:53::5cd:25.
Result: On a successful PUT request, you receive an HTTP response 200 OK.
curl --location --request PUT 'https://dns.de-fra.ionos.com/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c/axfr' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
200 OK
To check zone transfer status, follow this step:
- Perform a GET request to
/secondaryzones/{secondaryzoneId}/axfr
endpoint.
Result: On a successful GET request, you receive a response for AXFR communication status for each of primaryIps.
curl --location 'https://dns.de-fra.ionos.com/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c/axfr' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
200 OK
{
"items": [
{
"errorMessage": "",
"primaryIp": "5.6.8.7",
"status": "OK"
}
],
"type": "collection"
}
To delete a secondary zone from the IONOS Cloud DNS, follow this step:
- Send a DELETE request to the
/secondaryzones/{zoneId}
endpoint.
Result: On a successful DELETE request, you receive an HTTP status 200 Accepted.
curl --location --request DELETE 'https://dns.de-fra.ionos.com/secondaryzones/d8ff66f6-6777-42a8-b363-7f80b9105db4' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'
200 Accepted
Last modified 1d ago