Pdnsd is an open source software package for name resolution in the Domain Name System. Its name was chosen by Thomas Moestl, the original developer. Pdsnd is a sleek program that only about 0.8 megabytes of memory (RAM) occupied.

In addition to the server ( pdnsd ) program package includes a program to configure ( pdnsd - ctl) and complete documentation. Pdnsd is mainly a DNS proxy server with long-term cache function, since its cache is written to non-volatile memory (eg hard disk). Initially it was developed until 2002 by Thomas Moestl and is actively maintained since 2003 until today mainly by Paul Rombouts. The server applies as fully compatible DNS RFC.


Name Server

Name servers are servers for name resolution. The name server works pdnsd by first answers queries about domain names that are available in its own data cache. In this way accelerates pdnsd inquiries about FQDN of the PC or a mobile device such as laptop computers or embedded devices such as routers.


As software provide resolver between applications and name servers. A resolver receives the DNS request an application software, and calls them by name servers FQDN of certain name servers, it has the desired information is not in its own cache file.

Pdnsd also a DNS resolver (of English. Resolve to dissolve = ). As DNS Resolver he resolves inquiries about FQDN ( fully qualified domain names ) by tracing the corresponding domain name of the root zone (. ) From. These are DNS requests from application software that are not answerable from its own cache file forwarded to external DNS name server. It can be specified in the configuration file of pdnsd external DNS servers according to their own choice, for example, censored DNS server such as the Swiss Privacy Foundation (:)

Server { label = "alt -root -server "; root_server = on;    ip = " " / /. oss. parody   , " " / /. Gopher   , " " / /. Free. Geek. Indy. Null port = 110; } Positive responses received are answered and written to the internal long-term cache, usually on the hard disk of the computer system, the application software. Pdnsd allows simultaneous interrogation of multiple external DNS server so late responding or unreachable DNS server does not slow down the name resolution.


Pdnsd a DNS cache ( cache of Engl. = To cache, buffer ). As a DNS buffer (cache ) writes pdnsd the FQDN resolution requests to a data store (cache), normally the system disk. If the default cache size is exceeded, the oldest buffer entries are discarded, that is also happening with domain name entries, the Time to Live (TTL) has expired. Pdnsd maintains a negative cache that failed queries lists (negative caching ).

Configuration file ( pdnsd.conf )

Pdnsd can be set pdnsd.conf with a text editor and the configuration file. For this, the server must be stopped and restarted after setting change. With the software pdns - ctl ( pdnsd -control ), which is included in pdnsd software package, can be configured at runtime pdnsd well. All information about the configuration file can be downloaded from the project page.

The configuration file is divided into several sections:

Global {      perm_cache = 2048;      cache_dir = "/ var / cache / pdnsd ";      run_as = " pdnsd ";      status_ctl = on;      paranoid = on;      randomize_recs = on;      run_ipv4 = off; / / On for IPv4 support only              / / Off for IPv6 DNS server IPs      query_method = tcp_only;      tcp_qtimeout = 60; / / Timeout for tcp dns queries. 20 seconds      timeout = 65; / / Global timeout option ( 21 seconds ).      min_ttl = 900; / / Retain cached entries at least 15 minutes.      max_ttl = 604800; / / One week.      server_ip = " "; / / Use eth0 here if you want to allow other                / / Machines on your network to query pdnsd. } multiple server { } autopsies - Parallel query defined DNS servers by rank (see above) several rr { } autopsies - definition of local control resource records, such as - addr.arpa. and localhost. etc.. rr { name = localhost;      reverse = on;      a =;      owner = localhost;      soa = localhost, root.localhost, 42,86400,900,86400,86400; } several neg { } autopsies - blocking of Resource Records neg { name = bad.server.com; / / Badly behaved server you do not want to connect to.      types = A, AAAA; } multiple source { } autopsies - reading resource records from files source {      ttl = 86400;      owner = localhost;      serve_aliases = on;      file = " / etc / hosts "; } an include { } section - access to other configuration files license

Pdnsd is licensed under the GNU General Public License ( GPL).