工作来源
IMC 2019
工作背景
现代权威 DNS 服务器非常复杂,可以根据请求的地理位置、延迟与内容过滤策略给出不同的响应。任何被动方式评估 DNS 的研究人员,都只能了解到部分情况。此前 OpneINTEL、Project Sonar 与 RIPE Atlas 项目都是主动测量,覆盖范围与场景都存在差异。
工作设计
流量中提取的特征如下所示:
srvips:nameserver IP 地址数
srcips:递归解析服务器 IP 地址数
sources:SIE Contributor 的数量
hits:迄今为止看到的总次数
unans:未响应请求数
ok, nxd, rfs, fail:RCODE 为NoError、NXDOMAIN、Refused与ServFail的响应量
ok_ans, ok_ns, ok_add:无错误响应中非空 ANSWER、非零 NS 记录、非空 ADDITIONAL
ok_nil:ok_ans 与 ok_ns 均不满足(无数据/NoData)
ok6, ok6nil:所有无错误、无数据的 AAAA 请求
ok_sec:DNSSEC 给出的响应(设置 EDNS0 DO Flag)
qnamesa, qnames:所有请求中的 QNAME 去重数、无错误响应中的 QNAME 去重数
tlds, eslds:无错误响应中TLD与ESLD的数量
qtypes:QYTPE的数量
qdots, lvl, nslvl:QNAME 标签数、ANSWER 记录数、AUTHORITY的NS记录数
ip4s, ip6s:A/AAAA请求中无错误响应的去重 IP 地址数
ttl, nsttl:权威响应中的 TOP3 TTL 及其分布情况
resp_delays:响应延迟的四分位数
network_hops:解析服务器与 Nameserver 之间跳数的四分位数
resp_size:响应包大小的四分位数
这些特征底层使用简单计数(hits)、平均值(qdots)、直方图(resp_delays)或者基数估计(ip4s)。对于较大的值集中的元素数量,使用HyperLogLog 算法进行近似。
每分钟生成一个序列,再逐渐聚合到十分钟、一小时、一日与一月对应的数据。
使用 Space-Saving 算法在控制内存用量的情况下跟踪 TOP 对象
工作准备
通过分布在全球数百个解析服务器的观测点收集收据,2019 年 1 月到 2019 年 4 月共收集了 1.6 万亿。数据峰值为每秒 20 万次请求,平均每天 130 亿。在一分钟的时间窗口内,能够观测到超过 150 个存在的 FQDN 与 110 万个不存在的 FQDN。
收集的数据:
srvip:TOP 10 万 Nameserver 服务器
etld:TOP 1 万 eTLD
esld:TOP 10 万 eSLD
qname:TOP 10 万 FQDN
qytpe:所有 QTYPE 的聚合结果
rcode:所有 RCODE 的聚合结果
aafqdn:权威应答中 TOP 2 万 FQDN
srcsrv:TOP 3 万“解析服务器与 Nameserver”的 IP 对
工作评估
TOP 10 万的 Nameserver 能够覆盖 94.9% 的 DNS 数据,长尾效应非常明显。无错误响应中 NoError+Data 占总量的64.4%,NoData 占 4.7%。大部分 DNS 流量可能仅由 1000 个权威 Nameserver IP 地址处理,DNS 并没有分布在 IP 地址空间中。并且,NXDOMAIN 流量超过 20% 与大型僵尸网络有关。Mylobot 的 DGA 算法会在数千个不存在的 SLD 下生成数百万个 FQDN。
TOP 10 万的 FQDN 覆盖所有 DNS 数据的 23.2%,TOP 1 万的 FQDN 占比约为 18.6%。很多 FQDN 只用一次就废弃,长尾更加明显。
TOP 10 万的 eSLD 占所有 DNS 数据的 68.5%,请求量最大的 CDN、云服务、社交媒体与电子商务等占比很高。
按自治系统来统计,TOP 10 的组织管理了全球超过一半的 DNS 请求。亚马逊以 16% 的份额高居榜首,可能是由于大量流行的网站都部署带 AWS 上。全球最大的两个 CDN(Akamai 与 CloudFlare)共处理全部 DNS 的 13%,由于 CloudFlare 常使用 IP Anycast,其 Nameserver 的数量比 Akamai 少的多。CDN 厂商的延迟与跳数明显更低,说明厂商针对性做了优化。
TOP 10 的 QTYPE 覆盖 99.5% 的 DNS 数据,A 记录大概是 AAAA 记录的三倍。A 记录的 NXDOMAIN 响应率为 22%,AAAA 记录大概为 5.9%。令人惊讶的是,PTR 记录的请求竟然如此之多,这些请求通常是服务器与其他互联网基础设施发出的。NS 记录虽少,但 86% 都是 NXDOMAIN。这可能是伪随机子域名共计,响应大小也比平均更大。
TOP 10 万 Nameserver 中,只有 0.9% 的 Nameserver 中值响应延迟高于 1 秒。小于 1 秒的延迟中,七成的延迟在 35 毫秒到 350 毫秒。
TOP 2.5 万的延迟与跳数如下所示,确实最流行的服务器更快。
根 Nameserver 与 gTLD 的情况如下所示,拥有最多镜像的根 Nameserver 也是最快的。总的来说,根 Nameserver 处理 3% 的 DNS 数据,但其中会产生 96.2% 的 NXDOMAIN 响应。而 gTLD 处理 9.6% 的 DNS 数据,其中产生了 26.4% 的 NXDOMAIN 响应。
活跃使用的 Nameserver 共有 150 万个唯一 IP,接近一半的 /24 前缀中都只有一个地址。
以 xmsecu.com 为例,该域名从 2019 年 4 月 4 日的 TTL 从十分钟锐减至十秒钟。由于 TTL 减少,请求量暴涨。
TOP 100 的 SLD 的 TTL 变化如下所示,TTL 与 DNS 流量间几乎呈现反线性相关。
查看 FQDN 的 A 记录与 NS 记录的 TTL 分布,特定小时内至少 10% 的 DNS 响应为新值就被分类为变化。