                               Default zonefiles

   Default zonefiles are useful when one has a large number of identical
   zones. They are also useful for setups like "have all records resolve to a
   given IP address", for example when setting up connections to the internet
   that require authentication to use, and want all traffic to be directed to
   a web page stating "you're not logged in to use the internet yet".

   A default zonefile is a CSV2 zone file where stars can be at the end of
   hostnames. There are a few restrictions with default zone files:

     * A SOA record is mandatory
     * NS records are mandatory
     * Neither CNAME nor FQDN4 records are permitted in the zone file
     * Delegation NS records are not permitted in the zone file
     * Default zonefiles may not be transferred via zone transfer

   It also is not possible to run recursion on a server that uses a default
   zonefile. With the exception of these restrictions, and the ability to
   have a '*' at the end of a hostname (or simply the catch-all wildcard
   hostname '*'), a csv2 default zone file functions like a normal csv2 zone
   file.

   A default zone file looks like this:

 # This is an example csv2_default_zonefile

 *       SOA     example.com. email@example.com. 1 7200 3600 604800 1800

 *       NS      a.example.com.
 *       NS      b.example.com.

 # Here are some A (ipv4 address) records; since this is the most
 # common field, the zone file format allows a compact representation
 # of it.

 * 10.10.10.10

 # The A record can be specified explicitly, but doesn't need to be
 # E.g. the above line could have been written '* A 10.10.10.10'
 www.* A 10.10.10.10

 # Here is a MX record
 * MX mail.example.com.

   Here, "example.com" is replaced with the name of the zone server running
   MaraDNS, "a.example.com." and "b.example.com." replaced with the NS
   entries running MaraDNS, 10.10.10.10 is replaced with the IP for the
   machine in question, and "mail.example.com." is replaced with the name of
   the machine that accepts mail for this domain.

   NS entries are the names of machines which are running this instance of
   MaraDNS. In the above example, we will also have an "example.com" zone
   that will have "a.example.com" and "b.example.com" entries. The
   example.com domain will also have an "example.com" entry and a
   "mail.example.com" entry.

   What this does is allow people to serve a large number of domains with
   MaraDNS without using up too much memory, and without needing to load a
   large number of domains when starting MaraDNS. The only caveat is that all
   of the domains need to be identical. This is often the case with large web
   serving farms. In situations where different domains are served by
   different machines in the web serving farm, one simply runs multiple
   instances of MaraDNS on different IPs; machines hosted on different
   machines just use different DNS servers. Since MaraDNS is a small program,
   suitable for embedded applications, even running multiple instances of
   MaraDNS will be more lightweight than running other DNS servers when there
   are a large number of domains and only a few web servers processing the
   domains.

Record searching order

   When the default zonefile is enabled, MaraDNS searches for records in the
   following order:

     * MaraDNS first searches for any non-wildcard records in non-default
       zone files.
     * MaraDNS then searches for wildcard records in non-default zone files
       (records with a star at the beginning of them).
     * Should no records be found, MaraDNS then looks for records with stars
       at the end of them. MaraDNS does this by removing the final field from
       a domain name until a match is found. For example, if someone sends
       MaraDNS a request for "www.mx.example.com", we will first look for
       "www.mx.example.*" in the default zone file, followed by looking for
       "www.mx.*", followed by "www.*", and finally "*".
