Tim SimmonsSoftware Developer - Rackspace Cloud [email protected] @ irc.freenode.net
Agenda
Overview of DesignateOur API and Client LibrariesHow we work with DNS ServersDesignate Sink and Nova/Neutron
What is Designate?
● “OpenStack Style” REST API for managing DNS● Architecture is similar to Nova/Trove/etc - We’re not a
DNS server, we just manage them● Support for two deployment models:
○ On Premise - You manage and maintain the DNS servers
○ 3rd Party - Support for pushing zones to Akamai or DynECT
Why use Designate?
● DNS isn’t cool - It’s like plumbing, nobody notices when it works and gets horribly upset when it breaks
● DNS is essential to nearly every app running on top of OpenStack, really, it is!
● Why give users the power to `nova boot`, only to leave them high and dry filing a IT support ticket for a DNS entry? We can do better!
There are a lot of ways to run DNS
PowerDNS
Knot
Master-SlaveMicrosoft DNS
Multi-Master
BIND9
NSD
djbdns
Secondary
Primary
Denominator
AkamaiDynECT
Master-Slave-Cache
Multi-Region
Infoblox
MiniDNS
A very minimal DNS server, backed by Designate’s databaseUtilizes DNS Protocol (NOTIFY, AXFR)Acts as a ‘Master’*Horizontally scalableDesignate in control
*Most of the time
Pool Manager Backends
Updating is easyCreating and Deleting can be oddAllows complete customization of the create/delete processMechanisms for keeping DNS eventually consistent
MiniDNS
The Agent
OptionalTalks with MiniDNS using DNS protocolWrite plugins for complete controlGet all the Designate goodness, regardless of DNS server
AgentNOTIFY/AXFRMiniDNS Managed
DNS ServersMiniDNS
*Secondary Zones
MiniDNS/Designate can act as a slaveIf you want to manage your own DNS, and let Designate distribute to its managed DNS servers
Your DNS Server MiniDNS
NOTIFY/AXFR Managed DNS Servers
NOTIFY/AXFR
Designate Sink
CentralSink DB
Pool Manager
Mini DNS
Customer Facing DNS
Servers
Backend
Nova /Neutron
Designate Sink and Notification Handlers
● Designate Sink consumes notification events from:○ Nova○ Neutron○ Any other service which emits events
● Designate Sink turns events into DNS operations.● What events and what DNS operations are performed are determined by custom notification
handlers, two basic samples are provided:○ nova_fixed○ neutron_floatingip
● Sink is pluggable - The intent is for organisations to write a plugin that reflects their specific use case.