=== NAME ===

zoneserver - handle zone transfers and other TCP functions for MaraDNS 

=== DESCRIPTION ===

zoneserver listens on port 53/tcp and handles DNS zone transfers and 
any DNS query done over TCP instead of UDP. zoneserver uses a 
configuration file, /etc/mararc by default, to determine its 
parameters. 

=== USAGE ===

zoneserver -f pointer_to_mararc_file 

=== OPTIONS ===

-f Specifies the location of the configuration file. MaraDNS uses 
the same configuration file for both the main dns server and the 
zoneserver.  

=== CONFIGURATION FILE FORMAT ===

The file format for the mararc file can be found in the mararc(5) 
manual page. In particular, the zoneserver uses the zone_transfer_acl, 
tcp_convert_acl, tcp_convert_server, and bind_address mararc 
parameters. 

=== EXAMPLE MARARC FILE ===

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:

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"

=== SEE ALSO ===

The man pages maradns(8) and mararc(5) 

http://www.maradns.org

=== BUGS ===

zoneserver 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. 

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

zoneserver closes the TCP connection after transferring the requested 
zone. 

If an unauthorized client attempts to connect to the zoneserver, 
zoneserver immediately disconnects the unauthorized client. 

=== LEGAL DISCLAIMER ===

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. 

=== AUTHOR ===

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.  

