How to install dnsperf on RHEL 6/Centos 6 and use this to test DNS server ?
In this article, we will see how to install dnsperf tool on RHEL/CentOS 6.
And how to use it to test DNS server performance.
1. Download the RPM package.
[root@ngelinux001 ~]# wget https://www.dns-oarc.net/files/dnsperf/2.1.0.0/dnsperf-2.1.0.0-1-rhel-6-x86_64.tar.gz --no-check-certificate --2022-06-03 11:41:26-- https://www.dns-oarc.net/files/dnsperf/2.1.0.0/dnsperf-2.1.0.0-1-rhel-6-x86_64.tar.gz Resolving www.dns-oarc.net... 64.191.0.198, 2620:ff:c000::198 Connecting to www.dns-oarc.net|64.191.0.198|:443... connected. WARNING: cannot verify www.dns-oarc.net’s certificate, issued by “/C=US/O=Let's Encrypt/CN=R3”: Issued certificate has expired. HTTP request sent, awaiting response... 200 OK Length: 1612628 (1.5M) [application/x-gzip] Saving to: “dnsperf-2.1.0.0-1-rhel-6-x86_64.tar.gz” 100%[======================================================================================>] 1,612,628 649K/s in 2.4s 2022-06-03 11:41:30 (649 KB/s) - “dnsperf-2.1.0.0-1-rhel-6-x86_64.tar.gz” saved [1612628/1612628]
2. Untar the rpm package.
[root@ngelinux001 ~]# tar -xvf dnsperf-2.1.0.0-1-rhel-6-x86_64.tar.gz dnsperf-2.1.0.0-1/ dnsperf-2.1.0.0-1/./INSTALL dnsperf-2.1.0.0-1/./RELEASE_NOTES dnsperf-2.1.0.0-1/./dnsperf-2.1.0.0-1.el6.x86_64.rpm
3. Install the package now.
[root@ngelinux001 ~]# cd dnsperf-2.1.0.0-1
[root@ngelinux001 dnsperf-2.1.0.0-1]# ls -ltr
total 1588
-r--r--r-- 1 root root    6648 Dec 16  2015 RELEASE_NOTES
-r--r--r-- 1 root root    1293 Dec 16  2015 INSTALL
-r--r--r-- 1 root root 1611344 Dec 16  2015 dnsperf-2.1.0.0-1.el6.x86_64.rpm
[root@ngelinux001 dnsperf-2.1.0.0-1]# yum install ./dnsperf-2.1.0.0-1.el6.x86_64.rpm
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id, refresh-packagekit, security, subscription-manager,
              : tmprepo, verify, versionlock
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
Setting up Install Process
Examining ./dnsperf-2.1.0.0-1.el6.x86_64.rpm: dnsperf-2.1.0.0-1.el6.x86_64
Marking ./dnsperf-2.1.0.0-1.el6.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package dnsperf.x86_64 0:2.1.0.0-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================
 Package                Arch                  Version                        Repository                                    Size
================================================================================================================================
Installing:
 dnsperf                x86_64                2.1.0.0-1.el6                  /dnsperf-2.1.0.0-1.el6.x86_64                4.5 M
Transaction Summary
================================================================================================================================
Install       1 Package(s)
Total size: 4.5 M
Installed size: 4.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : dnsperf-2.1.0.0-1.el6.x86_64                                                                                 1/1
  Verifying  : dnsperf-2.1.0.0-1.el6.x86_64                                                                                 1/1
Installed:
  dnsperf.x86_64 0:2.1.0.0-1.el6
Complete!
[root@ngelinux001 dnsperf-2.1.0.0-1]#
4. Run the tool to test if its working.
[root@ngelinux001 dnsperf-2.1.0.0-1]# /usr/local/nom/bin/dnsperf DNS Performance Testing Tool Nominum Version 2.1.0.0 [Status] Command line: dnsperf [Status] Sending queries (to 127.0.0.1) [Status] Started at: Fri Jun 3 11:43:20 2022 [Status] Stopping after 1 run through file ^C[Status] Testing complete (interruption) Statistics: Queries sent: 0 Queries completed: 0 (0.00%) Queries lost: 0 (0.00%) Response codes: Average packet size: request 0, response 0 Run time (s): 6.035052 Queries per second: 0.000000 Average Latency (s): 0.000000 (min 0.000000, max 0.000000) [root@ngelinux001 dnsperf-2.1.0.0-1]#
5. Command: Sends 1000 queries in 60 seconds to server dnsserver1.
[root@ngelinux001 ~]# dnsperf -s dnsserver1 -d ./queryfile -l 60 -c 1 -Q 1000 DNS Performance Testing Tool Nominum Version 2.1.0.0 [Status] Command line: dnsperf -s dnsserver1 -d ./queryfile -l 60 -c 1 -Q 1000 [Status] Sending queries (to 10.207.134.61) [Status] Started at: Fri Jun 3 11:48:05 2022 [Status] Stopping after 60.000000 seconds [Status] Testing complete (time limit) Statistics: Queries sent: 23566 Queries completed: 23566 (100.00%) Queries lost: 0 (0.00%) Response codes: NOERROR 23566 (100.00%) Average packet size: request 28, response 292 Run time (s): 60.253350 Queries per second: 391.115183 Average Latency (s): 0.254979 (min 0.248618, max 0.273378) Latency StdDev (s): 0.001762 [root@ngelinux001 ~]# ====================== Corresponding DNS server ================= [root@dnsserver1 log]# pwd /var/named/chroot/var/log [root@dnsserver1 log]# tail -f bind.log 02-Jun-2022 23:19:06.054 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) 02-Jun-2022 23:19:06.059 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) 02-Jun-2022 23:19:06.063 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) 02-Jun-2022 23:19:06.063 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) 02-Jun-2022 23:19:06.063 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) 02-Jun-2022 23:19:06.068 queries: info: client @0x7fea0c00f7b0 172.23.90.98#34932 (google.com): query: google.com IN A + (10.207.134.61) [root@ngelinux001 ~]# cat queryfile google.com A [root@ngelinux001 ~]#
So we have tested the DNS performance and its respond time for 60 seconds test.
