如何测试DNS速度?

如何测试DNS速度?

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

答案1

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

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

答案2

您可以使用以下命令:

  dig YOURDOMAIN +nssearch 

答案3

这对我的 bash 提示很有帮助。我遇到了名称服务器随机超时的问题。您需要 dig 实用程序,该实用程序不是最小安装的默认设置。你可以通过安装来获取

$ yum install bind-utils

对于 Fedora/RedHat/CentOS 或

$ apt install dnsutils

对于 Ubuntu/Debian

$ while true; do dig www.google.com | grep time; sleep 2; done

这会产生如下输出:

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

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

答案4

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

笔记

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

简单的配置文件

它的名字是数据

shakiba.net A

运行测试

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

./src/dnsperf -s 1.1.1.1 -d data -c 10 -l 10 -Q 100

这意味着

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

2.DNS诊断

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

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

通过 Docker 使用

docker run -it --rm farrokhi/dnsdiag /bin/bash

示例命令

 ./dnseval.py -t A -f public-servers.txt -c10 shakiba.net  

意思是

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

配置文件

文件公共服务器.txt包含要查询的 DNS 服务器列表,例如

#Cloudflare
1.0.0.1
1.1.1.1

样本测试+输出

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

相关内容