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

FreeBSD Manual Pages

  
 
  

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  com-
       plete,  current	documentation, refer to	the HTML (or plain text) docu-
       mentation (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
       contents	of its DNS cache to the	disk on	exit.

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

	      -6     enables  IPv6 support. IPv4 support is automatically dis-
		     abled (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	other-
		     wise.

	      -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	${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  addresses. 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	 file-
		     name. 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  be-
		     tween   0	(normal	operation) to 3	(many messages for de-
		     bugging).

	      -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	Inter-
		     net.

		     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 ef-
	      fect.

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
	      modifying	/etc/resolv.conf.

	      2. Tell pdnsd to use an authentic	source for DNS records,	by in-
	      cluding  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 network 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 config-
       uration options shown here are just examples.   More  examples  can  be
       found in	${prefix}/etc/pdnsd.conf.sample	or the pdnsd.conf in the docu-
       mentation directory.  See the pdnsd.conf(5) man page for	all the	possi-
       ble options and their exact meaning.

       If  you use a dial up connection, remember that ppp scripts usually re-
       place /etc/resolv.conf when connection with  the	 ISP  is  established.
       You  need  to configure ppp (or whatever	you use	to establish a connec-
       tion) 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 ob-
       tained  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 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	${pre-
       fix}/etc/pdnsd.conf.sample.

       /var/db/pdnsd/pdnsd.cache

       /var/db/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/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
       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)

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 versions	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 Li-
       cense, 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pdnsd&sektion=8&manpath=FreeBSD+Ports+14.3.quarterly>

home | help