Provided by: pdnsd_1.2.9a-par-2_amd64 bug


       pdnsd - dns proxy daemon


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


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


              -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.   Default   is

              -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 addresses. Must be a valid IPv6
                     address. Default is ::ffff:

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

                     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 using TCP if the
                     UDP reply was truncated (i.e. the tc bit is set).   This  is  the  behaviour
                     recommended by the DNS standards.

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


       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  modifying

              2.  Tell  pdnsd  to  use  an  authentic source for DNS records, by including the IP
              addresses of  one  or  more  DNS  servers,  usually  your  ISP's  DNS  servers,  in

       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 /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 network instead of 127.0.0.X.

       To   tell   pdnsd  where  to  get  DNS  information  from,  add  the  following  lines  in

              server {
                      label= "myisp";

       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 /etc/pdnsd.conf.sample or the pdnsd.conf  in  the
       documentation  directory.  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 connection/account.

       If you use multiple ISPs, you should tell pdnsd which DNS servers have become 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 option 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


       /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 /etc/pdnsd.conf.sample.


       /var/cache/pdnsd/pdnsd.status  is  the status control socket, which must be enabled before
       you can use pdnsd-ctl.

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


       /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


       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.


       pdnsd should comply with RFCs 1034 and 1035. As of version 1.0.0, RFC compliance 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  optional,
       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  standard,  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)


       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.


       pdnsd  was  originally written by Thomas Moestl, <>, ⟨⟩ and was extensively
       revised by Paul A.  Rombouts  <>  ⟨⟩  (for  versions  1.1.8b1-par  and

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

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

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


       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.