Page 372 - 《软件学报》2026年第4期
P. 372
张宾 等: 基于大型 DNS 递归服务的域名访问模式测量与分析 1813
于递归服务器到上级权威服务器的正常丢包. 总体来讲, 针对用户域名请求, 递归服务器的解析成功率约为 97.5%,
这个值是比较高的, 充分说明了 DNS 服务器的高可用性和高可靠性.
递归服务器在进行递归解析前先由缓存服务的历史解析记录进行解析, 如果到来的 DNS 请求有对应的缓存
记录, 则直接向用户返回缓存中的解析记录, 图 15 为缓存服务器在测试期间的缓存命中率. 如图 15 所示, 针对用
户域名请求, 缓存服务器的总缓存命中率约 94.59%, 这个缓存命中率比较高, 说明绝大部分的请求会在递归服务
的本地缓存进行解析, 缓存的高命中率大大增强了 DNS 请求的解析效率.
100
80
命中率 (%) 60
40
20
0
2022/3/1 0:00 2022/3/9 0:50 2022/3/17 8:55 2022/3/25 17:00
2022/3/13 4:55
2022/3/21 12:55
2022/3/29 21:00
日期
图 15 缓存命中率
递归服务器收到用户的 DNS 查询请求后, 如图 15 所示, 绝大部分在本地缓存完成解析并向用户返回应答结
果, 少部分未命中的 DNS 请求则需要从根服务器进行迭代查询. 图 16 显示了递归服务器向根服务器的迭代请求
次数, 递归服务器向根服务器发送解析请求日均 691 万条, 平均每秒约 80 条, 平均约 548 条用户请求会触发一条
递归服务器到根服务器的请求, 覆盖 1 168 个顶级域.
1 200
1 000
请求次数 (万次) 800
600
400
200
0
2022/3/16
2022/3/18
2022/3/12
2022/3/14
2022/3/24
2022/3/26
2022/3/20
2022/3/22
2022/3/10
2022/3/4 2022/3/5 2022/3/6 2022/3/7 2022/3/8 2022/3/9 2022/3/11 2022/3/13 2022/3/15 2022/3/17 2022/3/19 2022/3/21 2022/3/23 2022/3/25
日期
图 16 递归服务器向根服务器的迭代请求次数
递归服务器向上对根服务器进行迭代查询时, 由于根服务器拒绝响应, 线路丢包等问题, 递归服务器也无法得到
每个请求的应答. 后文图 17 显示了递归服务器向根服务器每日请求的平均响应率, 总的平均响应率约 81.78%, 这个
响应率比预想的要低很多, 可能的原因是递归服务器距离根服务器较远. 基于此, 本文建议运营商采用 RFC8806 提出
的本地根策略, 通过直接在递归服务器上设置根区镜像, 将根区文件设置在本地使用, 从而避免从根服务器的迭代查询.
递归服务器向根服务器进行迭代查询时, 请求报文发出到对应的应答报文返回为这个 DNS 请求报文的时延.
每天所有报文的时延的平均值为这天报文的平均时延, 后文图 18 显示了递归服务器向根服务器的请求应答的平
均时延. 最小在 40 ms 左右, 最大在 80 ms 左右, 基本相差一倍. 总的平均请求响应时延为 58.81 ms, 这个时间体现
了根服务器对递归服务器的服务效率.
4.5 大型 DNS 运营商异常检测探索
学术界目前已经提出很多利用 DNS 流量进行异常检测的方法, 比较著名和典型的有: Notos [29] 、Exposure [30] 、

