Scan whole internet domains, with speed of 3,50,000 domains per second

MASSDNS is a high performance specialized stub resolver (stub resolver means, a client can also be called as stub resolver built inside OS) capable of resolving 3,50,000 domain entries per second. This high performance is because the developers of this tool used custom stack based programming instead of using LDNS library of linux which contains function that simplifies DNS programming, as commented by ethical hacking researcher of International Institute of Cyber Security.  A MASSDNS is a tool which uses default recursive method for resolving domain names.

RECURSIVE‘ (A recursive resolver is a kind of query, in which the DNS server, who received your query will do all the job of fetching the answer in all possible ways and it sends back to you. During this process, the DNS server might also query other DNS server’s in the internet on your behalf, for the answer). We can also use non recursive method for resolving domain names.

NON RECURSIVE‘ (DNS Resolver already knows the answer, which is already stored in the cache)

Explainatory diagram for the resolving process
Explainatory diagram for the resolving process

INSTALLATION OF MASSDNS

Note : Using Kali Linux 2019, 64 bit  for installation the MASSDNS tool .

git clone massdns
git clone massdns
  • After cloning this repository, change the directory to massdns folder.
  • Type, cd massdns
The underlinded portion signifie’s that you are in the massdns folder .
The underlinded portion signifie’s that you are in the massdns folder .
  • Now, as we know you had download the tool but still you can’t install it by typing massdns because we downloaded tool contains a file called make file which needs to be executed as it has some sources which needs to be compiled in order to launch or build our tool.
  • Type make to build your tool .
make to build massdns
make to build massdns
  • Type make install to install your tool.
make install massdns
make install massdns
  • After performing all the above given steps , your tool is now ready to  run and now we can easily run it by typing the command massdns
     # massdns
 Usage: massdns [options] [domainlist]
   -b  --bindto           Bind to IP address and port. (Default: 0.0.0.0:0)
       --busy-poll        Use busy-wait polling instead of epoll.
   -c  --resolve-count    Number of resolves for a name before giving up. (Default: 50)
       --drop-group       Group to drop privileges to when running as root. (Default: nogroup)
       --drop-user        User to drop privileges to when running as root. (Default: nobody)
       --flush            Flush the output file whenever a response was received.
   -h  --help             Show this help.
   -i  --interval         Interval in milliseconds to wait between multiple resolves of the same
                          domain. (Default: 500)
   -l  --error-log        Error log file path. (Default: /dev/stderr)
       --norecurse        Use non-recursive queries. Useful for DNS cache snooping.
   -o  --output           Flags for output formatting.
       --predictable      Use resolvers incrementally. Useful for resolver tests.
       --processes        Number of processes to be used for resolving. (Default: 1)
   -q  --quiet            Quiet mode.
       --rcvbuf           Size of the receive buffer in bytes.
       --retry            Unacceptable DNS response codes. (Default: REFUSED)
   -r  --resolvers        Text file containing DNS resolvers.
       --root             Do not drop privileges when running as root. Not recommended.
   -s  --hashmap-size     Number of concurrent lookups. (Default: 10000)
       --sndbuf           Size of the send buffer in bytes.
       --sticky           Do not switch the resolver when retrying.
       --socket-count     Socket count per process. (Default: 1)
   -t  --type             Record type to be resolved. (Default: A)
       --verify-ip        Verify IP addresses of incoming replies.
   -w  --outfile          Write to the specified output file instead of standard output.
 Output flags:
   S - simple text output
   F - full text output
   B - binary output
   J - ndjson output
 Advanced flags for the simple output mode:
   d - Include records from the additional section.
   i - Indent any reply record.
   l - Separate replies using a line feed.
   m - Only output reply records that match the question name.
   n - Include records from the answer section.
   q - Print the question.
   r - Prepend resolver IP address, Unix timestamp and return code to the question line.
   s - Separate packet sections using a line feed.
   t - Include TTL and record class within the output.
   u - Include records from the authority section.
  • Now let’s start using this tool.
  • Massdns tool is developed for bunch of domains which will be resolved in go. So we will create a file abc.txt and mention some domain names you want to resolve. We mentioned 2 domains in a abc.txt.
www.hackthebox.eu  
www.hackerearth.com
  • To create a file naming abc.txt , type the command nano abc.txt .
  • Now insert the two urls in the abc.txt file and save the content by Ctrl+O , then press enter and  to exit from the file Ctrl+X.
content of abc.txt
content of abc.txt
  • Now according to the syntax of the usage defined by the developer , we had prepared our domain list and we already have the text file resolvers.txt built in the package by the developer.
  • We can see the contents of the file resolvers.txt by first changing the directory to massdns and then typing this command #cat lists/resolvers.txt . This will display the all the resolver servers that are in the file resolvers.txt .
  • Now let us resolve the two domains that we have in our file abc.txt
  • For this type the command massdns –r lists/resolvers.txt abc.txt .
  • After running we will get the records like name server , canonical name , A or AAAA records and some additional records .
massdns -r lists/resolvers.txt abc.txt
 Privileges have been dropped to "nobody:nogroup" for security reasons.
 Processed queries: 0
 Received packets: 0
 Progress: 0.00% (00 h 00 min 00 sec / 00 h 00 min 00 sec)
 Current incoming rate: 0 pps, average: 0 pps
 Current success rate: 0 pps, average: 0 pps
 Finished total: 0, success: 0 (0.00%)
 Mismatched domains: 0 (0.00%), IDs: 0 (0.00%)
 Failures: 0: 0.00%, 1: 0.00%, 2: 0.00%, 3: 0.00%, 4: 0.00%, 5: 0.00%, 6: 0.00%, 7: 0.00%, 8: 0.00%, 9: 0.00%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 0.00%, 21: 0.00%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |            0 (  0.00%) |            0 (  0.00%)
 NXDOMAIN: |            0 (  0.00%) |            0 (  0.00%)
 SERVFAIL: |            0 (  0.00%) |            0 (  0.00%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
 ;; Server: 206.248.95.194:53
 ;; Size: 285
 ;; Unix time: 1582114214
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54368
 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4
 ;; QUESTION SECTION:
 www.hackerearth.com. IN A
 ;; ANSWER SECTION:
 www.hackerearth.com. 60 IN A 52.76.81.127
 www.hackerearth.com. 60 IN A 54.169.98.191
 www.hackerearth.com. 60 IN A 52.76.244.185
 ;; AUTHORITY SECTION:
 hackerearth.com. 1786 IN NS ns-989.awsdns-59.net.
 hackerearth.com. 1786 IN NS ns-73.awsdns-09.com.
 hackerearth.com. 1786 IN NS ns-1300.awsdns-34.org.
 hackerearth.com. 1786 IN NS ns-1709.awsdns-21.co.uk.
 ;; ADDITIONAL SECTION:
 ns-73.awsdns-09.com. 4443 IN A 205.251.192.73
 ns-989.awsdns-59.net. 2264 IN A 205.251.195.221
 ns-1300.awsdns-34.org. 9582 IN A 205.251.197.20
 ns-1709.awsdns-21.co.uk. 8646 IN A 205.251.198.173
 ;; Server: 212.94.32.32:53
 ;; Size: 90
 ;; Unix time: 1582114214
 ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13441
 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
 ;; QUESTION SECTION:
 www.hackethebox.eu. IN A
 ;; AUTHORITY SECTION:
 eu. 600 IN SOA nl.dns.eu. tech.eurid.eu. 1060075683 3600 1800 3600000 600
 Processed queries: 2
 Received packets: 2
 Progress: 100.00% (00 h 00 min 00 sec / 00 h 00 min 00 sec)
 Current incoming rate: 12 pps, average: 12 pps
 Current success rate: 12 pps, average: 12 pps
 Finished total: 2, success: 2 (100.00%)
 Mismatched domains: 0 (0.00%), IDs: 0 (0.00%)
 Failures: 0: 100.00%, 1: 0.00%, 2: 0.00%, 3: 0.00%, 4: 0.00%, 5: 0.00%, 6: 0.00%, 7: 0.00%, 8: 0.00%, 9: 0.00%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 0.00%, 21: 0.00%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |            1 ( 50.00%) |            1 ( 50.00%)
 NXDOMAIN: |            1 ( 50.00%) |            1 ( 50.00%)
 SERVFAIL: |            0 (  0.00%) |            0 (  0.00%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
  • Similarly , if you want a particular record like A , AAAA , NS , MX , you can specify the record by  using this command massdns –r lists/resolvers.txt –t NS abc.txt . This command is used for retrieving the name server (NS) of the given domain name .
  • You can also use quiet mode by running, massdns –r lists/resolvers.txt –-quiet abc.txt
# massdns -r lists/resolvers.txt --quiet  abc.txt
 ;; Server: 35.8.2.41:53
 ;; Size: 90
 ;; Unix time: 1582113398
 ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18688
 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
 ;; QUESTION SECTION:
 www.hackethebox.eu. IN A
 ;; AUTHORITY SECTION:
 eu. 370 IN SOA nl.dns.eu. tech.eurid.eu. 1060074961 3600 1800 3600000 600
 ;; Server: 212.1.118.3:53
 ;; Size: 90
 ;; Unix time: 1582113398
 ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27638
 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
 ;; QUESTION SECTION:
 www.hackerearth.eu. IN A
 ;; AUTHORITY SECTION:
 eu. 370 IN SOA nl.dns.eu. tech.eurid.eu. 1060074961 3600 1800 3600000 600
  • If you want to save the results in a file, then we use this command massdns –r lists/resolvers.txt –t NS –w xyz.txt abc.txt
  • This will save the results in xyz.txt and you can view the contents of this file by using command cat xyz.txt

MASSDNS VS NSLOOKUP

  • We can decide the number of concurrent lookups here but we can’t  do in windows CMD.
  • In windows NSLOOKUP is a command which we use to find the DNS information of any website But here we can have several lookups at the same time.
  • We can have concurrent lookups by typing the command massdns –r lists/resolvers.txt –hashmapsize abc.txt
  • By default it has setting to show 1000 lookups at a time but it has limit ranging between 1 to 18446744073709551615
  • But windows command shell we can’t see more than one lookup.
  • If we want to do the process  non recursively , we can do it by using command massdns –r lists/resolvers.txt –-norecurse abc.txt
  • we can hide the whole backend process and can see the results of  the parameter –-quiet by the above command .
  • We can perform many tasks and add flags according to your needs

WHY YOU SHOULD USE THIS TOOL ?

As commented by ethical hacking researcher of International Institute of Cyber Security, there are many tools for resolving DNS in the market but we choose this tool (all test are conducted in open environment):

  • The time latency as compared to the other tools is very less approximately 1.5-2% of the the time taken by the other tools.
  • Moreover, this tool has a list of resolvers . The list of resolvers in this tool is making resolving process fast by reducing the no. of hops and possibly allowing option you to have a shortest path for destination or in simple language you can say that the query will be less recursive .

MASSDNS VS DIG

Here is the representation of a small experiment with the another tool (dig)

  • Dig is also a command line tool for querying the Domain Name System (DNS).
  • Firstly we took bunch of 24 domains which were passed through both tools.
  • File with domains is created, named iot.txt for 24 domains .
webmagnat.ro
 nickelfreesolutions.com
 scheepvaarttelefoongids.nl
 tursan.net
 plannersanonymous.com
 doing.fr
 saltstack.com
 deconsquad.com
 migom.com
 tjprc.org
 worklife.dk
 inno-make.com
 food-hub.org
 bikemastertool.com
 betenbewegen.de
 vk.me
 twotigersports.com
 517mrt.com
 siel.nl
 e-hps.com
 infowheel.com
 synirc.net
 abuliyan.com
 easy-ways.com

The time latency taken by dig is approximately 10 seconds in our lab setup.

dig -f iot.txt
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> webmagnat.ro
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17487
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;webmagnat.ro.                  IN      A
 ;; ANSWER SECTION:
 webmagnat.ro.           10800   IN      A       85.25.207.218
 ;; AUTHORITY SECTION:
 webmagnat.ro.           10800   IN      NS      ns1.webmagnat.ro.
 webmagnat.ro.           10800   IN      NS      ns2.webmagnat.ro.
 ;; ADDITIONAL SECTION:
 ns1.webmagnat.ro.       10800   IN      A       85.25.207.218
 ns2.webmagnat.ro.       10800   IN      A       85.25.207.218
 ;; Query time: 635 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:36 PST 2020
 ;; MSG SIZE  rcvd: 125
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> nickelfreesolutions.com
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27270
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;nickelfreesolutions.com.       IN      A
 ;; ANSWER SECTION:
 nickelfreesolutions.com. 600    IN      A       184.168.131.241
 ;; AUTHORITY SECTION:
 nickelfreesolutions.com. 3600   IN      NS      ns63.domaincontrol.com.
 nickelfreesolutions.com. 3600   IN      NS      ns64.domaincontrol.com.
 ;; ADDITIONAL SECTION:
 ns63.domaincontrol.com. 6454    IN      A       97.74.101.42
 ns64.domaincontrol.com. 6885    IN      A       173.201.69.42
 ;; Query time: 394 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:36 PST 2020
 ;; MSG SIZE  rcvd: 152
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> scheepvaarttelefoongids.nl
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30333
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;scheepvaarttelefoongids.nl.    IN      A
 ;; ANSWER SECTION:
 scheepvaarttelefoongids.nl. 3600 IN     A       94.126.71.64
 ;; AUTHORITY SECTION:
 scheepvaarttelefoongids.nl. 3599 IN     NS      ns0.co-co.nl.
 scheepvaarttelefoongids.nl. 3599 IN     NS      ns1.co-co.nl.
 ;; ADDITIONAL SECTION:
 ns0.co-co.nl.           3599    IN      A       188.122.89.150
 ns1.co-co.nl.           3599    IN      A       141.138.205.119
 ;; Query time: 298 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:37 PST 2020
 ;; MSG SIZE  rcvd: 145
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> tursan.net
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19418
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;tursan.net.                    IN      A
 ;; ANSWER SECTION:
 tursan.net.             300     IN      A       104.27.156.203
 tursan.net.             300     IN      A       104.27.157.203
 ;; AUTHORITY SECTION:
 tursan.net.             10800   IN      NS      terry.ns.cloudflare.com.
 tursan.net.             10800   IN      NS      serena.ns.cloudflare.com.
 ;; ADDITIONAL SECTION:
 terry.ns.cloudflare.com. 1568   IN      A       173.245.59.237
 serena.ns.cloudflare.com. 9826  IN      A       173.245.58.220
 ;; Query time: 177 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:37 PST 2020
 ;; MSG SIZE  rcvd: 161
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> plannersanonymous.com
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32916
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;plannersanonymous.com.         IN      A
 ;; ANSWER SECTION:
 plannersanonymous.com.  3600    IN      A       209.99.64.44
 ;; AUTHORITY SECTION:
 plannersanonymous.com.  10800   IN      NS      this-domain-for-sale.com.
 plannersanonymous.com.  10800   IN      NS      ns.buydomains.com.
 ;; ADDITIONAL SECTION:
 ns.buydomains.com.      4157    IN      A       52.4.207.204
 this-domain-for-sale.com. 4157  IN      A       52.20.26.87
 ;; Query time: 371 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:37 PST 2020
 ;; MSG SIZE  rcvd: 161
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> doing.fr
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23501
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;doing.fr.                      IN      A
 ;; ANSWER SECTION:
 doing.fr.               600     IN      A       91.103.232.161
 ;; AUTHORITY SECTION:
 doing.fr.               10799   IN      NS      dns2.doing-net.com.
 doing.fr.               10799   IN      NS      dns1.doing-net.com.
 ;; ADDITIONAL SECTION:
 dns1.doing-net.com.     600     IN      A       91.103.232.130
 dns2.doing-net.com.     600     IN      A       217.70.191.85
 ;; Query time: 606 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:38 PST 2020
 ;; MSG SIZE  rcvd: 136
 ; <<>> DiG 9.11.5-P1-1-Debian <<>> saltstack.com
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29255
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 5
 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;saltstack.com.                 IN      A
 ;; ANSWER SECTION:
 saltstack.com.          60      IN      A       13.35.253.14
 saltstack.com.          60      IN      A       13.35.253.129
 saltstack.com.          60      IN      A       13.35.253.69
 saltstack.com.          60      IN      A       13.35.253.113
 ;; AUTHORITY SECTION:
 saltstack.com.          10800   IN      NS      ns-1074.awsdns-06.org.
 saltstack.com.          10800   IN      NS      ns-1843.awsdns-38.co.uk.
 saltstack.com.          10800   IN      NS      ns-775.awsdns-32.net.
 saltstack.com.          10800   IN      NS      ns-39.awsdns-04.com.
 ;; ADDITIONAL SECTION:
 ns-39.awsdns-04.com.    9606    IN      A       205.251.192.39
 ns-775.awsdns-32.net.   8509    IN      A       205.251.195.7
 ns-1074.awsdns-06.org.  3996    IN      A       205.251.196.50
 ns-1843.awsdns-38.co.uk. 2151   IN      A       205.251.199.51
 ;; Query time: 151 msec
 ;; SERVER: 192.168.0.1#53(192.168.0.1)
 ;; WHEN: Wed Feb 19 04:25:38 PST 2020
  • The time latency by massdns is around 1-2 second for the same domains .
# massdns -r lists/resolvers.txt -w hoo.txt iot.txt
 Privileges have been dropped to "nobody:nogroup" for security reasons.
 Processed queries: 0
 Received packets: 0
 Progress: 0.00% (00 h 00 min 00 sec / 00 h 00 min 00 sec)
 Current incoming rate: 0 pps, average: 0 pps
 Current success rate: 0 pps, average: 0 pps
 Finished total: 0, success: 0 (0.00%)
 Mismatched domains: 0 (0.00%), IDs: 0 (0.00%)
 Failures: 0: 0.00%, 1: 0.00%, 2: 0.00%, 3: 0.00%, 4: 0.00%, 5: 0.00%, 6: 0.00%, 7: 0.00%, 8: 0.00%, 9: 0.00%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 0.00%, 21: 0.00%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |            0 (  0.00%) |            0 (  0.00%)
 NXDOMAIN: |            0 (  0.00%) |            0 (  0.00%)
 SERVFAIL: |            0 (  0.00%) |            0 (  0.00%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
 Processed queries: 24
 Received packets: 23
 Progress: 100.00% (00 h 00 min 01 sec / 00 h 00 min 01 sec)
 Current incoming rate: 22 pps, average: 22 pps
 Current success rate: 22 pps, average: 22 pps
 Finished total: 23, success: 23 (100.00%)
 Mismatched domains: 0 (0.00%), IDs: 0 (0.00%)
 Failures: 0: 82.61%, 1: 21.74%, 2: 0.00%, 3: 0.00%, 4: 0.00%, 5: 0.00%, 6: 0.00%, 7: 0.00%, 8: 0.00%, 9: 0.00%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 0.00%, 21: 0.00%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |           20 ( 86.96%) |           20 ( 86.96%)
 NXDOMAIN: |            1 (  4.35%) |            1 (  4.35%)
 SERVFAIL: |            2 (  8.70%) |            2 (  8.70%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
 Processed queries: 24
 Received packets: 25
 Progress: 100.00% (00 h 00 min 01 sec / 00 h 00 min 01 sec)
 Current incoming rate: 103 pps, average: 24 pps
 Current success rate: 51 pps, average: 23 pps
 Finished total: 24, success: 24 (100.00%)
 Mismatched domains: 1 (4.00%), IDs: 0 (0.00%)
 Failures: 0: 79.17%, 1: 16.67%, 2: 4.17%, 3: 0.00%, 4: 0.00%, 5: 0.00%, 6: 0.00%, 7: 0.00%, 8: 0.00%, 9: 0.00%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 0.00%, 21: 0.00%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |           21 ( 87.50%) |           21 ( 84.00%)
 NXDOMAIN: |            1 (  4.17%) |            1 (  4.00%)
 SERVFAIL: |            2 (  8.33%) |            3 ( 12.00%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
  • The 8-9 seconds does not matters here but when you do this testing with 500 plus domains. The time taken by 599 domains is 11 secs, which is remarkably good.
Processed queries: 599
 Received packets: 1146
 Progress: 100.00% (00 h 00 min 11 sec / 00 h 00 min 11 sec)
 Current incoming rate: 163 pps, average: 107 pps
 Current success rate: 12 pps, average: 55 pps
 Finished total: 587, success: 587 (100.00%)
 Mismatched domains: 559 (48.78%), IDs: 0 (0.00%)
 Failures: 0: 19.25%, 1: 60.65%, 2: 14.48%, 3: 2.73%, 4: 0.85%, 5: 0.00%, 6: 0.34%, 7: 0.17%, 8: 0.00%, 9: 0.17%, 10: 0.00%, 11: 0.00%, 12: 0.00%, 13: 0.00%, 14: 0.00%, 15: 0.00%, 16: 0.00%, 17: 0.00%, 18: 0.00%, 19: 0.00%, 20: 1.02%, 21: 0.34%, 22: 0.00%, 23: 0.00%, 24: 0.00%, 25: 0.00%, 26: 0.00%, 27: 0.00%, 28: 0.00%, 29: 0.00%, 30: 0.00%, 31: 0.00%, 32: 0.00%, 33: 0.00%, 34: 0.00%, 35: 0.00%, 36: 0.00%, 37: 0.00%, 38: 0.00%, 39: 0.00%, 40: 0.00%, 41: 0.00%, 42: 0.00%, 43: 0.00%, 44: 0.00%, 45: 0.00%, 46: 0.00%, 47: 0.00%, 48: 0.00%, 49: 0.00%, 50: 0.00%,
 Response: | Success:               | Total:
 OK:       |          485 ( 82.62%) |          888 ( 77.49%)
 NXDOMAIN: |           81 ( 13.80%) |          121 ( 10.56%)
 SERVFAIL: |           21 (  3.58%) |          137 ( 11.95%)
 REFUSED:  |            0 (  0.00%) |            0 (  0.00%)
 FORMERR:  |            0 (  0.00%) |            0 (  0.00%)
  • The time latency by dig tool goes approximately upto 10 minutes in the lab, which is high in comparison to massdns.