Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ldns-testns(1)		     General Commands Manual		  ldns-testns(1)

NAME
     ldns-testns - simple fake nameserver tool

SYNOPSIS
     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 unparsable.

     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.

     -l IP address
	    Bind to the specified IPv4 or IPv6 address.

     -a IP address
	    IPv4 or IPv6 address to answer from  withthe  ADJUST  change_address
	    directory (see below). This can only be used in combination with the
	    -l option with an address of the same family.

     datafile
	    The data file is read on start up. It contains queries and the pack-
	    ets  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 mul-
     tiple lines are not allowed.

     $ORIGIN origin $TTL default_ttl

     ENTRY_BEGIN

     ;	first  give MATCH lines, that say what queries are matched ; by this en-
     try.  ; '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.

     ADJUST change_id ; answer with a different ID than the query had

     ADJUST change_port ; answer from a different port than the query was
			; sent to. UDP only (silently ignored on TCP)

     ADJUST change_address ; answer from a different address than the query
			   ; was sent to. UDP only (silently ignored on TCP)

     ADJUST [sleep=<num>] ; sleep before giving any reply
			  ; 'sleep=10' sleeps for 10 seconds before giving
			  ; the answer (TCP is open)

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

     SECTION QUESTION <RRs, one per line>    ; the RRcount is  determined  auto-
     matically.

     SECTION ANSWER <RRs, one per line>

     SECTION AUTHORITY <RRs, one per line>

     SECTION ADDITIONAL <RRs, one per line>

     HEX_EDNSDATA_BEGIN <Hex data of an EDNS option> HEX_EDNSDATA_END

     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 pur-
     poses.

REPORTING BUGS
     Report bugs to <dns-team@nlnetlabs.nl>.

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

				   14 Dec 2006			  ldns-testns(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ldns-testns&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help