Current Series Release Notes¶
22.0.0-19¶
New Features¶
The worker can now optionally sign NOTIFY and SOA poll messages with a TSIG key. In split-horizon deployments where the DNS server routes queries based on TSIG keys, this ensures that NOTIFY and serial polling reach the correct view regardless of the worker’s source IP.
To enable, set
tsigkey_idon pool nameservers and/or pool targets inpools.yaml, referencing a TSIG key created via the Designate API. When not set, the worker sends unsigned queries as before.
The zone import endpoint (
POST /v2/zones/tasks/imports) now acceptsapplication/jsonas a content type in addition totext/dns. When using JSON, the request body can include azonefilefield containing the zonefile content and an optionalattributesfield with zone attributes (e.g.pool_id). This allows imported zones to be scheduled to a specific pool, which was previously not possible. The existingtext/dnsbehavior is unchanged.
Upgrade Notes¶
A new
tsigkey_idcolumn has been added to thepool_nameserverstable. Rundesignate-manage database upgradeto apply the migration. The column is nullable and defaults to NULL, so no action is required for existing deployments.
Python 3.10 support has been dropped. The minimum version of Python now supported is Python 3.11.
Bug Fixes¶
Fixed mDNS
_handle_record_queryto use TSIG-based pool scoping when looking up SOA and other record queries. Previously, when the same zone name existed in multiple pools (e.g. split-horizon DNS), the handler would find multiple matching recordsets and return REFUSED. The handler now resolves the zone first using the TSIG key’s pool_id, then looks up the recordset within that zone.
Fixed a bug where the Move Zone API did not remove the zone from the source pool’s backend after moving it to the target pool. The zone data remained on the old pool’s nameservers, potentially serving stale DNS responses. Designate now deletes the zone from the source pool’s backend targets after the zone has been successfully updated on the target pool.
Fixed a bug that didn’t allow zones to be moved from non-default pools to default pools.