                              Introduction to DNS

   This document is meant to be an introduction to DNS for someone who has
   never administrated a DNS server or registered a domain before. Being a
   part of the MaraDNS package, this tutorial assumes that one is using the
   MaraDNS package.

What is DNS?

   DNS is the method that the internet uses to convert difficult-to-remember
   numbers, such as '10.17.243.32', in to easy-to-remember names, such as
   'www.yahoo.com'. The reason for this conversion is because the underlying
   protocol for the internet, TCP/IP, uses difficult-to-remember numbers to
   connect to other computers.

What is a DNS server

   A DNS server is a program that performs the DNS conversion from names in
   to number. There are three kinds of DNS servers out there:

     * DNS servers which can convert most DNS nodes in to thier corresponding
       number. These DNS servers are called recursive DNS servers. This kind
       of server can not change the names of any DNS nodes out there.
       Instead, they simply ask other DNS servers the IP for a given DNS
       node.

       This kind of DNS server does not depend on one's ISP DNS servers to
       resolve a given name, but directly contacts the relevant authoritative
       DNS servers anywhere on the internet to resolve a given DNS node.
     * DNS servers which can only convert DNS nodes which a DNS server
       administrator manages from DNS nodes in to IPs. The DNS server
       administrator can change the IPs that the DNS nodes have. These kinds
       of DNS servers are called authoritative DNS servers. Recursive DNS
       servers contact authoritative DNS servers in order to learn the IP for
       a given DNS node.
     * DNS servers which simply cache information obtained from other
       recursive DNS servers. While, MaraDNS supports this type of
       configuration via the "upstream_servers" mararc variable, MaraDNS can
       also act as a full fledged recursive DNS server.

   MaraDNS is both a recursive and an authoritative DNS server. Whether one
   needs a recursive or an authoritative DNS server depends on what one is
   trying to do with dns:

     * If one simply wishes to contact other sites on the internet, one only
       needs to set up a recursive DNS server. Tutorial for setting up
       MaraDNS as a recursive DNS server
     * If one wishes to register domains, and have their own computers serve
       the domain names in question, then one needs to set up an
       authoritative DNS server. Tutorial for setting up MaraDNS as an
       authoritative DNS server.
     * If one has a current DNS setup using another DNS server, this document
       details how to convert from another DNS server to MaraDNS.
