Dnsperf搭建与使用

本文详细介绍了在Ubuntu18.04环境中使用VMwareWorkstation17Pro搭建的虚拟机中,如何配置国内源并安装必要的软件包,然后逐步指导如何克隆、编译和安装DNSperf,以及遇到常见错误时的解决方案。
摘要由CSDN通过智能技术生成

 第一节:前期准备

linux环境:ubuntu-18.04.6-desktop-amd64

虚拟机系统:VMware® Workstation 17 Pro

1.1 快速配置国内源

1.2 软件包安装

root@ubuntu:/# apt install git 
root@ubuntu:/# apt-get install autoconf 
root@ubuntu:/# apt-get install automake 
root@ubuntu:/# apt-get install libtool 
root@ubuntu:/# apt-get install make 
root@ubuntu:/# apt-get install pkg-config 
root@ubuntu:/# apt-get install check 
root@ubuntu:/# apt-get install g++ 
root@ubuntu:/# apt-get install librsync-dev 
root@ubuntu:/# apt-get install libz-dev 
root@ubuntu:/# apt-get install libssl-dev 
root@ubuntu:/# apt-get install uthash-dev 
root@ubuntu:/# apt-get install libyajl-dev

第二节:dnsperf安装

2.1 代码克隆至本地

root@ubuntu:/# git clone https://github.com/DNS-OARC/dnsperf.git

安装过程中可能出现“无法连接到github”或者“gnutls_handshake() failed: Error in the pull function.”的情况,如果出现,需要将虚拟机的443端口映射到物理主机上,方可正常克隆。

2.2 编译安装

root@ubuntu:/# cd /dnsperf/ r

oot@ubuntu:/dnsperf# ./autogen.sh

root@ubuntu:/dnsperf# ./configure

root@ubuntu:/dnsperf# make

root@ubuntu:/dnsperf# make install

2.3 问题解决

./autogen.sh出现报错

报错:./autogen.sh: 19: ./autogen.sh: autoreconf: not found

解决方法:执行apt-get install automake autoconf libtool命令

./configure出现报错

第一种:

报错:configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

问题原因:configure脚本的自动构建系统有问题

解决方法:执行autoreconf -vif命令重建

第二种:

报错:./configure: line 5859: syntax error near unexpected token `disable-static'

./configure: line 5859: `LT_INIT(disable-static)'

问题原因:软件包缺失,脚本无法执行

解决方法:apt-get install make pkg-config check g++ librsync-dev libz-dev libssl-dev uthash-dev libyajl-dev,如果执行完前面的命令还不行,再执行一遍autoreconf -vif

第三种:

报错:configure: error: libck headers not found

问题原因:没有libck-dev软件包

解决方法:执行apt install libck-dev

第四种:

报错:configure: error: nghttp2 headers not found

问题原因:没有libnghttp2-dev软件包

解决方法:执行apt install libnghttp2-dev

第三节: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

-i

用来指定前后探测的时间间隔,因为dnsperf是一个压测工具,所以本选项目前还不支持

-P

指定用哪个传输层协议发送DNS请求,udp或者tcp。默认值是udp

-f

指定用什么地址类型发送DNS请求,inet或者inet6。默认值是inet

-v

除了标准的输出外,还输出每个相应码的个数

-h

打印帮助

探测目标文件内容

# 一行只能有两列,之后的列会被忽略

www.app1.com A 
www.bbb2.com AAAA

测试用例

dnsperf -d test.txt -s 202.108.57.48 -c100000 -Q100000 -l6000

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值