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 the zoneName, description, and primaryIps 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.

Request

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"
        ]
    }
}'

Response

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-ic.ui-dns.com",
            "nscs-ic.ui-dns.de",
            "nscs-ic.ui-dns.org",
            "nscs-ic.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"
    }
}

Retrieve all secondary zones

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.

Request

curl --location 'https://dns.de-fra.ionos.com/secondaryzones' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'

Response

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-ic.ui-dns.com",
                    "nscs-ic.ui-dns.de",
                    "nscs-ic.ui-dns.org",
                    "nscs-ic.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-ic.ui-dns.com",
                    "nscs-ic.ui-dns.de",
                    "nscs-ic.ui-dns.org",
                    "nscs-ic.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-ic.ui-dns.com",
                    "nscs-ic.ui-dns.de",
                    "nscs-ic.ui-dns.org",
                    "nscs-ic.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-ic.ui-dns.com",
                    "nscs-ic.ui-dns.de",
                    "nscs-ic.ui-dns.org",
                    "nscs-ic.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"
    }
}

Retrieve a specific secondary zone information

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.

Request

curl --location 'https://dns.de-fra.ionos.com/secondaryzones/04706207-a691-4710-902d-10acf5441bf1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'

Response

{
    "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-ic.ui-dns.com",
            "nscs-ic.ui-dns.de",
            "nscs-ic.ui-dns.org",
            "nscs-ic.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"
    }
}

Retrieve records for a specific secondary zone information

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.

Request

curl --location 'https://dns.de-fra.ionos.com/secondaryzones/04706207-a691-4710-902d-10acf5441bf1/records' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'

Response

{
    "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"
    }
}

Modify secondary zone

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.

Request


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"
        ]
    }
}'

Response

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-ic.ui-dns.com",
            "nscs-ic.ui-dns.de",
            "nscs-ic.ui-dns.org",
            "nscs-ic.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"
    }
}

Initiate zone transfer to a secondary zone

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.

Request

curl --location --request PUT 'https://qa.dns.de-txl.ionos.com/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c/axfr' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'

Response

200 OK

Check zone transfer status

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.

Request

curl --location 'https://qa.dns.de-txl.ionos.com/secondaryzones/a1bc82de-4cc5-40ca-bfb3-4e93bd9a367c/axfr' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO'

Response

200 OK

{
    "items": [
        {
            "errorMessage": "",
            "primaryIp": "5.6.8.7",
            "status": "OK"
        }
    ],
    "type": "collection"
}

Delete a secondary zone

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.

Request

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'

Response

200 Accepted

Last updated

Revision created

Minor update from the comments