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  an-
       swers 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 op-
	      tion 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 en-
       tered 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 au-
       tomatically.

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

REPORTING BUGS
       Report bugs to <dns-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 PUR-
       POSE.

				  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+14.3.quarterly>

home | help