如何测试DNS速度?

use*_*951 25 dns benchmark

我正在使用谷歌开放 DNS。如何测量 DNS 服务器的速度?

Mar*_*try 24

如果您只想计算单个记录的查找时间,请使用time dig a foobar.com @8.8.8.8. 这种测试方法确实不是那么好,因为在第一次查找之后,您将获得缓存的结果,并且任何离您较近的服务器都会给您最快的响应。

namebench可能是您正在寻找的工具。它根据浏览器缓存中的域、流行记录列表中的随机记录等进行查找。它是高度可配置的,可以测试您首选的 DNS 服务器列表、记录列表等。

  • 使用基于 HTTPS/TLS 的 DNS (DoH) `time dig +tls a stackexchange.com @1.1.1.1` (2认同)

Per*_*ulf 18

您可以使用以下命令:

  dig YOURDOMAIN +nssearch 
Run Code Online (Sandbox Code Playgroud)

  • `+[no]nssearch` 设置此选项后,dig 会尝试为包含正在查找的名称的区域查找权威名称服务器,并显示每个名称服务器对该区域的 SOA 记录。 (2认同)

小智 6

这在 bash 提示符下帮助了我。我遇到了名称服务器随机超时的问题。您需要 dig 实用程序,它不是最小安装的默认设置。您可以通过安装获得它

$ yum install bind-utils
Run Code Online (Sandbox Code Playgroud)

Fedora/RedHat/CentOS 或

$ apt install dnsutils
Run Code Online (Sandbox Code Playgroud)

对于 Ubuntu/Debian

$ while true; do dig www.google.com | grep time; sleep 2; done
Run Code Online (Sandbox Code Playgroud)

这会产生如下输出:

;; Query time: 2 msec
;; Query time: 1 msec
;; connection timed out; no servers could be reached
;; Query time: 1 msec
;; Query time: 53 msec
;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached
;; Query time: 2 msec
;; Query time: 5 msec
;; Query time: 3 msec
Run Code Online (Sandbox Code Playgroud)

在健康连接上,查询的时间不应超过 2 毫秒。


小智 6

使用名称台

Debian/Ubuntu

sudo apt-get install namebench
Run Code Online (Sandbox Code Playgroud)

苹果系统

brew install namebench
Run Code Online (Sandbox Code Playgroud)

示例输出

namebench 
...
> Sending 1 queries to 7 servers... [0/7]
> Sending 1 queries to 7 servers... [4/7]
> Sending 1 queries to 7 servers... [6/7]
> Sending 1 queries to 7 servers... [7/7]
> Saving report to /tmp/namebench_2019-08-13_1148.html
> Saving detailed results to /tmp/namebench_2019-08-13_1148.csv
> Opening /tmp/namebench_2019-08-13_1148.html
> Complete! SYS-127.0.0.53 [127.0.0.53] is the best.
Au revoir, mes amis!
Run Code Online (Sandbox Code Playgroud)

Namebench 将根据 DNS 服务器的响应速度为您制作一个 html 报告,其中包含最佳 DNS 的结果。


小智 5

1. dnsperf

dnsperf 和 resperf 是由 Nominum/Akamai (2006-2018) 和 DNS-OARC(自 2019 年起)开发的免费工具,可以轻松收集域名服务 (DNS) 的准确延迟和吞吐量指标。这些工具易于使用并模拟典型的互联网,因此网络运营商可以对其命名和寻址基础设施进行基准测试并规划升级。最新版本的 dnsperf 和 resperf 可与包含 IPv6 查询的测试文件一起使用。

从 Git 存储库构建

git clone https://github.com/DNS-OARC/dnsperf.git
cd dnsperf
./autogen.sh
./configure [options]
make
make install
Run Code Online (Sandbox Code Playgroud)

笔记

二进制文件将被编译到./srt目录中

简单的配置文件

它的名字是数据

shakiba.net A
Run Code Online (Sandbox Code Playgroud)

运行测试

-d data用于配置文件(见上文)

./src/dnsperf -s 1.1.1.1 -d data -c 10 -l 10 -Q 100
Run Code Online (Sandbox Code Playgroud)

这意味着

  • -s源IP地址==要查询的DNS服务器
  • -d从此文件中读取记录
  • -c客户数量
  • -l这段时间内(10 秒)
  • -Q发送此号码的查询

这里 10 个客户端 + 100 个查询 => 1000 个请求

样本输出

Statistics:

  Queries sent:         1000
  Queries completed:    1000 (100.00%)
  Queries lost:         0 (0.00%)

  Response codes:       NOERROR 1000 (100.00%)
  Average packet size:  request 34, response 87
  Run time (s):         10.075874
  Queries per second:   99.246974

  Average Latency (s):  0.083850 (min 0.080296, max 0.091041)
  Latency StdDev (s):   0.001694
Run Code Online (Sandbox Code Playgroud)

2.域名解析

DNS 测量、故障排除和安全审核工具集

有没有想过您的 ISP 是否劫持了您的 DNS 流量?您是否曾观察到您的 DNS 响应有任何不当行为?曾经被重定向到错误的地址并怀疑您的 DNS 有问题吗?在这里,我们有一组工具可以对您的 DNS 请求和响应执行基本审核,以确保您的 DNS 按您的预期工作。

通过 Docker 使用

docker run -it --rm farrokhi/dnsdiag /bin/bash
Run Code Online (Sandbox Code Playgroud)

示例命令

 ./dnseval.py -t A -f public-servers.txt -c10 shakiba.net  
Run Code Online (Sandbox Code Playgroud)

意思是

  • -t查询类型例如A
  • -f读取配置文件
  • -c查询次数

配置文件

文件public-servers.txt包含要查询的 DNS 服务器列表,例如

#Cloudflare
1.0.0.1
1.1.1.1
Run Code Online (Sandbox Code Playgroud)

样本测试+输出

./dnseval.py -t A -f public-servers.txt -c10 shakiba.net
server      avg(ms)     min(ms)     max(ms)     stddev(ms)  lost(%)  ttl        flags                  response
---------------------------------------------------------------------------------------------------------------
1.0.0.1     7.301       6.502       11.736      1.566       %0       298        QR -- -- RD RA -- --   NOERROR             
1.1.1.1     6.816       6.195       8.433       0.622       %0       297        QR -- -- RD RA -- --   NOERROR 
Run Code Online (Sandbox Code Playgroud)