一、DNS协议解析
1.1. DNS支持TCP和UDP协议差异
1.2 DNS over HTTPS优缺点
优点:(1)DNS的解析请求和解析结果经由中间路由时都不可被解密,做到了用户端和解析服务器之间端到端的加密,做到隐私不在中间泄露
(2)双向请求和结果数据因为加密算法的存在保证不可被篡改,阻止了借用DNS的钓鱼攻击和拒绝服务攻击
(3)无法通过判定用户访问域名的行为来触发防火墙规则,很大程度上保障上网体验和联通性
缺点:(1)可信递归解析服务器都是公开可获取的,ISP可以屏蔽这些IP地址而让用户转行到其它的镜像服务器,毕竟现在的客户端浏览器升级过程缓慢,在无法使用新DoH解析服务器时还是应该退回到老协议的
(2)当用户获得解析记录后还是要与目标服务器进行通讯,这个通讯就算使用https传输,目前的TLS1.2协议依旧会泄露服务器域信息(SNI),新的TLS1.3协议草案要让DoH服务器发回解析记录的同时一并发回目标服务器的公钥,这样就可以直接与服务器握手时就使用加密后的SNI,这个对DNS服务的改动非常大而且很大程度上加重了DNS服务器的负担。
1.3 DNS协议介绍
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。域名可将一个IP地址关联到一组有意义的字符上去。
1.4 DNS 工作过程
(1)用户机提出域名解析请求,并且发送给本地的域名服务器;
(2)当本地的域名服务器收到请求后,先查询本地的缓存,如果有该记录,则本地的域名服务器就直接把查询的结果返回;
(3)如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址;
(4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址;
(5)重复第四步骤,直到找到正确的纪录,本地域名服务器把返回的结果保存到缓存,再把查询的结果返回。
1.5 DNS协议用途
DNS是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS是一个按层次结构排列的分布式系统,由许多DNS服务器组成。DNS服务器是注册加入DNS的任何计算机。它具有域名和IP地址的索引,并且在请求时,它可以告诉您与域名关联的当前IP地址。
二、DNS协议在supernova测试仪中可应用的场景
2.1 网关模式
测试仪同时模拟客户端和服务器,测试流量穿过受测设备(防火墙、交换机、路由器等),得到受测设备的性能。
2.2代理模式
测试仪同时模拟客户端和服务器,测试流量穿过受测设备(代理设备、负载均衡设备),得到受测设备的性能。
2.3应用服务模式
测试仪只模拟客户端,向受测的DNS服务器发送流量,获取响应,得到DNS服务器的性能。
2.4 终端模式
测试仪只模拟服务器,接收客户端的请求,并回复正确的回应,得到客户端的性能。
三、DNS用例功能介绍
3.1.分配cpu核
用例的运行需要分配cpu核数,测试DNS的最高性能需要分配一定的核数。
3.2限速配置
DNS用例支持多种流量模型,包括固定速率:设置一个限速数值,运行过程中速率将一直保持该数值,上下浮动不超过1%;
随机速率:限速方式为随机速率时,设置最小、最大限速数值,速率将按每秒从最小速率和最大速率之间随机速率值运行直到运行结束;
梯形速率:限速方式为梯形速率时,设置一个限速数值,运行开始阶段速率将按时间或者百分比递增到该数值,中间过程将一直保持设置的限速数值,运行结束前速率按时间或者百分比递减至0,中间过程上下浮动不超过1%;
雪崩速率:限速方式为雪崩速率时,设置最大、最小速率和保持时长,测试过程中速率将以最大速率保持一段时长,再以最小速率保持一段时长,交替进行;
正弦速率:限速方式为正弦速率时,设置最大、最小速率和渐变时长,测试过程中速率会在每一个渐变时长内完成一次正弦变化;
楼梯速率:限速方式为楼梯速率时,设置初始、最大、递增速率和保持时长,测试过程中速率将以初始速率保持一段时长,按递增速率每次递增并保持一段时长,最后按最大速率一直运行结束,形状类似楼梯。
支持链路层和应用层的限速,限速单位支持最低为bps,最高为Gbps,默认为Mbps。
3.3抓包设置
可以设置需要抓的协议类型,指定IP地址、端口、文件大小或者包数。可在运行前或运行中设置抓包。
3.4 DNS查询对象配置
在请求中填入要查询的域名和请求类型,响应是模拟响应报文,如果测试真实服务器的话,响应处可为空。
四、DNS测试用例
4.1 DNS 协议用例拓扑图
说明:测试仪使用“网关模式”模拟DNS的客户端和服务端,过一台防火墙(网关模式),测试防火墙性能。
说明:测试仪使用“应用服务模式”模拟客户端像服务器发送DNS查询请求,测试受测服务器的性能
4.2 DNS协议用例目的
1.测试过防火墙DNS的查询次数性能
2.测试真实DNS服务器查询次数性能
4.3 DNS协议测试预计结果
4.3.1 网关模式过防火墙,使用UDP协议,查询域名www.baidu.com,类型A,次数可达到30万/秒
4.3.2网关模式过防火墙,使用TCP协议,查询域名www.baidu.com,类型A,次数可达到1万/秒
4.3.3网关模式过防火墙,使用DNS over HTTPS用例,查询域名www.baidu.com,类型A,次数可达到8000/秒
4.3.4应用服务模式下接真实DNS服务器,使用UDP协议,查询域名www.baidu.com,类型A,次数可达到15万/秒
4.3.5应用服务模式下接真实DNS服务器,使用TCP协议,查询域名www.baidu.com,类型A,次数可达到2万/秒
4.3.6应用服务模式下接真实DNS服务器,使用DNS over HTTPS用例,查询域名www.baidu.com,类型A,次数可达到2000/秒
五、测试步骤
5.1创建DNS over UDP用例,配置参数
(1)在网关模式中,创建DNS over UDP用例,由于过的是防火墙,需要配置网关,选择路由模式,选择过防火墙的一对口。
(2)分配CPU核数
(3)抓包设置,本次运行结果需要看响应是否符合要求。
(4)参数设置
5.2创建DNS over TCP用例,配置参数
重复5.1的步骤,即可创建好DNS over TCP用例
5.3创建DNS over HTTPS用例,配置参数
重复5.1步骤后,在客户端进行配置
5.4配置DNS对象
(1)点击加号,创建一个新的对象。
(2)对DNS对象内的参数介绍
请求
域名变换规则:可以选择需要查询的域名是固定还是随机变换
域名:填入需要查询的域名
查询类型:有A、AAAA、CNAME、MX、NS、TXT、ANY、PTR、SRV等查询类型,选择需要查询的种类
响应:网关模式下需要填入响应
(3)点击启动用例
(4)在监控中查看运行界面
(5)生成报告
用例手动终止或者到时后,可在报告页面生成报告。
六、对预期结果进行验证
6.1网关模式过防火墙,使用UDP协议,查询域名www.baidu.com,类型A,次数可达到30万/秒
结论:符合4.3.1的预期结果
6.2网关模式过防火墙,使用TCP协议,查询域名www.baidu.com,类型A,次数可达到1万/秒
结论:符合4.3.2的预期结果
6.3网关模式过防火墙,使用TLS,查询域名www.baidu.com,类型A,次数可达到8000/秒
结论:符合4.3.3的预期结果
6.4应用服务模式下接真实DNS服务器,使用UDP协议,查询域名www.baidu.com,类型A,次数可达到15万/秒
结论:符合4.3.4的预期结果
6.5应用服务模式下接真实DNS服务器,使用TCP协议,查询域名www.baidu.com,类型A,次数可达到2万/秒
结论:符合4.3.5的预期结果
6.6应用服务模式下接真实DNS服务器,使用DNS over HTTPS用例,查询域名www.baidu.com,类型A,次数可达到2000/秒
结论:符合4.3.6的预期结果