ZONESERVER(8)
β¨ zoneserver β the manual, but make it cute β¨
okay so bestie, this is zoneserver(8), a MaraDNS thing, and honestly it's the TCP bestie of the whole operation π let's get into it
π NAME π
zoneserver β it handles zone transfers and all the other TCP functions for MaraDNS π¦
π DESCRIPTION π
okay so picture this: zoneserver is just vibing on port 53/tcp all day, and its whole personality is two things:
- it handles DNS zone transfers
- it handles any DNS query that gets done over TCP instead of UDP
and it figures out all its parameters from a configuration file β which is /etc/mararc by default, no cap. πβ¨
πΈ USAGE πΈ
here's the whole vibe, literally one line:
zoneserver -f pointer_to_mararc_file
β¨ OPTIONS β¨
-fβ this is where you tell it which configuration file to use. and here's the cute part: MaraDNS uses the same configuration file for both the main DNS server and thezoneserver. one file, two icons. π
π§ CONFIGURATION FILE FORMAT π§
the whole file format situation for the mararc file lives in the mararc(5) manual page β go read that, iykyk π
specifically though, zoneserver is obsessed with these four mararc parameters:
zone_transfer_acltcp_convert_acltcp_convert_serverbind_address
those are the ones it actually uses. periodt. π
π EXAMPLE MARARC FILE π
okay so in this example mararc file β and note that this one is used by maradns and zoneserver both, shared custody π«Ά β we're letting 10.1.2.3, 10.1.14.7, and 192.168.116.{any} transfer zones. also we're letting literally anyone on the internet do 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"
(and yes, that last line says 192,168.116.0/24 with a comma β we are copying it exactly as it is, don't come for me π)
π¦ SEE ALSO π¦
- the
maradns(8)man page π - the
mararc(5)man page π - http://www.maradns.org π
π BUGS π
okay so here's the tea, and some of this is lowkey cursed:
zoneserverassumes that the authoritative NS records come immediately after the SOA record. it also assumes there's at least one non-NS record between that last authority NS record for the zone and the first delegation NS record. it's just assuming things, bestie π- IXFR requests are incremental zone transfers β meaning the DNS server is supposed to only show the records that changed since the last IXFR request. but
zoneservertreats an IXFR like it's an AXFR request and outputs all of the records for the zone in question. so much for incremental π zoneservercloses the TCP connection after it transfers the requested zone. bye! π- if an unauthorized client tries to connect to
zoneserver, it immediately disconnects them. not even a hello. ruthless. βοΈ
π LEGAL DISCLAIMER π
this one is serious so i'm giving it to you verbatim energy, no jokes, all caps because it means it:
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. and fun fact: Jaakko Niemi used 5 minutes to put the original version of this manpage together β±οΈ (five minutes!! main character speedrun fr). Sam has subsequently revised this manual page. π«Ά
and that's the whole page, bestie β this one's from zoneserver in the ZONESERVER(8) manual, dated October 2001 π go forth and transfer those zones responsibly, mwah πβ¨
π¦ where this page comes from
- fedora 43: maradns 3.5.0036-8.fc43 Β· BSD-2-Clause
- fedora 44: maradns 3.5.0036-9.fc44 Β· BSD-2-Clause
- fedora 44: maradns 3.5.0037-1.fc44
- fedora 44: maradns 3.5.0039-1.fc44 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms