PDNSD HowTo – A DNS Caching Personal Server (Fedora 16)
PDNSD is a non authoritative caching DNS server. It maintains a disk
cache of the queries that your system performs and subsequent queries
will be faster from the cache. It is safe enough to be used on a personal
Unix/Linux system as a home Desktop or a Laptop.
Info about its history, current developer Paul Rombouts and other
technical info can be seen here:
http://www.phys.uu.nl/~rombouts/pdnsd.html.
Versions and OS:
OS: Fedora 16 x86_64
PDNSD: 1.2.8 RPM
Downloads:
Fedora 12,13,14,15,15. This should also work with RHEL and CentOS.
PDNSD i386 RPM
PDNSD_x86_84 RPM
Source tar:
PDNSD-1.2.8 SRC RPM
PDNSD-1.2.8 SRC TAR BALL
Debian:
PDNSD
Free BSD:if(typeof __ez_fad_position != ‘undefined’){__ez_fad_position(‘div-gpt-ad-howtoforge_com-medrectangle-4-0’)};
PDNSD
Gentoo:
PDNSD
Network Requirements
Your system supports the local interface ‘lo’ with a 127.0.0.1 ip. This
is a standard for all computers irrespective of what OS it is.if(typeof __ez_fad_position != ‘undefined’){__ez_fad_position(‘div-gpt-ad-howtoforge_com-box-4-0’)};
A queryable DNS server, e.g. your ISP’s DNS, OpenDNS, or your ADSL Router if it has got a DNS server.
Necessary firewall configuration that allows DNS query from your system to the forwarding or authoritative DNS server.
Login to start and stop network services.
Installation
The downloaded RPM’s can be installed with yum. login as root and use
the shell terminal and run the commands below. Yum should take care of
any missing dependencies.
# yum localinstall pdnsd-1.2.8-par_el5.x86_64.rpm
If you are using the source tar then:
# cd <path to the pdnsd source folder>
# ./configure
# make
# make install
The files are installed to /usr/local/bin and a pdnsd.conf is copied to the /etc folder.
Configuration
Your system’s DNS configuration and pdnsd.conf require amendments as below.
pdnsd.conf:
Use a editor like vi to edit the pdnsd.conf file Two sections need
changing for the server to serve DNS queries. Leave the remaining
sections as is.
global { perm_cache=16384; - this is in kB, increase it if you want more disk cacheing server_ip = 127.0.0.1; this is the local 'lo' network interface paranoid=on; A security feature to avoid cache poisoning }
Let other options be defaults.
server { ip = som.eip.add.ress; Put your ISP's DNS-server address here. uptest = query; Test if the network interface is active. The up DNS is queried with a DNS request interface=eth0; The interface connected to the network. }
Other options in the config file will be as is and changes are not required.
resolv.conf:
In different Unix / Linux flavours, different files and configurations are
used. resolv.conf is the most common dns setting in a Unix / Linux
system. Comment out all existing nameservers and add:
nameserver 127.0.0.1
Start The Service And Test
The installation has installed a service that needs to be started and used. Also set the service to start up a boot.
# chkconfig –levels 3456 pdnsd on
# service start pdnsd
To test:
# nslookup google.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: google.com
Address: 74.125.230.148
Name: google.com
Address: 74.125.230.144
Name: google.com
Address: 74.125.230.146
Name: google.com
Address: 74.125.230.147
Name: google.com
Address: 74.125.230.145
If there is an error check the service status, network connectivity, the up DNS server, pdnsd status with:
# pdnsd-ctl status
This is a great software for internal LAN, laptops and desktops where
the dns query takes a long time and speeds up internet browsing and
limits the network DNS traffic to a minimum.
I personally use it with my laptop. It’s very nice and has a minimal maintenance.
-Bellamkonda Sudhakar