我目前托管一个 TinyDNS 服务器,该服务器为所有具有指向该服务器的名称服务器的域提供 DNS 请求。数据配置文件为:
.
+*:1.2.3.4
和1.2.3.4是服务器的 IP。它旨在成为通配符 DNS 服务器(指向此服务器的任何名称服务器都将返回指向其自身的 A 记录)。
然而,当我尝试访问这些域名上的网站时,DNS查询速度真的很慢,我在不同的设备和网络(有时长达 10 秒)。从我的 DNS 服务器传播的 DNS 记录是否格式不正确?以下是示例域:http://trp.do/s/
编辑:
我知道这是 DNS 问题,而不是网站问题,因为我在请求和响应堆栈的不同点插入了带有时间戳的各种标头。它们都在请求和响应堆栈内,ms
而实际请求从开始到结束大约需要 5-10 秒。使用 Google Chrome 时,它似乎也停留在左下角的“解析主机”上。我深入挖掘并使用了 Rack-Mini-Profiler @https://github.com/MiniProfiler/rack-mini-profiler分析请求并列出域名查找也在 5-10 秒的范围内。因此,我确信这是一个 DNS 问题,而不是网站性能问题。
解决单点故障的问题,我意识到了这一点,但不认为它应该在一致的基础上影响性能。
我迫切的问题是......格式错误的 DNS 记录是否会导致这种情况?
答案1
来自单个权威服务器的格式错误的响应不太可能导致此问题。无论是第一个服务器回复时间过长且超时,还是回复格式错误(截断、损坏等),递归 DNS 服务器都可以与下一个权威名称服务器重试。如果全部服务器返回虚假数据,某处存在重大问题。
这假设您遵循最佳实践并操作多个具有地理冗余的名称服务器。您的配置在这两个方面都不符合此标准。我在这里可能看起来像是在重复老生常谈,但这确实是 DNS 的基本知识:此配置使您的公司资产处于危险之中,并且您基本上只能听天由命,无论在两者之间发生什么网络事件互联网上的每个人以及您的单一地理隔离服务器。
首先解决这个问题。除非你解决这个问题,否则其他一切都没有意义。5-10 秒的延迟很可能是由于解析器库试图将你的搜索后缀附加到原始(失败)查询,但当前配置从根本上来说有问题,目前进一步排除故障毫无意义。