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 192.168.1.5, 192.168.1.6;
>
>    subnet 192.168.128.0 netmask 255.255.240.0 {
>        authoritative;
>        option routers 192.168.128.1;
>        # 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 192.168.1.6, 192.168.1.5;
>        } else {
>            option domain-name-servers 192.168.1.5, 192.168.1.6;
>        }
>
>        pool {
>            deny dynamic bootp clients;
>            range 192.168.128.11 192.168.143.254;
>        }
>    }
> }
>
>
> 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.

--Blake





More information about the dhcp-users mailing list