Private DNS’s containers are each responsible for a service; however, these services can be logically grouped into two categories, core or edge, describing their relationship to a typical topology.
Core, or control, services of Private DNS consist of the Data, Web and XFR containers:
- The Data container houses DNS zones and records in the system’s main database
- The Web container runs the REST API and application web interface server
- The XFR container provides the zone transfer services that enables importing/exporting zone data with other DNS systems via AXFR or IXFR.
In a typical private DNS deployment, an one or more instances of the core services are deployed in a single location while multiple edge nodes serve DNS to local clients making DNS requests. Keeping the Web and XFR containers proximate to data containers reduces connection latency for requests modifying the main database and its records. When core services are physically separated from edge services, the architecture allows edge services operate independent of core services. Core and edge services work in tandem to maintain high availability of DNS while regularly updating information synchronized from the core node’s main database..
Edge services of Private DNS consist of DNS and Data Cache (also referred to as simply, cache).
- DNS containers run NS1’s next-generation authoritative DNS server, high-speed caching daemon, and a server for recursive resolution
- Data Cache containers keep a local copy of the main database at the edge of a distributed network
With Data Cache containers proximate to DNS containers at the edge nodes, the entire edge node’s connection can be severed from a core node yet still allow DNS containers to be spun up from scratch and restarted. The local copy of a main database allows populating (or repopulation) of their high-speed caching daemons of zone and record information.
For examples of how to deploy core and edge services to hosts, please see the usage information for core-compose.yml and edge-compose.yml found here: https://github.com/ns1/ns1-privatedns/tree/master/docker-compose