tinydns-data(8)


NAME

   tinydns-data - data tool for tinydns

DESCRIPTION

   This   is   a  reference  page.   For  tutorial  information,  see  the
   instructions 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
   ignored.

   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
   omitted), 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
   timestamp 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 hexadecimal 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
   location; 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
   parent  servers  much  more  often  than they otherwise would, and will
   reduce the overall reliability of DNS.  You should omit ip if x has  IP
   addresses  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
   address 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
   serious.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
   specify  name  servers for some suffix of d.c.b.a.in-addr.arpa, if that
   domain 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
   button.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
   button.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
   address 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
   pointing 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
   wildcards.

   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.
   hostmaster.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.
   hostmaster.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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.