dnsperf

摘要:
-E此选项使用OPT资源记录中的edns客户端子网来指定真正的客户端-P指定使用哪个传输层协议(udp或tcp)来发送DNS请求。默认值是udp-f,它指定用于发送DNS请求的地址类型inet或inet6。默认值是inet-v除了标准输出外还输出每个相应代码的编号。

github 地址:https://github.com/DNS-OARC/dnsperf

mac安装:brew install dnsperf

参数详解

Dnsperf 支持下面的这些命令行参数:

-s     用来指定DNS服务器的IP地址,默认值是127.0.0.1
-p     用来指定DNS服务器的端口,默认值是53
-d     用来指定DNS消息的内容文件,该文件中包含要探测的域名和资源记录类型,见下文
-t      用来指定每个请求的超时时间,默认值是3000ms
-Q     用来指定本次压测的最大请求数,默认值是1000
-c     用来指定并发探测数,默认值是100. dnsperf会从-d指定的文件中随机选取100个座位探测域名来发送DNS请求.
-l      用来指定本次压测的时间,默认值是无穷大。
-e     本选项通过EDNS0,在OPT资源记录中运用edns-client-subnet来指定真实的client ip. 

-P     指定用哪个传输层协议发送DNS请求,udp或者tcp。默认值是udp
-f      指定用什么地址类型发送DNS请求,inet或者inet6。默认值是inet
-v     除了标准的输出外,还输出每个相应码的个数。
-h     打印帮助

-f address family of DNS transport, inet or inet6 (default: any)
-s the server to query (default: 127.0.0.1)
-p the port on which to query the server (default: 53)
-a the local address from which to send queries
-x the local port from which to send queries (default: 0)
-d the input data file (default: stdin)
-c the number of clients to act as
-T the number of threads to run
-n run through input at most N times
-l run for at most this many seconds
-b socket send/receive buffer size in kilobytes
-t the timeout for query completion in seconds (default: 5)
-e enable EDNS 0
-E send EDNS option
-D set the DNSSEC OK bit (implies EDNS)
-y the TSIG algorithm, name and secret
-q the maximum number of queries outstanding (default: 100)
-Q limit the number of queries per second
-S print qps statistics every N seconds
-u send dynamic updates instead of queries
-v verbose: report each query to stdout

数据文件示例:

上文中提到,-d选项指定数据文件名,数据文件示例如下:

1
2
3
# This is a comment and is ommited
# The columns after column 2 will be ommited if one line contains more than 3 colums.
www.app1.com A

数据文件中以“#”开头的行被认为是注释行,会被dnsperf忽略。

其中有效数据由两列组成,第一列是查询域名,第二列是查询的资源类型,dnsperf支持的资源类型如下:

ANSMDMFCNAMESOAMBMGMRNULLWKSPTRHINFOMINFOMXTXTAAAASRVNAPTRA6ASFRMAILBMAILAANY.

如果请求很多次,要写入非常多域名,如

for i in $(seq 1 100000);do echo "qq.com A" >> tt.net.data; done

性能评测指标

下图是一个示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
DNS Performance Testing Tool
 
[Status] Processing query data
[Status] Sending queries to 127.0.0.1:53
time up
[Status]DNS Query Performance Testing Finish
[Result]Quries sent:        35650
[Result]Quries completed:   35578
[Result]Complete percentage:    99.80%
 
[Result]Elapsed time(s):    1.00000
 
[Result]Queries Per Second: 35650.0000

标准输出中,queies sent是指本次探测发送的总请求数,queries completed是指本次探测收到响应的请求数,complete percentage是指本次探测的成功率(queies_completed/queries_sent),elapsed time是指本次探测的时间,queries per second是指本次探测的QPS。

免责声明:文章转载自《dnsperf》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VUEX项目选题报告(团队)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

服务器上Ubuntu系统安装

https://www.cnblogs.com/2012-dream/p/11457357.html 自己之前没有摸过服务器,就是实体的那种,远程连接的不算。才发现,服务器也是电脑主机的形状,只是更大一号,然后服务器有自己的配套输入输出设备,显示屏和键盘触摸板,外观看起来跟笔记本类似,不过后面有接口,用于连接不同的服务器主机,所以多个服务器都是共享同一套输...

DNS反向查询

DNS反向查询是什么DNS反向查询大概的一个定义就是:从 IP 地址获取 PTR 记录。也就是说,通过使用一些网络工具可以将 IP 地址转换为主机名。 实际上,PRT 代表 POINTER,在 DNS 系统有唯一性,将 IP 地址与规范化的主机名联系起来。PTR 记录其实是 NDS 系统的一部分,但是由专门的区域文件组成的,使用的是传统的 in-addr....

一次erlang 节点CPU严重波动排查

  新服务上线后观察到,CPU在10 ~ 70%间波动严重,但从每秒业务计数器看业务处理速度很平均。   接下来是排查步骤:   1. dstat -tam      大概每10s一个周期,网络流量开始变得很小,随后突然增大,CPU也激增。   网络流量变化和从性能计数器结果上并不符合,服务相关业务较为复杂,先找出那个业务占用网络流量。   2. ifto...

windows 2003 DNS 4004或4015错误的原因

windows 2003 DNS 4004或4015错误是DNS错误中比较头痛的错误.他们常常一起出现.(在朋友们聊天或新闻组看新闻的时候也常常看到这两个错误).因为引起这两个错误的原因很复杂---反正微软没有相应的说明文档.我只是总结一下自己所知道的.不过我相信我的文档已经比微软要详细了! 关于4004错误事件类型: 错误事件来源: DNS事件种类: 无...

bat 批处理脚本

目录: 1:ping多个不同服务器IP 2:每隔一段时间清一次DNS缓存 3:将一个文件夹中的所有文件,分别保存在一个新文件夹中,以保持每个文件夹一个文件 功能1:ping多个不同服务器IP 环境开通防火墙后,经常需要对其他不同服务器进行网络连通测试。这时就需要ping多个不同服务器,这里简单列了一个windows下的批处理文件,简单做下备忘。 步骤: 1...

Android O : DNS列表获取及IPv4/IPv6优先级修改

一、Android应用获取有线网络DNS列表 /** * 获取DNS列表 */ private List<String> getDnsList() { List<String> dnsList = new ArrayList(); if (this.mIEthern...