Learn OpenStack · core/dns
DNS — Designate
Designate is the OpenStack DNS as a Service (DNSaaS) component. It exposes a REST API for creating and managing DNS zones and record sets, and propagates changes to one or more back-end DNS servers (BIND9, PowerDNS, Infoblox, Akamai, and others) through a pool-based driver framework. Designate integrates with Neutron to automatically create PTR records for floating IPs and forward DNS records for instance ports.
When to Read This Skill
- Deploying Designate and configuring the first DNS pool and backend driver
- Creating zones and record sets via CLI or API
- Configuring reverse DNS (PTR records) for floating IPs and fixed IPs
- Setting up Neutron integration for automatic DNS record creation
- Implementing zone transfers between projects or to external nameservers
- Troubleshooting record propagation to BIND9 or PowerDNS backends
- Configuring TSIG keys for zone transfer security
- Understanding the mini-DNS (mdns) internal zone transfer mechanism
- Managing DNS pools and backend selection
Sub-Files
| File | What It Covers |
|---|---|
| architecture.md | designate-api, designate-central, designate-worker, designate-producer, designate-mdns, designate-sink; zone model (primary/secondary); Neutron integration; pool architecture |
| operations.md | CLI and API: zones, record sets (A, AAAA, MX, CNAME, TXT, SRV, PTR), zone transfers, zone import/export, TSIG keys, quotas |
| internals.md | Backend driver framework (BIND9 agent, PowerDNS, Infoblox, Akamai); pool configuration; serial number management; SOA records; sink notification handling; mini-DNS AXFR |
Quick Reference
# Create a zone
openstack zone create --email admin@example.com example.com.
# Add an A record
openstack recordset create --type A --record 203.0.113.10 example.com. www
# Add an MX record
openstack recordset create \
--type MX \
--record "10 mail.example.com." \
example.com. ""
# Add an AAAA record
openstack recordset create \
--type AAAA \
--record "2001:db8::1" \
example.com. ipv6
# List record sets in a zone
openstack recordset list example.com.
# Show zone status and serial
openstack zone show example.com.
Dependencies
| Dependency | Purpose | Notes |
|---|---|---|
| Keystone | Authentication and service catalog | All Designate API calls require Keystone tokens |
| MariaDB / PostgreSQL | Designate database | Stores zones, recordsets, pools, backend state |
| RabbitMQ | RPC between Designate services | oslo.messaging; used for worker tasks and sink events |
| BIND9 / PowerDNS | Actual DNS serving | At least one backend required; configurable per pool |
| Neutron | Floating IP and port DNS integration | Optional; enables automatic record creation |
python-openstackclient |
Unified CLI (openstack zone …, openstack recordset …) |
Wraps the Designate v2 REST API |
python-designateclient |
Python bindings | Used by automation and other services |
Releases Covered
This skill covers OpenStack 2025.1 (Epoxy), 2025.2, and 2026.1.
Designate release notes: https://docs.openstack.org/releasenotes/designate/