6 lines
7.0 KiB
JSON
6 lines
7.0 KiB
JSON
{
|
|
"name": "Dnsdiag",
|
|
"tagline": "DNS Diagnostics and Performance Measurement Tools",
|
|
"body": "[](https://travis-ci.org/farrokhi/dnsdiag) [](https://pypi.python.org/pypi/dnsdiag/) []() []() [](https://github.com/farrokhi/dnsdiag/stargazers)\r\n\r\nDNS Diagnostics and Performance Measurement Tools\r\n==================================================\r\n\r\nEver been wondering if your ISP is [hijacking your DNS traffic](https://decentralize.today/is-your-isp-hijacking-your-dns-traffic-f3eb7ccb0ee7#.fevks5wyc)? Ever observed any\r\nmisbehavior with your DNS responses? Ever been redirected to wrong address and\r\nsuspected something is wrong with your DNS? Here we have a [set of tools](http://github.com/farrokhi/dnsdiag) to\r\nperform basic audits on your DNS requests and responses to make sure your DNS is\r\nworking as you expect.\r\n\r\nYou can measure the response time of any given DNS server for arbitrary requests\r\nusing `dnsping`. Just like traditional ping utility, it gives you similar\r\nfunctionality for DNS requests.\r\n\r\nYou can also trace the path your DNS request takes to destination to make sure\r\nit is not being redirected or hijacked. This can be done by comparing different\r\nDNS queries being sent to the same DNS server using `dnstraceroute` and observe\r\nif there is any difference between the path.\r\n\r\n`dnseval` evaluates multiple DNS resolvers and helps you choose the best DNS\r\nserver for your network. While it is highly recommended to use your own DNS\r\nresolver and never trust any third-party DNS server, but in case you need to\r\nchoose the best DNS forwarder for your network, `dnseval` lets you compare\r\ndifferent DNS servers from performance (latency) and reliability (loss) point\r\nof view.\r\n\r\n# prerequisites\r\nThis script requires python3 as well as latest\r\n[dnspython](http://www.dnspython.org/) and\r\n[cymruwhois](https://pythonhosted.org/cymruwhois/). Please note that\r\n\"dnstraceroute\" requires a modified version of dnspython module. All required\r\nthird-party modules are included as GIT submodules. You just need to run `git\r\nsubmodule update --init` and project directory to pull the required code.\r\n\r\n# installation\r\n\r\nThere are several ways that you can use this toolset. However using the sourcecode is always recommended.\r\n\r\n## From Source Code\r\n\r\n1. You can checkout this git repo and its submodules\r\n\r\n```\r\ngit clone https://github.com/farrokhi/dnsdiag.git\r\ncd dnsdiag\r\ngit submodule update --init\r\n```\r\n\r\n2. You can alternatively install the package using pip:\r\n\r\n```\r\npip3 install --process-dependency-links dnsdiag\r\n```\r\n\r\n## From Binary\r\n\r\nFrom time to time, binary version will be released for Windows, Mac OS X and Linux platforms. You can grab the latest release from [releases page](https://github.com/farrokhi/dnsdiag/releases).\r\n\r\n# dnsping\r\ndnsping pings a DNS resolver by sending an arbitrary DNS query for given number\r\nof times:\r\n```\r\n% ./dnsping.py -c 3 -t AAAA -s 8.8.8.8 dnsdiag.org\r\ndnsping.py DNS: 8.8.8.8:53, hostname: dnsdiag.org, rdatatype: AAAA\r\n4 bytes from 8.8.8.8: seq=0 time=123.509 ms\r\n4 bytes from 8.8.8.8: seq=1 time=115.726 ms\r\n4 bytes from 8.8.8.8: seq=2 time=117.351 ms\r\n\r\n--- 8.8.8.8 dnsping statistics ---\r\n3 requests transmitted, 3 responses received, 0% lost\r\nmin=115.726 ms, avg=118.862 ms, max=123.509 ms, stddev=4.105 ms\r\n```\r\nThis script calculates minimum, maximum and average response time as well as\r\njitter (stddev)\r\n\r\n# dnstraceroute\r\ndnstraceroute is a traceroute utility to figure out the path that your DNS\r\nrequest is passing through to get to its destination. You may want to compare\r\nit to your actual network traceroute and make sure your DNS traffic is not\r\nrouted to any unwanted path.\r\n\r\n```\r\n% ./dnstraceroute.py --expert -C -t A -s 8.8.4.4 facebook.com\r\ndnstraceroute.py DNS: 8.8.4.4:53, hostname: facebook.com, rdatatype: A\r\n1\t192.168.0.1 (192.168.0.1) 1 ms\r\n2\t192.168.28.177 (192.168.28.177) 4 ms\r\n3\t192.168.0.1 (192.168.0.1) 693 ms\r\n4\t172.19.4.17 (172.19.4.17) 3 ms\r\n5\tgoogle-public-dns-b.google.com (8.8.4.4) 8 ms\r\n\r\n=== Expert Hints ===\r\n [*] public DNS server is next to a private IP address (possible hijacking)\r\n```\r\n\r\nUsing `--expert` will instruct dnstraceroute to print expert hints (such as warnings of possible DNS traffic hijacking).\r\n\r\n# dnseval\r\ndnseval is a bulk ping utility that sends an arbitrary DNS query to a give list\r\nof DNS servers. This script is meant for comparing response time of multiple\r\nDNS servers at once:\r\n```\r\n% ./dnseval.py -t AAAA -f public-v4.txt -c10 fg.weberdns.de\r\nserver avg(ms) min(ms) max(ms) stddev(ms) lost(%) flags\r\n------------------------------------------------------------------------------------------------\r\n8.8.8.8 94.556 90.488 112.209 6.322 %0 QR -- -- RD RA AD --\r\n8.8.4.4 92.599 90.265 94.338 1.086 %0 QR -- -- RD RA AD --\r\nns.ripe.net 92.754 91.632 93.980 0.900 %0 QR -- -- RD RA AD --\r\n4.2.2.1 92.703 91.869 93.298 0.482 %0 QR -- -- RD RA AD --\r\n4.2.2.2 93.195 91.667 94.919 1.065 %0 QR -- -- RD RA AD --\r\n4.2.2.3 93.118 92.076 94.835 0.835 %0 QR -- -- RD RA AD --\r\n4.2.2.4 94.308 92.175 103.318 3.261 %0 QR -- -- RD RA AD --\r\n4.2.2.5 92.650 91.643 94.460 1.002 %0 QR -- -- RD RA AD --\r\n209.244.0.3 92.810 89.961 94.807 1.266 %0 QR -- -- RD RA AD --\r\n209.244.0.4 93.127 91.962 95.970 1.227 %0 QR -- -- RD RA AD --\r\n195.46.39.39 92.770 90.777 93.656 0.914 %0 QR -- -- RD RA AD --\r\n195.46.39.40 92.903 91.280 94.914 1.147 %0 QR -- -- RD RA AD --\r\n```\r\n\r\n### Author\r\n\r\nBabak Farrokhi \r\n\r\n- twitter: [@farrokhi](https://twitter.com/farrokhi)\r\n- github: [/farrokhi](https://github.com/farrokhi/)\r\n- website: [farrokhi.net](https://farrokhi.net/)\r\n\r\n\r\n### License\r\n\r\ndnsdiag is released under a 2 clause BSD license.\r\n\r\n### Credits\r\n\r\n- [@rthalley](https://github.com/rthalley) for invaluable [dnspython](https://github.com/rthalley/dnspython) library\r\n- [@JustinAzoff](https://github.com/JustinAzoff) for [python-cymruwhois](https://github.com/JustinAzoff/python-cymruwhois) library\r\n- [@bortzmeyer](https://github.com/bortzmeyer) for his feedback and patches\r\n",
|
|
"note": "Don't delete this file! It's used internally to help with page regeneration."
|
|
} |