Recursive DNS serving

This document has been placed in the public domain by Sam Trenholme

# Using MaraDNS as a recursive DNS server

This document is a step-by-step guide to setting up MaraDNS as a recursive DNS server. It assumes that MaraDNS is already compiled and installed. Once MaraDNS is installed:

- The `mararc`file needs to be changed before MaraDNS will function as a recursive DNS server. Here is a mararc file that will work as a recursive DNS server
- If one wishes to limit the range of IPs that can access the recursive DNS server, change the following line:

  > `recursive_acl = "0.0.0.0/32"`

  Replace the 0.0.0.0/32 with the range of IPs that one wishes to have contact the name server. For example, if one has an office which uses IPs in the form 192.168.1.1, 192.168.1.2, etc., and wishes to have only 192.168.1.any be allowed to make recursive queries:

  > `recursive_acl = "192.168.1.0/24"`

- Once this is done, other machines can contact the MaraDNS server to perform DNS queries. For example, MaraDNS is now a DNS server which Windows 98 can use in "Control Panel -> Network -> TCP/IP -> DNS configuration", or a UNIX system can point to from `/etc/resolv.conf`.
- More information about using MaraDNS in recursive mode is available from the MaraDNS manual page and the mararc manual page.
- If one wishes to have MaraDNS contact other recursive name servers, instead of contacting the actual root servers to process recursive queries, use `upstream_servers` instead of `root_servers`. See the mararc manual page for more details.