Distributing DNS load via DHCP

Blake Hudson blake at ispn.net
Fri Dec 16 16:21:22 UTC 2011

Jeff Wieland wrote the following on 12/16/2011 8:55 AM:
> We have a fairly large pool of address, and we'd like to distribute
> the DNS load on this pool between two DNS servers.
> Roughly, what I was thinking of doing is:
> group {
>    default-lease-time 21600;
>    max-lease-time 28800;
>    option domain-name "myuni.edu";
>    option domain-name-servers,;
>    subnet netmask {
>        authoritative;
>        option routers;
>        # Select the DNS server order by examining the last bit of
>        # the hardware address
>        if (suffix(binary-to-ascii(2, 8, ":", hardware), 1) = "1") {
>            option domain-name-servers,;
>        } else {
>            option domain-name-servers,;
>        }
>        pool {
>            deny dynamic bootp clients;
>            range;
>        }
>    }
> }
> Or would I be better off doing something with classes/subclasses?
> I'm concerned about the performance impact of the if statement.

How balanced does this need to be? You could use two pool statements, 
reversing the DNS server order by pool. I think this would help you 
troubleshoot and spot issues more quickly.

Also, you might find that these efforts are self defeating, as more 
client requests does not necessarily mean more load. The biggest gains 
in DNS performance come from the caching infrastructure, the bigger the 
cache is allowed to get the faster the server can respond to requests. 
Utilizing two servers, you may see worse response times, on average, due 
to cache expiries or simply the server the user is using may not have 
looked up a record before and has to perform a fully recursive lookup.


More information about the dhcp-users mailing list