Delegated Domains

Delegated Domains

Delegated domains allow you to register DNS zones that this Nexus GSLB cluster is authoritative for. Once a domain is delegated, the cluster serves authoritative DNS responses for that zone — including DNSSEC-signed responses if DNSSEC is enabled.

Delegation is verified by checking that the zone's NS records point at the cluster's own nameserver(s) and, optionally, that a DS record is present in the parent zone.


Model

Field Type Description
id string UUID assigned on creation
domain string Fully-qualified domain name (trailing dot optional)
verified bool true if NS verification has passed
nsOk bool true if NS records point to this cluster
dsOk bool true if DS record is present in parent zone
lastVerifiedAt int64? Unix timestamp of last successful verification
verificationError string Last verification error, if any
createdAt int64 Unix timestamp of creation

API

List delegated domains

GET /api/v1/domains

Response 200 OK: array of DelegatedDomain objects.

[
  {
    "id": "abc123...",
    "domain": "gslb.example.com.",
    "verified": true,
    "nsOk": true,
    "dsOk": false,
    "lastVerifiedAt": 1716100000,
    "createdAt": 1716090000
  }
]

Create a delegated domain

POST /api/v1/domains

Field Type Required Description
domain string yes Domain to delegate (e.g. gslb.example.com)

Response 201 Created: the created DelegatedDomain object.

curl -X POST https://nexus-api.example.com/api/v1/domains \
  -H "Authorization: Bearer $GSLB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"gslb.example.com"}'

Verify a delegated domain

POST /api/v1/domains/{id}/verify

Triggers an immediate NS and DS check. Returns the updated DelegatedDomain.

curl -X POST https://nexus-api.example.com/api/v1/domains/$DOMAIN_ID/verify \
  -H "Authorization: Bearer $GSLB_API_KEY"

Delete a delegated domain

DELETE /api/v1/domains/{id}

Response 204 No Content.


gslbctl

# List delegated domains
gslbctl domains list --server https://nexus.example.com:8880

# Add a domain
gslbctl domains add gslb.example.com --server https://nexus.example.com:8880

# Verify a domain (triggers NS/DS check)
gslbctl domains verify <domain-id> --server https://nexus.example.com:8880

# Delete a domain
gslbctl domains delete <domain-id> --server https://nexus.example.com:8880

Terraform

resource "nexus_domain" "gslb" {
  domain = "gslb.example.com"
}
Attribute Type Required Description
domain string yes Domain to delegate

Setting Up Delegation

  1. Add the domain via WebUI (Admin → Domains → Add Domain), API, or gslbctl.
  2. Update your registrar to point the zone's NS records to the Nexus cluster's nameserver IPs.
  3. Trigger verification — the cluster checks that NS records resolve to itself.
  4. Optional DNSSEC: once verified, enable DNSSEC signing via Admin → DNSSEC and add the DS record to the parent zone.

Verification runs automatically on a background interval. nsOk and dsOk reflect the most recent check.


Notes

  • Domains are per-tenant. Different tenants can manage different zones on the same cluster.
  • A domain conflict (same FQDN registered by two tenants) is rejected with a 409 Conflict.
  • Trailing dot is normalised — gslb.example.com and gslb.example.com. are treated as identical.

Was this article helpful?
© 2026