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