![如何证明 DNS 流量正在丢失](https://linux22.com/image/492508/%E5%A6%82%E4%BD%95%E8%AF%81%E6%98%8E%20DNS%20%E6%B5%81%E9%87%8F%E6%AD%A3%E5%9C%A8%E4%B8%A2%E5%A4%B1.png)
在我的办公室局域网中,对局域网之外的 DNS 服务器的查询经常会失败(超时)。
我怀疑这是我们的供应商存在的问题,但他们还没有对我的投诉作出回应。
是否有一个工具可以用于基准测试/测量传出 DNS 流量的丢失。无论是从 Windows/Linux 工作站还是从 OpenBSD 4 网关?
答案1
我不知道有什么工具可以直接执行此操作,但您始终可以在 bsd 网关上使用 tcpdump 来嗅探 DNS 请求和响应,然后将请求与响应进行比较。tcp 转储将类似于:
tcpdump -i interface 'udp port 53' -o dumpfile
它们也可能是 tcp,因此您可以根据需要捕获两者。然后,您可以通过创建两个过滤器(一个用于请求,一个用于响应)使用 wireshark 分析转储文件。然后只需计算请求与响应的数量,如果响应 < 请求,则可能存在问题。
答案2
您可以尝试切换到其他 DNS 提供商,例如 OpenDNS(它还为您的办公环境提供其他功能)。如果您的 DNS 问题消失,则表明问题已经解决。您甚至可能更喜欢在此过程中使用替代 DNS 提供商...
否则,您可以使用 ping 之类的工具来测试与 DNS 服务器的连接和时间,以及跟踪路由。
是所有系统都存在这个问题,还是只有部分系统存在这个问题?只有 DNS 存在这个问题,还是其他协议也存在这个问题?
答案3
如果您已设置监控系统,请创建服务检查以执行 DNS 查询并报告延迟。如果您还拥有图形系统,请将这些延迟绘制在图表上。
答案4
判断 DNS 流量是否丢失的唯一方法是监控网关主机和互联网上的 DNS 服务器上的流量。
现在,您只需运行一个执行 10,000 个请求的程序,并将您收到的响应与该异地名称服务器生成的响应进行比较。您需要对特定域执行 10,000 个请求(最好是 10,000 个不同的请求,这样您就不会缓存任何内容),并且对 10,000 个不存在的内容执行 10,000 次递归查找(恶意 ISP 喜欢过滤和劫持 NXDOMAIN 响应)。