Provided by: ldnsutils_1.7.0-4.1ubuntu1_amd64 bug

NAME

       ldns-testns - simple fake nameserver tool

SYNOPSYS

       ldns-testns [ OPTION ] datafile

DESCRIPTION

       ldns-testns  can  be  used to provide answers to DNS queries for testing.  The answers are
       premade, and can be tailored to testing needs.  The  answers  can  be  wildly  invalid  or
       unparseable.

       This  program is a debugging aid. It is not efficient, especially with a long config file,
       but it can give any reply to any query.  This can help the  developer  pre-script  replies
       for queries.

       It  listens  to IP4 UDP and TCP by default.  You can specify a packet RR by RR with header
       flags to return.

       ldns-testns is not meant for production use.

OPTIONS

       -r     Listens to a random port. The port number is printed to stdout.

       -p port
              Listens to the specified port.

       -f num Forks this number of additional instances  that  serve  the  same  ports  and  same
              datafile.  They  do  not  exit; printed is 'forked pid: <num>' and you have to kill
              them yourself.

       -v     Outputs more debug information. It is possible to give this option  multiple  times
              to increase verbosity level.

       -6     Bind to IP6 address instead of IP4. Use together with -p.

       datafile
              The  data file is read on start up. It contains queries and the packets that should
              be sent in answer to those queries. The data file format is explained below.

DATA FILE FORMAT

       The data file format has ';' to denote comment. A number of entries are processed first to
       last.  The  first  matching  entry  is used to answer the query with. This is a line based
       format. DNS resource records are entered in zone-file format.

       You can use $ORIGIN and $TTL directives. Zone file '(' and ')' to span multiple lines  are
       not allowed.

       $ORIGIN origin $TTL default_ttl

       ENTRY_BEGIN

       ;  first  give MATCH lines, that say what queries are matched ; by this entry.  ; 'opcode'
       makes the query match the opcode from the reply ; if you leave it out, any opcode  matches
       this  entry.  ; 'qtype' makes the query match the qtype from the reply ; 'qname' makes the
       query match the qname from the reply ; 'serial=1023' makes the query match if ixfr  serial
       is 1023.

       MATCH [opcode] [qtype] [qname] [serial=<value>] MATCH [UDP|TCP] MATCH ...

       ; Then the REPLY header is specified.

       REPLY opcode, rcode or flags.
               (opcode)  QUERY IQUERY STATUS NOTIFY UPDATE
               (rcode)   NOERROR FORMERR SERVFAIL NXDOMAIN NOTIMPL YXDOMAIN
                               YXRRSET NXRRSET NOTAUTH NOTZONE
               (flags)   QR AA TC RD CD RA AD

       REPLY ...

       ; any additional actions to do.

       ADJUST copy_id  ; 'copy_id' copies the ID from the query to the answer.

       ; 'sleep=10' sleeps for 10 seconds before giving the answer (TCP is open)

       ADJUST  [sleep=<num>]     ;  sleep  before giving any reply ADJUST [packet_sleep=<num>]  ;
       sleep before this packet in sequence

       SECTION QUESTION <RRs, one per line>    ; the RRcount is determined automatically.

       SECTION ANSWER <RRs, one per line>

       SECTION AUTHORITY <RRs, one per line>

       SECTION ADDITIONAL <RRs, one per line>

       EXTRA_PACKET            ; follow with SECTION, REPLY for more  packets.   HEX_ANSWER_BEGIN
       ; follow with hex data
                               ; this replaces any answer packet constructed
                               ; with the SECTION keywords (only SECTION QUERY
                               ; is used to match queries). If the data cannot
                               ; be parsed, ADJUST rules for the answer packet
                               ; are ignored

       HEX_ANSWER_END

       ENTRY_END

AUTHOR

       Written by the ldns team as an example for ldns usage, and for testing purposes.

REPORTING BUGS

       Report bugs to <ldns-team@nlnetlabs.nl>.

COPYRIGHT

       Copyright  (C) 2006-2008 NLnet Labs. This is free software. There is NO warranty; not even
       for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

                                           14 Dec 2006                             ldns-testns(1)