<HEAD>
<TH>ZONESERVER 8 "zoneserver" "October 2001" "zoneserver"</TH>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
</HEAD>
<BODY>
<h1>NAME</h1>
zoneserver - handle zone transfers and other TCP functions for MaraDNS
<h1>DESCRIPTION</h1>
<b>zoneserver</b> listens on port 53/tcp and handles DNS zone transfers
and any DNS query done over TCP instead of UDP.
<b>zoneserver</b> uses a configuration file, <b>/etc/mararc</b>
by default, to determine its parameters. 
<h1>USAGE</h1>
<b>zoneserver -f</b> pointer_to_mararc_file
<h1>OPTIONS</h1>
<dl>
<dt>-f
<dd>Specifies the location of the configuration file. MaraDNS uses the same
configuration file for both the main dns server and the zoneserver.
</dl>
<h1>CONFIGURATION FILE FORMAT</h1>
The file format for the mararc file can be found in the 
<b>mararc(5)</b> manual page.  In particular, the zoneserver uses the
zone_transfer_acl, tcp_convert_acl, tcp_convert_server, and bind_address
mararc parameters.
<h1>EXAMPLE MARARC FILE</h1>
In this example mararc file, which is used both by maradns and zoneserver,
we allow 10.1.2.3, 10.1.14.7, and 192.168.116.{any} to transfer zones, and
we allow anyone on the internet to perform TCP queries.  The only zone
served in this example is example.com:
<pre>
ipv4_bind_addresses = "10.1.1.1" # Our IP
tcp_convert_server = "10.1.1.1" # IP of UDP DNS server
tcp_convert_acl = "0.0.0.0/0" # Anyone may do DNS-over-TCP
chroot_dir = "/etc/maradns" # Where zone files are
csv2 = {} # Initialize list of zone files
csv2["example.com."] = "db.example.com" # example.com zone file
# The next line is a list of who can transfer zones from us
zone_transfer_acl = "10.1.2.3, 10.1.14.7, 192,168.116.0/24"
</pre>
<h1>SEE ALSO</h1>
The man pages <b>maradns(8)</b> and <b>mararc(5)</b>
<P>
<A href=http://www.maradns.org>http://www.maradns.org</A>
<h1>BUGS</h1>

<b>zoneserver</b>
assumes that the authoritative NS records are immediately after the SOA
record, and that there is at least one non-NS between that last authority
NS record for the zone and the first delegation NS record.
<p>

IXFR requests are incremental zone transfers, meaning that the DNS
server should only display records changed since the last IXFR request.
<b>zoneserver</b>,
however, treats an IXFR as if it were an AXFR request, outputting all of
the records for the zone in question.
<p>

<b>zoneserver</b>
closes the TCP connection after transferring the requested zone.
<p>

If an unauthorized client attempts to connect to the zoneserver,
<b>zoneserver</b>
immediately disconnects the unauthorized client.

<h1>LEGAL DISCLAIMER</h1>
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS 
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 

<h1>AUTHOR</h1>
MaraDNS is written by Sam Trenholme. Jaakko Niemi used 5 minutes
to put the original version this manpage together.  
Sam has subsequently revised this manual page.

</body>
