Sauron is built around sauron "back-end" that is used by the command-line and web interfaces to access the data stored in a SQL-database (see Figure 1-1). Sauron is able to dynamically generate complete DNS (ISC BIND) and DHCP (ISC DHCP) configurations based on the data stored in the SQL-database. Sauron is currently written almost completely in Perl using only standard perl modules and couple of additional modules from CPAN. Web interface is stand-alone CGI script and should work with almost any WWW server that supports CGI.
Database is organized as follows; a number of servers may be defined where each server may contain several zones. At server level there may be "global" definitions for DNS & DHCP settings and a Layer-2 network map (VLAN map), which is used generating necessary topology information for dhcpd. Each server can have multiple (DNS) zones defined. Hosts belong to a zone and may contain additional information (such as asset IDs) in addition to DNS/DHCP information.
Some of the main features of Sauron include:
Generates complete BIND (DNS) configuration file set for each server
Generates complete dhcpd (ISC's DHCP) configuration file set for each server
Automatically generates DNS "reverse" zones
Supports smaller than class-C "reverse" zone delegations
Dynamic host aliases (both CNAME and A record)
Support for dynamic DHCP address pools with access controls (requires DHCP v3)
DHCP fail-over support (requires DHCP v3)
MX and WKS record templates for hosts
Groups; hosts may be assigned into a group that defines common attributes for it
Support for most of the standard DNS RRs (resource records)
Support for automatic validation of generated DNS and DHCP configuration file sets