一些事物似乎永远不会消失,包括 DNS 查询。在为期五个月的实验中,分析了大约 44 亿个 DNS 查询,发现其中四分之一是僵尸查询——没有当前用户等待响应的查询,而是之前查询的回声。是什么导致了这些僵尸查询?我们是否看到的是失常的 DNS 解析器,它们疯狂地重复查询相同的问题并且永远不会接受答案?或者这是更险恶的事情,我们是否看到的是广泛的 DNS 跟踪和监视的证据?让我们来了解一下。
网络测量技术
作为我们互联网测量工作的一部分,我们使用了一种将少量“哨兵点”嵌入在线广告的技术。当广告被送到用户的浏览器时,广告中的脚本会导致用户的浏览器获取这些点。例如,要测量 IPv6,我们使用一个既可以通过 IPv4 也可以通过 IPv6 访问的点,还有一个只能通过 IPv6 访问的点。那些可以获取后一个点的系统属于“IPv6 能力”终端系统,我们可以从样本测量中推断出 IPv6 在整个互联网中部署的程度。当然,这个测量系统的简单描述掩盖了一些行为的细微方面。这个测量系统需要从一个测量服务器获取点,这意味着我们需要绕过网络中广泛使用的各种 DNS 和 web 代理缓存。我们使用的方法是为每个点生成唯一的 DNS 名称,这样每个 DNS 查询都是一个新的查询,不能从缓存中提供服务。
DNS 查询行为
当我们生成这些唯一的 DNS 名称时,我们在合成名称中包含一个时间组件,这是脚本在广告中被用户执行的时间的编码。每个 DNS 名称只使用一次,脚本打算立即运行到完成。在一个合理的世界中,权威的 DNS 服务器应该会看到每个唯一的 DNS 名称的一次或两次查询,DNS 查询的时间应该在几秒钟内与 DNS 名称中编码的时间相符。DNS 名称的生存时间(TTL)为一秒,每个唯一名称在其他广告中永远不会被重用。互联网可以真正地令人惊讶!如果你仔细观察并长时间观察互联网,你可能会找到可能存在的每一种病理行为!有大约 2400 万个唯一的 DNS 名称每天从这些测量实验中生成,如果互联网上存在一些奇怪的 DNS 行为,那么我们很可能会看到它们。
结论
通过分析这些 DNS 查询,我们发现了大量的僵尸查询,这些查询没有当前用户等待响应。这些僵尸查询可能是由于失常的 DNS 解析器或其他原因引起的。了解这些查询的原因和行为对于改进网络测量技术和优化 DNS 查询处理至关重要。
对运维和网络工程师来说,了解 DNS 查询行为和僵尸查询的存在对于优化网络性能和改进网络安全至关重要。通过分析 DNS 查询数据,网络工程师可以识别出潜在的问题并采取措施改进网络配置和安全设置,从而提高网络的整体性能和安全性。
原文: APNIC Blog(2016-04-04)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog