DNS诊断和性能评估工具
有没有想过您的ISP是否正在劫持您的DNS流量?您是否发现DNS响应有任何不当行为?是否曾经被重定向到错误的地址,并且怀疑您的DNS有问题?在这里,我们有一组工具可以对您的DNS请求和响应执行基本审核,以确保您的DNS能够按预期工作。
您可以使用来衡量任意给定DNS服务器对任意请求的响应时间dnsping
。就像传统的ping实用程序一样,它为DNS请求提供了类似的功能。
您还可以跟踪DNS请求到达目标的路径,以确保它没有被重定向或劫持。这可以通过比较使用发送到同一DNS服务器的不同DNS查询dnstraceroute
并观察路径之间是否存在差异来完成。
dnseval
评估多个DNS解析器,并帮助您为网络选择最佳的DNS服务器。强烈建议您使用自己的DNS解析器,并且永远不要信任任何第三方DNS服务器,但是如果您需要为网络选择最佳的DNS转发器,则dnseval
可以比较不同DNS服务器的性能(延迟)和可靠性(损失)的观点。
前提条件
此脚本需要python3以及最新的 dnspython和 cymruwhois。
安装
您可以使用几种方法来使用此工具集。但是,始终建议使用源代码。
从源代码
- 您可以检出此git repo及其子模块
git clone https://github.com/farrokhi/dnsdiag.git
cd dnsdiag
pip3 install -r requirements.txt
- 您也可以使用pip安装软件包:
pip3 install dnsdiag
从二进制
有时会为Windows,Mac OS X和Linux平台发布二进制版本。您可以从发布页面获取最新版本。
dnsping
dnsping通过发送给定次数的任意DNS查询来ping DNS解析器:
% ./dnsping.py -c 3 -t AAAA -s 8.8.8.8 dnsdiag.org
dnsping.py DNS: 8.8.8.8:53, hostname: dnsdiag.org, rdatatype: AAAA
4 bytes from 8.8.8.8: seq=0 time=123.509 ms
4 bytes from 8.8.8.8: seq=1 time=115.726 ms
4 bytes from 8.8.8.8: seq=2 time=117.351 ms
--- 8.8.8.8 dnsping statistics ---
3 requests transmitted, 3 responses received, 0% lost
min=115.726 ms, avg=118.862 ms, max=123.509 ms, stddev=4.105 ms
该脚本计算最小,最大和平均响应时间以及抖动(stddev)
dnstraceroute
dnstraceroute是一个traceroute实用程序,用于确定您的DNS请求通过其到达目的地的路径。您可能需要将其与实际的网络跟踪路由进行比较,并确保您的DNS流量没有路由到任何不需要的路径。
% ./dnstraceroute.py --expert -C -t A -s 8.8.4.4 facebook.com
dnstraceroute.py DNS: 8.8.4.4:53, hostname: facebook.com, rdatatype: A
1 192.168.0.1 (192.168.0.1) 1 ms
2 192.168.28.177 (192.168.28.177) 4 ms
3 192.168.0.1 (192.168.0.1) 693 ms
4 172.19.4.17 (172.19.4.17) 3 ms
5 google-public-dns-b.google.com (8.8.4.4) 8 ms
=== Expert Hints ===
[*] public DNS server is next to a private IP address (possible hijacking)
使用将指示dnstraceroute打印专家提示(例如可能的DNS流量劫持的警告)。--expert
dnsseval
dnseval是一个批量ping实用程序,可将任意DNS查询发送到DNS服务器的给定列表。该脚本旨在一次比较多个DNS服务器的响应时间:
% ./dnseval.py -t AAAA -f public-servers.txt -c10 yahoo.com
server avg(ms) min(ms) max(ms) stddev(ms) lost(%) ttl flags
------------------------------------------------------------------------------------------------------
8.8.8.8 270.791 215.599 307.498 40.630 %0 298 QR -- -- RD RA -- --
8.8.4.4 222.955 171.753 307.251 60.481 %10 291 QR -- -- RD RA -- --
ns.ripe.net 174.855 160.949 187.458 10.099 %0 289 QR -- -- RD RA -- --
4.2.2.1 172.798 163.892 189.918 7.823 %0 287 QR -- -- RD RA -- --
4.2.2.2 178.594 169.158 184.696 5.067 %0 285 QR -- -- RD RA -- --
4.2.2.3 153.574 138.509 173.439 12.015 %0 284 QR -- -- RD RA -- --
4.2.2.4 153.182 141.023 162.323 6.700 %0 282 QR -- -- RD RA -- --
4.2.2.5 154.840 141.557 163.889 7.195 %0 281 QR -- -- RD RA -- --
209.244.0.3 156.270 147.320 161.365 3.958 %0 279 QR -- -- RD RA -- --
209.244.0.4 159.329 151.283 163.726 3.958 %0 278 QR -- -- RD RA -- --
195.46.39.39 171.098 163.612 181.147 5.067 %0 276 QR -- -- RD RA -- --
195.46.39.40 175.335 160.920 185.618 8.726 %0 274 QR -- -- RD RA -- --