DNS and DHCP performance testing tools

When there are Internet issues, the first thing we say at Ariadnex is there is something wrong with DNS servers. Maybe the DNS service is stopped, the domain name which is requested doesn’t exist or even the DNS server can't respond so many requests per second (RPS). Another important thing to take into account when there are Internet issues is to know if the user’s computer has an IP address. Maybe the user’s computer hasn’t requested an IP address, the DHCP service is stopped, there is no more free IP addresses to offer or even the DHCP server can’t offer so many leases per second (LPS).

We have at the office a book about DNS with more than 500 pages. This means the DNS service is a powerful service with lots of options and parameters. It’s important to know the DNS service can listen in 53/tcp port and 53/udp port as well. It’s important to know what means NXDOMAIN code and NOERROR code. It’s important to know what is an authoritative server, a master server and a slave server. It’s important to know what is an internal view and a external view. Therefore, it’s important to know many things to configure a DNS service properly.

If you have already configured a DNS server and you want to know how many requests per second (RPS) it can manage, you can use the DNSPerf tool to test the performance of the DNS Server. It is a DNS performance testing tool which can be downloaded from GitHub and it requires the BIND package. This tool is really easy to use. We have to set the DNS server which is going to be used, the datafile with the domains we want to request, the number of clients we want to simulate and the max queries we want to run.

DNSPerf example
DHCP is also a very important service in a user network. It is not so important in a server network because servers usually have static IP addresses configured. However, user’s computers usually have dynamic IP addresses configured. If a user’s computer doesn’t receive an IP address, we should look for the four way handshake. DISCOVER, OFFER, REQUEST and ACK are the packets we should look for with an sniffer tool such as Wireshark. In addition, we should also take into account whether there is a Relay DCHP configured and unicast and broadcast requests.

DHCP four way handshake
If you have already configured a DHCP server and you want to know how many lease per second (LPS) it can manage, you can use the PerfDHCP performance testing tool. It is really easy to install. If you have a Debian base computer, you just have to execute apt-get install kea-admin. As a result, perfdhcp should be installed. We’ll have to set the DHCP server which is going to be used, the network interface we are going to use, how many clients we are going to simulate, and how many LPS we want to run.

PerfDHCP example
To sum up, DNSPerf and PerfDHCP are two performance testing tools which help us to know if DNS and DHCP services are well configured and the performance fit our needs.

Have a nice day! Take care!