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 -- --