如果您没有运行自己的 DNS 服务器(或者您必须运行自己的 DNS 服务器才能执行此操作,则假设您运行了),您将如何测量每秒为您的域收到的 DNS 查询数?有
没有办法判断 Web 请求是使用您的 DNS 服务器作为权威来源还是缓存结果?
这样做的目的是能够判断您是否能够充分满足现有 DNS 服务器的需求。
答案1
简短的回答:就你的情况而言,你无法判断。
如果您有 DNS 托管服务,我建议您联系托管提供商讨论此事。他们肯定不愿意让您访问日志或任何其他真实信息,但他们至少应该能够告诉您他们的系统是否运行良好。我想他们的系统正在为您自己和其他客户提供 DNS,所以如果它没有跟上步伐,他们就会收到投诉。
答案2
如果你确实运行 DNS 服务器,我更喜欢 joeqwerty 的解决方案(一个类似差示扫描量热仪)到 tinkertim 的解决方案(tuen on query logs),因为查询日志记录是:
- 依赖 DNS 服务器软件
- 减慢名称服务器的速度
无论如何,无论您是否运行 DNS 服务器,您都无法知道客户端发生了什么。如果您的名称服务器收到 DNS 请求,您可以合理地确定这意味着它不在另一端的缓存中。如果您没有收到请求,您就一无所知。
答案3
在DNS服务器上运行数据包捕获程序,启动捕获并仅过滤DNS,运行捕获一小时,根据捕获中收集的数据进行计算。
据我所知,除非在客户端上运行数据包捕获,否则无法知道客户端如何解析 DNS 查找。
答案4
虽然这会减慢服务器速度(一点点),但您可以简单地打开查询日志。这将生成带有时间戳的查询日志……之后,可以相对轻松地在一段时间内取平均值。
在大多数版本的 BIND 中,这相当容易做到,但不确定其他版本是否如此。我使用同样的东西来监管一些 DNS 服务器,我们别无选择,只能允许几乎完全开放的递归。