在我的办公室局域网中,对我们局域网外的DNS服务器的查询确实经常失败(超时)。
我怀疑这是提供商的一些问题,但他们没有回应我的抱怨。
有没有一种工具可以用来基准测量传出DNSstream量的丢失。 无论是从Windows / Linux工作站或从OpenBSD 4网关?
我不知道有一个直接执行此操作的工具,但是您始终可以在bsd网关上使用tcpdump来嗅探DNS请求和响应,然后将请求与响应进行比较。 tcp转储将是这样的:
tcpdump -i interface 'udp port 53' -o dumpfile
有可能他们也是tcp,所以你可以捕获这两个,如果你想。 然后,您可以通过创build两个筛选器(一个用于请求,一个用于响应)来分析使用wireshark的转储文件。 然后只计算请求数量与响应数量,如果响应<请求,则可能有问题。
您可以尝试切换到另一个DNS提供程序,如OpenDNS(这也为您的办公环境提供其他function)。 如果您的DNS问题消失,那么这是问题的一个很好的指标。 你甚至可能更喜欢这个过程中的替代DNS提供商…
否则,你可以使用像ping这样的东西来testing你的连通性和定时到DNS服务器和traceroute。
这是在所有系统上还是在选定数量的系统上发生? DNS是唯一有此问题或其他协议?
如果设置了监视系统,请创build服务检查以执行DNS查询并报告延迟。 如果您还有graphics系统,请在图表上绘制这些延迟。
如果你有一个DNS捕获文件(凯尔·布兰特的build议是一个很好的build议),你可以使用Tshark寻找重复。 例如,以下内容将读取捕获文件“dns-external.pcap”并生成一个包含IP源地址,DNS查询ID和DNS查询名称的CSV文件:
tshark -n -r dns-external.pcap -T fields -E separator=, -E quote=d -e ip.src -e dns.id -e dns.qry.name > /tmp/dns.csv
然后,您可以使用Excel,OpenOffice或sort < /tmp/dns.csv | uniq -d sort < /tmp/dns.csv | uniq -d查找重复的请求。
你也许能够使用dnstop来发现exception,但是我不确定它是否有任何特定于重复/丢失查询的function。
判断DNSstream量是否丢失的唯一方法是监控网关主机上的stream量以及互联网上的DNS服务器上的stream量。
现在,您只需运行一个执行10,000个请求的程序,并将您得到的响应与该场外名称服务器生成的响应进行比较。 您将需要为特定域(最好是10,000个不同的请求,因此您不会获得任何caching)执行10,000个请求,还需要10,000个recursion查找10,000个不存在的内容(邪恶的ISP喜欢过滤和劫持NXDOMAIN响应。
在网关主机上设置networking捕获。 运行捕获并过滤它的DNSstream量。 查找出站DNS查询和入站DNS答案。 尝试将每个出站查询与入站答案进行匹配。 如果您发现任何没有“匹配”(出站查询和入站答案),那么这些查询丢失。 然后,您可以使用这些信息来说服ISP确信您和他们之间正在发生什么事情。