logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

all-knowing-dns - Tiny DNS server for IPv6 Reverse DNS

Author

       Michael Stapelberg, "<michael at stapelberg.de>"

Configuration File (/Etc/All-Knowing-Dns.Conf)

       The configuration file is wonderfully simple:

           # Configuration file for AllKnowingDNS v1.7

           listen 79.140.39.197
           listen 2001:4d88:100e:1::3

           # RaumZeitLabor
           network 2001:4d88:100e:ccc0::/64
               resolves to ipv6-%DIGITS%.nutzer.raumzeitlabor.de
               with upstream 2001:4d88:100e:1::2

           # Chaostreff
           network 2001:4d88:100e:cd1::/64
               resolves to ipv6-%DIGITS%.treff.noname-ev.de

       This example contains all configuration directives. Let's go over them one by one:

       listenaddress
           Listens on the given address (IPv4 and IPv6 is supported) on port 53.

       networknetwork
           Specifies  that queries for PTR records within the given network should be answered (any query for an
           unconfigured network will be answered with NXDOMAIN). You need to specify at least  the  resolvesto
           directive afterwards.

       resolvestoaddress
           Specifies  the  address  to  which  PTR records should resolve. The address needs to contain %DIGITS%
           exactly once. When answering AAAA queries, %DIGITS% will be parsed and  converted  back  to  an  IPv6
           address.

           Example:

               network 2001:4d88:100e:ccc0::/64
                   resolves to ipv6-%DIGITS%.nutzer.raumzeitlabor.de

           Example query:

               The PTR query 2001:4d88:100e:ccc0:216:eaff:fecb:826 will resolve to
               ipv6-0216eafffecb0826.nutzer.raumzeitlabor.de

       withupstreamaddress
           Before  answering  a  PTR  query  for  this network, AllKnowingDNS will ask the DNS server at address
           first, appending .upstream to the query.

           Example:

               network 2001:4d88:100e:ccc0::/64
                   resolves to ipv6-%DIGITS%.nutzer.raumzeitlabor.de
                   with upstream 2001:4d88:100e:1::2

           Example query:

               The PTR query 2001:4d88:100e:ccc0:219:dbff:fe43:2ec5 will make
               AllKnowingDNS ask for
               5.c.e.2.3.4.e.f.f.f.b.d.9.1.2.0.0.c.c.c.e.0.0.1. \
               8.8.d.4.1.0.0.2.ip6.arpa.upstream. at 2001:4d88:100e:1::2
               and relay the answer, if any.

Delegating Zones

       This section shows you how to delegate a zone in BIND9 or any DNS server  with  a  compatible  zone  file
       syntax.  To  use  AllKnowingDNS, you need to delegate the appropriate .ip6.arpa zone for your network and
       one regular domain.

   REVERSEDELEGATION(.ip6.arpa)
           $ORIGIN .
           $TTL 604800     ; 1 week
           e.0.0.1.8.8.d.4.1.0.0.2.ip6.arpa IN SOA infra.in.zekjur.net. \
                                                 hostmaster.zekjur.net. (
                                           20         ; serial
                                           604800     ; refresh (1 week)
                                           86400      ; retry (1 day)
                                           2419200    ; expire (4 weeks)
                                           604800     ; minimum (1 week)
                                           )
                                   NS      libri.sur5r.net.
                                   NS      infra.in.zekjur.net.

           ; net for RaumZeitLabor
           0.c.c.c.e.0.0.1.8.8.d.4.1.0.0.2.ip6.arpa. IN  NS        ipv6-rdns.zekjur.net.

   FORWARDDELEGATION(.nutzer.raumzeitlabor.de)
           $TTL    6h
           raumzeitlabor.de    IN  SOA ns1.jpru.de.    hostmaster.jpru.de. (
                                   2012030701
                                   3h
                                   30m
                                   7d
                                   1d )
               IN  NS  ns1.jpru.de.
               IN  NS  ns2.jpru.de.
               IN  A   195.49.138.121
               IN  MX  10  rzl.uugrn.org.
               IN  MX  20  up.uugrn.org.
               IN  MX  50  mail.uugrn.org.
               IN  MX  100 rzl.uugrn.org.

           nutzer.raumzeitlabor.de. IN NS ipv6-rdns.zekjur.net.

Description

       AllKnowingDNS provides reverse DNS for IPv6 networks which use SLAAC (autoconf), e.g. for a /64 network.

       The problem with IPv6 reverse DNS and traditional nameservers is that the nameserver requires you to
       provide a zone file. Assuming you want to provide RDNS for a /64 network, you have 2**64 =
       18446744073709551616 different usable IP addresses (a little less if you are using SLAAC). Providing a
       zone file for that, even in a very terse notation, would consume a huge amount of disk space and could
       not possibly be held in the memory of the computers we have nowadays.

       AllKnowingDNS instead generates PTR and AAAA records on the fly. You only configure which network you
       want to serve and what your entries should look like.

Name

       all-knowing-dns - Tiny DNS server for IPv6 Reverse DNS

Options

--configfile=path
           Use path instead of /etc/all-knowing-dns.conf as configuration file.

       --querylog
           Enable logging every query to stdout (for debugging).

Synopsis

           all-knowing-dns [--configfile <path>] [--querylog]

Version

       Version 1.7

See Also