PDNSD Reclaimed

!Update – In addition to the servers provided by my isp, I added Google’s and OpenNICs public dns servers. I found the links to these here.

I recently had some issues with my windows machines. At times I found that DNS lookups were taking too long – which is why I’d installed PDNSD on my Linux server in the first place.

And coincidentally a friend complained that she was unable to access “Microsoft.com” and other Microsoft websites. Odd eh? After some online research I had two probable causes, and the simplest fix was to disable the windows client DNS cache resolver. I looked up how to do it and from the command line (with admin privileges) the command is simple

sc stop dnscache

And that fixed the issue for her and for me after a restart!

After that I decided that since I hadn’t really worked on my PDNSD config for a long while, I needed to revisit it. After some poking around here’s the final version of my conf file. I’ve set the name servers of my provider here as and my server as  for confidentiality, so you’ll have to fix these before you’re able to use this file.

Here’s the reference I used to work on my pdnsd.conf.

/* Note: this file is overridden by automatic config files when
   /etc/default/pdnsd AUTO_MODE is set and that
   /usr/share/pdnsd/pdnsd-$AUTO_MODE.conf exists

global {
    server_ip =;  // Use eth0 here if you want to allow other 
                // machines on your network to query pdnsd.
    status_ctl = on;
//    query_method=tcp_udp;    // pdnsd must be compiled with tcp
                // query support for this to work.
    min_ttl=90m;       // Retain cached entries at least 15 minutes.
    max_ttl=1w;       // One week.
    neg_ttl=5;        // for bad queries
    timeout=0;        // Global timeout option (10 seconds).

        // Don't enable if you don't recurse yourself, can lead to problems
        // delegation_only="com","net";

// additional settings from archwiki https://wiki.archlinux.org/index.php/Pdnsd#Initial_preparation

// This section is meant for resolving from root servers.
server {
    label = "my-servers";
    ip =
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
//    ,
    timeout = 600;
    uptest = query;
    interval = 30m;      // Test every half hour.
    ping_timeout = 300;  // 30 seconds.
    purge_cache = off;
    exclude = .localdomain;
    policy = included;
    preset = off;

source {
//    serve_aliases=on;

rr {

neg {
    types=domain;   // This will also block xxx.doubleclick.net, etc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s