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

FreeBSD Manual Pages

  
 
  

home | help
tinydns-data(8)		    System Manager's Manual	       tinydns-data(8)

NAME
       tinydns-data - data tool	for tinydns

DESCRIPTION
       This  is	 a reference page.  For	tutorial information, see the instruc-
       tions for
       running a DNS server (http://cr.yp.to/djbdns/run-server.html).

       tinydns-data reads local	DNS information	from a file named data in  the
       current directory.  It creates data.cdb in a binary format designed for
       fast access by tinydns(8).  It may also create some  other  files  with
       names beginning with data.

       tinydns-data  updates  data.cdb	atomically,  so	 you can use it	safely
       while tinydns(8)	is running.  If	anything goes wrong with the  creation
       of data.cdb, tinydns-data stops and leaves the old data.cdb in place.

Data format
       The  DNS	 information  in data is a series of lines.  There are several
       types of	lines, as shown	below.

       Each line starts	with a special character and continues with  a	series
       of  colon-separated  fields.   In some cases the	fields may be omitted;
       however,	all colons must	be included except at the  end	of  the	 line.
       Spaces  and tabs	at the end of a	line are ignored.  Blank lines are ig-
       nored.

       Each line contains a ttl	(``time	to live'') specifying  the  number  of
       seconds	that  the line's DNS records may be cached.  Beware that cache
       times below 300 seconds will be treated as 300 by some clients, and  NS
       cache  times  below  2 seconds can cause	lookup failures.  You may omit
       ttl; tinydns-data will use default cache	times, carefully  selected  to
       work well in normal situations.

       You  may	include	a timestamp on each line.  If ttl is nonzero (or omit-
       ted), the timestamp is a	starting time for the information in the line;
       the  line  will be ignored before that time.  If	ttl is zero, the time-
       stamp is	an ending time (``time to die'') for the  information  in  the
       line; tinydns(8)	dynamically adjusts ttl	so that	the line's DNS records
       are not cached for more than a few seconds past	the  ending  time.   A
       timestamp is an external	TAI64 timestamp, printed as 16 lowercase hexa-
       decimal characters.  For	example, the lines

       +www.heaven.af.mil:1.2.3.4:0:4000000038af1379
       +www.heaven.af.mil:1.2.3.7::4000000038af1379

       specify	that  www.heaven.af.mil	 will  have address 1.2.3.4 until time
       4000000038af1379	(2000-02-19 22:04:31 UTC) and will then	switch	to  IP
       address 1.2.3.7.

       For  versions 1.04 and above: You may include a client location on each
       line.  The line is ignored for clients outside that  location.	Client
       locations are specified by % lines:

       %lo:ipprefix

       means  that IP addresses	starting with ipprefix are in location lo.  lo
       is a sequence of	one or two ASCII letters.  A client is in only one lo-
       cation; longer prefixes override	shorter	prefixes.  For example,

	 %in:192.168
	 %ex
	 +jupiter.heaven.af.mil:192.168.1.2:::in
	 +jupiter.heaven.af.mil:1.2.3.4:::ex

       specifies   that	 jupiter.heaven.af.mil	has  address  192.168.1.2  for
       clients in the 192.168.*	 network  and  address	1.2.3.4	 for  everyone
       else.

Common data lines
       .fqdn:ip:x:ttl:timestamp:lo

       Name server for our domain fqdn.

       tinydns-data creates

	      an  NS  (``name  server'')  record  showing  x.ns.fqdn as	a name
	      server for fqdn;

	      an A (``address'') record	 showing  ip  as  the  IP  address  of
	      x.ns.fqdn; and

	      an   SOA	(``start  of  authority'')  record  for	 fqdn  listing
	      x.ns.fqdn	as the primary name server and hostmaster@fqdn as  the
	      contact address.

       You  may	 have  several name servers for	one domain, with a different x
       for each	server.

       tinydns(8) will return only one SOA record per domain.

       If x contains a dot then	tinydns-data will use x	 as  the  server  name
       rather than x.ns.fqdn.  This feature is provided	only for compatibility
       reasons;	names not ending with fqdn will	force clients to contact  par-
       ent  servers much more often than they otherwise	would, and will	reduce
       the overall reliability of DNS.	You should omit	ip if  x  has  IP  ad-
       dresses	assigned  elsewhere  in	 data; in this case, tinydns-data will
       omit the	A record.

       Examples:

	 .panic.mil:1.8.7.55:a

       creates an NS record  showing  a.ns.panic.mil  as  a  name  server  for
       panic.mil,   an	A  record  showing  1.8.7.55  as  the  IP  address  of
       a.ns.panic.mil, and an SOA record for panic.mil.

	 .panic.mil:1.8.7.56:dns2.panic.mil

       creates an NS record  showing  dns2.panic.mil  as  a  name  server  for
       panic.mil,   an	A  record  showing  1.8.7.56  as  the  IP  address  of
       dns2.panic.mil, and an SOA record for panic.mil.

	 .panic.mil::a.ns.heaven.af.mil

       creates an NS record showing a.ns.heaven.af.mil as a  name  server  for
       panic.mil, and an SOA record for	panic.mil.

       &fqdn:ip:x:ttl:timestamp:lo

       Name server for domain fqdn.

       tinydns-data creates

	      an NS record showing x.ns.fqdn as	a name server for fqdn and

	      an A record showing ip as	the IP address of x.ns.fqdn.

       If x contains a dot then	it is treated specially; see above.

       You  may	 have  several name servers for	one domain, with a different x
       for each	server.

       Normally	_ is used for  domains	delegated  by  this  server  to	 child
       servers,	while .	 is used for domains delegated to this server.

       Examples:

	 &serious.panic.mil:1.8.248.6:a

       creates	an  NS	record showing a.ns.serious.panic.mil as a name	server
       for serious.panic.mil, and an A record showing 1.8.248.6	as the IP  ad-
       dress of	a.ns.serious.panic.mil.

	 &serious.panic.mil:1.8.248.7:ns7.panic.mil

       creates	an  NS record showing ns7.panic.mil as a name server for seri-
       ous.panic.mil, and an A record showing 1.8.248.7	as the IP  address  of
       ns7.panic.mil.

       =fqdn:ip:ttl:timestamp:lo

       Host fqdn with IP address ip.

       tinydns-data creates

	      an A record showing ip as	the IP address of fqdn and

	      a	  PTR  (``pointer'')  record  showing  fqdn  as	 the  name  of
	      d.c.b.a.in-addr.arpa if ip is a.b.c.d.

       Remember	to specify name	servers	for some  suffix  of  fqdn;  otherwise
       tinydns(8)  will	 not  respond to queries about fqdn.  The same comment
       applies to other	records	described below.  Similarly, remember to spec-
       ify  name  servers for some suffix of d.c.b.a.in-addr.arpa, if that do-
       main has	been delegated to you.

       Example:

	 =button.panic.mil:1.8.7.108

       creates an A record  showing  1.8.7.108	as  the	 IP  address  of  but-
       ton.panic.mil, and a PTR	record showing button.panic.mil	as the name of
       108.7.8.1.in-addr.arpa.

       +fqdn:ip:ttl:timestamp:lo

       Alias fqdn with IP address ip.  This is just like  =fqdn:ip:ttl	except
       that tinydns-data does not create the PTR record.

       For  versions 1.04 and above: tinydns(8)	returns	addresses (from	+ or =
       or @ or .  or _ lines) in a random order	in  the	 answer	 section.   If
       there are more than 8 records, it returns a random set of 8.

       Example:

	 +button.panic.mil:1.8.7.109

       creates	an  A  record showing 1.8.7.109	as another IP address for but-
       ton.panic.mil.

       @fqdn:ip:x:dist:ttl:timestamp:lo

       Mail exchanger for fqdn.

       tinydns-data creates

	      an MX (``mail exchanger'') record	showing	x.mx.fqdn  as  a  mail
	      exchanger	for fqdn at distance dist and

	      an A record showing ip as	the IP address of x.mx.fqdn.

       You may omit dist; the default distance is 0.

       If x contains a dot then	it is treated specially; see above.

       You may create several MX records for fqdn, with	a different x for each
       server.	Make sure to arrange for the SMTP server on each IP address to
       accept mail for fqdn.

       Example:

	 @panic.mil:1.8.7.88:mail.panic.mil

       creates	an  MX	record	showing	mail.panic.mil as a mail exchanger for
       panic.mil at distance 0,	and an A record	showing	1.8.7.88 as the	IP ad-
       dress of	mail.panic.mil.

       #comment

       Comment line. The line is ignored.

Uncommon data lines
       -fqdn:s:ttl:timestamp:lo

       For versions 1.04 and above: This type of line is used by programs that
       automatically edit + lines in data to temporarily exclude addresses  of
       overloaded or dead machines.  The line is ignored.

       'fqdn:s:ttl:timestamp:lo

       TXT  (``text'') record for fqdn.	 tinydns-data creates a	TXT record for
       fqdn containing the string s.  You may use octal	 nnn codes to  include
       arbitrary bytes inside s; for example,  072 is a	colon.

       ^fqdn:p:ttl:timestamp:lo

       PTR record for fqdn.  tinydns-data creates a PTR	record for fqdn	point-
       ing to the domain name p.

       Cfqdn:p:ttl:timestamp:lo

       CNAME (``canonical name'') record for  fqdn.   tinydns-data  creates  a
       CNAME record for	fqdn pointing to the domain name p.

       Don't use Cfqdn if there	are any	other records for fqdn Don't use Cfqdn
       for common aliases; use +fqdn instead.	Remember  the  wise  words  of
       Inigo  Montoya:	``You  keep  using CNAME records.  I do	not think they
       mean what you think they	mean.''

       Zfqdn:mname:rname:ser:ref:ret:exp:min:ttl:timestamp:lo

       SOA record for fqdn showing mname as the	 primary  name	server,	 rname
       (with  the  first .  converted to @) as the contact address, ser	as the
       serial number, ref as the refresh time, ret as the retry	time,  exp  as
       the  expire time, and min as the	minimum	time.  ser, ref, ret, exp, and
       min may be omitted; they	default	 to,  respectively,  the  modification
       time  of	 the  data file, 16384 seconds,	2048 seconds, 1048576 seconds,
       and 2560	seconds.

       :fqdn:n:rdata:ttl:timestamp:lo

       Generic record for fqdn.	 tinydns-data creates a	record of type	n  for
       fqdn  showing rdata.  n must be an integer between 1 and	65535; it must
       not be 2	(NS), 5	(CNAME), 6 (SOA), 12 (PTR), 15 (MX),  or  252  (AXFR).
       The  proper format of rdata depends on n.  You may use octal  nnn codes
       to include arbitrary bytes inside rdata.

Wildcards
       tinydns supports	wildcards of the form *.fqdn.  Information for	*.fqdn
       is  provided  for  every	name ending with .fqdn,	except names that have
       their own records and names that	are covered  by	 more  specific	 wild-
       cards.

       For example, the	lines

	 +pink.floyd.u.heaven.af.mil:1.2.3.4
	 +*.u.heaven.af.mil:1.2.3.200

       have the	same effect as

	 +pink.floyd.u.heaven.af.mil:1.2.3.4
	 +joe.u.heaven.af.mil:1.2.3.200
	 +bill.u.heaven.af.mil:1.2.3.200
	 +floyd.u.heaven.af.mil:1.2.3.200
	 +ishtar.u.heaven.af.mil:1.2.3.200
	 +joe.bob.u.heaven.af.mil:1.2.3.200
	 +sally.floyd.u.heaven.af.mil:1.2.3.200
	 +post.pink.floyd.u.heaven.af.mil:1.2.3.200

       and so on.

       As another example, the lines

	 +pink.floyd.u.heaven.af.mil:1.2.3.4
	 @*.u.heaven.af.mil::mail.heaven.af.mil

       have the	same effect as

	 +pink.floyd.u.heaven.af.mil:1.2.3.4
	 @joe.u.heaven.af.mil::mail.heaven.af.mil
	 @bill.u.heaven.af.mil::mail.heaven.af.mil
	 @floyd.u.heaven.af.mil::mail.heaven.af.mil
	 @ishtar.u.heaven.af.mil::mail.heaven.af.mil
	 @joe.bob.u.heaven.af.mil::mail.heaven.af.mil
	 @sally.floyd.u.heaven.af.mil::mail.heaven.af.mil
	 @post.pink.floyd.u.heaven.af.mil::mail.heaven.af.mil

       and   so	  on.	 Notice	  that	 the   wildcard	  does	not  apply  to
       pink.floyd.u.heaven.af.mil, because that	name has its own records.

A typical data file:
	 =lion.heaven.af.mil:1.2.3.4
	 @heaven.af.mil:1.2.3.4
	 @3.2.1.in-addr.arpa:1.2.3.4

	 =tiger.heaven.af.mil:1.2.3.5
	 .heaven.af.mil:1.2.3.5:a
	 .3.2.1.in-addr.arpa:1.2.3.5:a

	 =bear.heaven.af.mil:1.2.3.6
	 .heaven.af.mil:1.2.3.6:b
	 .3.2.1.in-addr.arpa:1.2.3.6:b

	 =cheetah.heaven.af.mil:1.2.3.248
	 =panther.heaven.af.mil:1.2.3.249

       Here is the same	information in BIND  zone-file	format	with  the  two
       zones merged:

	 heaven.af.mil.	   2560	   IN	 SOA	a.ns.heaven.af.mil.   hostmas-
       ter.heaven.af.mil. ...
	 heaven.af.mil.	259200 IN NS a.ns.heaven.af.mil.
	 heaven.af.mil.	259200 IN NS b.ns.heaven.af.mil.
	 heaven.af.mil.	86400 IN MX mx.heaven.af.mil.

	 3.2.1.in-addr.arpa. 2560  IN  SOA  a.ns.3.2.1.in-addr.arpa.  hostmas-
       ter.3.2.1.in-addr.arpa. ...
	 3.2.1.in-addr.arpa. 259200 IN NS a.ns.3.2.1.in-addr.arpa.
	 3.2.1.in-addr.arpa. 259200 IN NS b.ns.3.2.1.in-addr.arpa.
	 3.2.1.in-addr.arpa. 86400 IN MX mx.3.2.1.in-addr.arpa.

	 4.3.2.1.in-addr.arpa. 86400 IN	PTR lion.heaven.af.mil.
	 lion.heaven.af.mil. 86400 IN A	1.2.3.4
	 mx.heaven.af.mil. 86400 IN A 1.2.3.4
	 mx.3.2.1.in-addr.arpa.	86400 IN A 1.2.3.4

	 5.3.2.1.in-addr.arpa. 86400 IN	PTR tiger.heaven.af.mil.
	 tiger.heaven.af.mil. 86400 IN A 1.2.3.5
	 a.ns.heaven.af.mil. 259200 IN A 1.2.3.5
	 a.ns.3.2.1.in-addr.arpa. 259200 IN A 1.2.3.5

	 6.3.2.1.in-addr.arpa. 86400 IN	PTR bear.heaven.af.mil.
	 bear.heaven.af.mil. 86400 IN A	1.2.3.6
	 b.ns.heaven.af.mil. 259200 IN A 1.2.3.6
	 b.ns.3.2.1.in-addr.arpa. 259200 IN A 1.2.3.6

	 248.3.2.1.in-addr.arpa. 86400 IN PTR cheetah.heaven.af.mil.
	 cheetah.heaven.af.mil.	86400 IN A 1.2.3.248

	 249.3.2.1.in-addr.arpa. 86400 IN PTR panther.heaven.af.mil.
	 panther.heaven.af.mil.	86400 IN A 1.2.3.249

Design notes
       The  data format	is very	easy for programs to edit, and reasonably easy
       for humans to edit, unlike the traditional zone-file format.

       tinydns-data could support a name wherever an IP	address	 is  required;
       it  would  look up the name in DNS and use the resulting	address.  This
       would reliably track changes in offsite IP addresses  if	 the  database
       were rebuilt periodically.

SEE ALSO
       tinydns(8)

       http://cr.yp.to/djbdns.html

							       tinydns-data(8)

NAME | DESCRIPTION | Data format | Common data lines | Uncommon data lines | Wildcards | A typical data file: | Design notes | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=tinydns-data&sektion=8&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help