home | help
PDNSD(8)		 System Administration Commands 		PDNSD(8)

NAME
     pdnsd - dns proxy daemon

SYNOPSIS
     pdnsd  [-h]  [-V] [-s] [-d] [-g] [-t] [-p file] [-vn] [-mxx] [-c file] [-4]
     [-6] [-a]

     This man page is an extract of the documentation of pdnsd.   For  complete,
     current  documentation,  refer  to  the  HTML (or plain text) documentation
     (which you can find in the doc/ subdirectory of the source or in a standard
     documentation directory, typically /usr/share/doc/pdnsd/ if you are using a
     binary package).

DESCRIPTION
     pdnsd is a IPv6 capable proxy domain name server (DNS) which saves the con-
     tents of its DNS cache to the disk on exit.

OPTIONS
	    -4	   enables IPv4 support. IPv6 support is automatically	disabled
		   (should it be available). On by default.

	    -6	   enables  IPv6 support. IPv4 support is automatically disabled
		   (should it be available). Off by default.

	    -a	   With this option, pdnsd will try to detect  automatically  if
		   the system supports IPv6, and fall back to IPv4 otherwise.

	    -V	or  --version
		   Print version information and exit.

	    -c FILE  or  --config-file=FILE
		   specifies  that  configuration  is to be read from FILE.  De-
		   fault is ${prefix}/etc/pdnsd.conf.

	    -d	or  --daemon
		   Start pdnsd in daemon mode (as a background process).

	    -g	or  --debug
		   Print some debug messages on  the  console  or  to  the  file
		   pdnsd.debug in your cache directory (in daemon mode).

	    -h	or  --help
		   Print an option summary and exit.

	    -i PREFIX  or  --ipv4_6_prefix=PREFIX
		   specifies  the  prefix pdnsd uses (when running in IPv6 mode)
		   to map IPv4 addresses in the configuration file to  IPv6  ad-
		   dresses.   Must   be   a   valid  IPv6  address.  Default  is
		   ::ffff:0.0.0.0

	    -p FILE
		   writes the pid the server runs as to the specified  filename.
		   Works only in daemon mode.

	    --pdnsd-user
		   Print the user pdnsd will run as and exit.

	    -s	or  --status
		   enables  the status control socket. Either this option should
		   be passed to the command line  or  status_ctl=on;  should  be
		   specified  in the config file if you want to use pdnsd-ctl(8)
		   to control pdnsd at runtime.

	    -t	or  --tcp
		   enables the TCP server thread. pdnsd will then serve TCP  and
		   UDP queries.

	    -vn    sets  the verbosity of pdnsd. n is a numeric argument between
		   0 (normal operation) to 3 (many messages for debugging).

	    -mxx   sets the query method pdnsd uses. Possible values for xx are:

		   uo - pdnsd will use UDP only. This is the fastest method, and
		   should be supported by all name servers on the Internet.

		   to - pdnsd will use TCP only. TCP queries usually  take  more
		   time  than  UDP  queries, but are more secure against certain
		   attacks, where an attacker tries to guess your query  id  and
		   to send forged answers. TCP queries are not supported by some
		   name servers.

		   tu  - pdnsd will try to use TCP, and will fall back to UDP if
		   its connection is refused or times out.

		   ut - pdnsd will try to use UDP, and will repeat the query us-
		   ing TCP if the UDP reply was truncated (i.e. the  tc  bit  is
		   set).   This  is  the  behaviour recommended by the DNS stan-
		   dards.

	    Additionally, "no" can be prepended to the --status, --daemon, --de-
	    bug and --tcp options (e.g. --notcp) to reverse their effect.

USAGE
     pdnsd is usually run from a startup script. For pdnsd  to	work,  You  need
     to:-

	    1.	Tell your system to use pdnsd as the primary DNS server by modi-
	    fying /etc/resolv.conf.

	    2. Tell pdnsd to use an authentic source for DNS records, by includ-
	    ing the IP addresses of one or more DNS servers, usually your  ISP's
	    DNS servers, in ${prefix}/etc/pdnsd.conf.

     For this, put the following line in your /etc/resolv.conf

	    nameserver 127.0.0.X

     where  X  can  be any number. (I use 3). Comment out all other entries. You
     should put the same value in the  server_ip=  line  in  global  section  of
     ${prefix}/etc/pdnsd.conf.
     If  you  want to use pdnsd as the DNS server for a small local network, you
     should use the IP address or name of the interface connected to  this  net-
     work instead of 127.0.0.X.

     To tell pdnsd where to get DNS information from, add the following lines in
     ${prefix}/etc/pdnsd.conf:-

	    server {
		    label= "myisp";
		    ip=123.456.789.001,123.456.789.002;
		    proxy_only=on;
		    timeout=10;
	    }

     Note the opening and closing braces. Add more such server sections for each
     set  of  DNS  servers you want pdnsd to query.  Of course the configuration
     options shown here are just examples.  More examples can be found in ${pre-
     fix}/etc/pdnsd.conf.sample or the pdnsd.conf in  the  documentation  direc-
     tory.   See  the  pdnsd.conf(5)  man  page for all the possible options and
     their exact meaning.

     If you use a dial up connection, remember that ppp scripts usually  replace
     /etc/resolv.conf  when connection with the ISP is established.  You need to
     configure ppp (or whatever you use  to  establish	a  connection)	so  that
     /etc/resolv.conf  is  not	replaced every time a connection is established.
     Read the documentation for the scripts run when your network comes up.

     If you use pppconfig, specify `none' in the  `nameservers' option	 in  the
     `advanced' tab. If you use multiple ISPs, you should  do this for each con-
     nection/account.

     If  you use multiple ISPs, you should tell pdnsd which DNS servers have be-
     come available by calling pdnsd-ctl, the pdnsd control utility, in a script
     (e.g. /etc/ppp/ip-up when you use pppd) that is run when the connection  is
     established.  If the addresses of the DNS servers are obtained through some
     type  of  dynamic configuration protocol (e.g. pppd with the usepeerdns op-
     tion or a DHCP client), you can pass the DNS server addresses as  an  extra
     argument to pdnsd-ctl to configure pdnsd at run time.  See the pdnsd-ctl(8)
     man page for details.

FILES
     ${prefix}/etc/pdnsd.conf  is the pdnsd configuration file.  The file format
     and configuration options are described in the pdnsd.conf(5) man page.  You
     can find examples of almost all options in ${prefix}/etc/pdnsd.conf.sample.

     /var/db/pdnsd/pdnsd.cache

     /var/db/pdnsd/pdnsd.status  is the status control socket, which must be en-
     abled before you can use pdnsd-ctl.

     /etc/init.d/pdnsd (the name and location of the start-up script may be dif-
     ferent depending on your distribution.)

     /etc/resolv.conf

     /etc/defaults/pdnsd contains additional parameters or options which may  be
     passed  to  pdnsd	at  boot  time.  This  saves the hassle of fiddling with
     initscripts (not available on all distributions).

BUGS
     The verbosity option -vn presently does not seem to have much effect on the
     amount of debug output.
     Report any remaining bugs to the authors.

CONFORMING TO
     pdnsd should comply with RFCs 1034 and 1035. As of version 1.0.0, RFC  com-
     pliance  has  been  improved  and	pdnsd is now believed (or hoped?)  to be
     fully RFC compatible. It completely follows RFC 2181 (except for one  minor
     issue in the FreeBSD port, see the documentation).

     It  does  NOT  support the following features, of which most are marked op-
     tional, experimental or obsolete in these RFCs:

	    * Inverse queries

	    * Status queries

	    * Completion queries

	    * Namespaces other than IN (Internet)

	    * AXFR and IXFR queries (whole zone transfers); since pdnsd does not
	    maintain zones, that should not violate the standard

     The following record types, that are extensions to the original  DNS  stan-
     dard,  are  supported  if	given as options at compile time. (if you do not
     need them, you do not need to compile support for them into pdnsd and  save
     cache and executable space):

	    * RP (responsible person, RFC 1183)

	    * AFSDB (AFS database location, RFC 1183)

	    * X25 (X25 address, RFC 1183)

	    * ISDN (ISDN number/address, RFC 1183)

	    * RT (route through, RFC 1183)

	    * NSAP (Network Service Access Protocol address , RFC 1348)

	    * PX (X.400/RFC822 mapping information, RFC 1995)

	    * GPOS (geographic position, deprecated)

	    * AAAA (IPv6 address, RFC 1886)

	    * LOC (location, RFC 1876)

	    * EID (Nimrod EID)

	    * NIMLOC (Nimrod locator)

	    * SRV (service record, RFC 2782)

	    * ATMA (ATM address)

	    * NAPTR (URI mapping, RFC 2168)

	    * KX (key exchange, RFC 2230)

SEE ALSO
     pdnsd-ctl(8), pdnsd.conf(5), pppconfig(8), resolv.conf(5)

     More  documentation is available in the doc/ subdirectory of the source, or
     in /usr/share/doc/pdnsd/ if you are using a binary package.

AUTHORS
     pdnsd was originally written by Thomas Moestl, <tmoestl@gmx.net>,	and  was
     extensively  revised  by  Paul A. Rombouts <p.a.rombouts@home.nl> (for ver-
     sions 1.1.8b1-par and later).

     Several others have contributed to  pdnsd;  see  files  in  the  source  or
     /usr/share/doc/pdnsd/ directory.

     This man page was written by Mahesh T. Pai <paivakil@yahoo.co.in> using the
     documents	in  /usr/share/docs/pdnsd/ directory for Debian, but can be used
     on other distributions too.

     Last revised: 22 Jul 2007 by Paul A. Rombouts.

COPYRIGHT
     This man page is a part of the pdnsd package, and	may  be  distributed  in
     original or modified form under terms of the GNU General Public License, as
     published	by  the  Free Software Foundation; either version 3, or (at your
     option) any later version.

     You can find a copy of the GNU GPL in the file COPYING in the source or the
     /usr/share/common-licenses/ directory if you are using a Debian system.

pdnsd 1.2.9a-par		    Jul 2007				PDNSD(8)

home | help