在我的办公室局域网中,对我们局域网外的 DNS 服务器的查询确实经常失败(超时)。
我怀疑这是我们的供应商有问题,但他们没有回应我的投诉。
有没有一种工具可以用来基准/测量传出 DNS 流量的损失。来自 windows/linux 工作站还是来自 OpenBSD 4 网关?
在我的办公室局域网中,对我们局域网外的 DNS 服务器的查询确实经常失败(超时)。
我怀疑这是我们的供应商有问题,但他们没有回应我的投诉。
有没有一种工具可以用来基准/测量传出 DNS 流量的损失。来自 windows/linux 工作站还是来自 OpenBSD 4 网关?
我不知道直接执行此操作的工具,但您始终可以在 bsd 网关上使用 tcpdump 来嗅探 DNS 请求和响应,然后将请求与响应进行比较。tcp 转储将类似于:
它们也可能是 tcp,因此如果需要,您可以同时捕获两者。然后,您可以通过创建两个过滤器(一个用于请求,一个用于响应)来使用 wireshark 分析转储文件。然后只计算请求与响应的数量,如果响应 < 请求,则可能存在问题。
您可以尝试切换到其他 DNS 提供商,例如 OpenDNS(它还为您的办公环境提供其他功能)。如果您的 DNS 问题消失了,那么这就是问题的一个很好的指标。在此过程中,您甚至可能更喜欢替代 DNS 提供商...
否则,您可以使用诸如 ping 之类的东西来测试您与 DNS 服务器的连接和时间,以及跟踪路由。
这是在所有系统上还是在选定数量的系统上发生这种情况?DNS 是唯一存在此问题的协议还是其他协议?
如果您设置了监控系统,请创建服务检查以执行 DNS 查询并报告延迟。如果您还有绘图系统,请将这些延迟绘制在图表上。
如果您有 DNS 捕获文件(Kyle Brandt 的建议很好),您可以使用 Tshark 查找重复文件。例如,以下内容将读取捕获文件“dns-external.pcap”并生成一个包含 IP 源地址、DNS 查询 ID 和 DNS 查询名称的 CSV 文件:
然后,您可以使用 Excel、OpenOffice 或
sort < /tmp/dns.csv | uniq -d
查找重复请求。您也许还可以使用dnstop发现异常,但我不确定它是否具有特定于重复/丢失查询的任何功能。
在网关主机上设置网络捕获。运行捕获并过滤 DNS 流量。查找出站 DNS 查询和入站 DNS 答案。尝试将每个出站查询与入站答案匹配。如果您发现任何没有“匹配”的内容(出站查询和入站答案),那么这些查询就会丢失。然后,您可以使用此信息让 ISP 相信您和他们之间发生了一些事情。
判断 DNS 流量是否丢失的唯一方法是监视网关主机以及 Internet 上的 DNS 服务器上的流量。
现在您只需运行一个执行 10,000 个请求的程序,并将您返回的响应与该场外名称服务器生成的响应进行比较。您需要针对特定域执行 10,000 个请求(最好是 10,000 个不同的请求,这样您就不会缓存任何内容),还需要针对 10,000 个不存在的事物进行 10,000 次递归查找(邪恶的 ISP 喜欢过滤和劫持 NXDOMAIN 响应。