IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    DNSDiag:诊断 DNS 故障

    toy发表于 2016-05-17 14:26:53
    love 0

    DNS 流量被 ISP 劫持?DNS 响应了错误的行为亦或指向了错误的地址?如果你碰到了诸如此类的 DNS 问题,那么别慌,DNSDiag 可以助你排查问题所在。

    安装

    DNSDiag 提供有二进制包,从 GitHub 下载后解包即可使用:

    tar zxvf dnsdiag-1.3.4.linux-x86_64-bin.tar.gz
    

    DNSDiag 包含 dnsping、dnstraceroute、dnseval 三个工具。

    dnsping

    又一个跟 ping 类似的工具,针对 HTTP 的可参考 httping。dnsping 发送 DNS 查询来 ping DNS 服务器:

    ./dnsping -s 8.8.8.8 -c 5 linuxtoy.org
    dnsping DNS: 8.8.8.8:53, hostname: linuxtoy.org, rdatatype: A
    39 bytes from 8.8.8.8: seq=0   time=111.764 ms
    38 bytes from 8.8.8.8: seq=1   time=65.606 ms
    39 bytes from 8.8.8.8: seq=2   time=110.593 ms
    38 bytes from 8.8.8.8: seq=3   time=67.940 ms
    38 bytes from 8.8.8.8: seq=4   time=66.181 ms
    
    --- 8.8.8.8 dnsping statistics ---
    5 requests transmitted, 5 responses received,   0% lost
    min=65.606 ms, avg=84.417 ms, max=111.764 ms, stddev=24.449 ms
    

    其中,-s 指定 DNS 服务器,-c 为请求次数,linuxtoy.org 为要查询的域名。从结果我们可以看到,查询的最小、最大及平均响应时间。

    dnstraceroute

    这个工具与 traceroute 相似,用来查询 DNS 请求的路由:

    ./dnstraceroute --expert -s 8.8.8.8 linuxtoy.org
    dnstraceroute DNS: 8.8.8.8:53, hostname: linuxtoy.org, rdatatype: A
    1       gateway (10.217.89.1) 1 ms
    2       10.210.4.37 (10.210.4.37) 1 ms
    3       10.210.2.67 (10.210.2.67) 1 ms
    4       254.118.142.219.broad.bj.bj.dynamic.163data.com.cn (219.142.118.254) 2 ms
    5       10.210.1.14 (10.210.1.14) 4 ms
    6       192.168.5.30 (192.168.5.30) 7 ms
    7       180.149.129.217 (180.149.129.217) 7 ms
    8        *
    9       180.149.128.9 (180.149.128.9) 8 ms
    10      202.97.53.146 (202.97.53.146) 8 ms
    11      202.97.58.94 (202.97.58.94) 9 ms
    12      202.97.91.114 (202.97.91.114) 49 ms
    13      202.97.62.214 (202.97.62.214) 47 ms
    14      209.85.241.58 (209.85.241.58) 43 ms
    15      209.85.142.185 (209.85.142.185) 45 ms
    16      216.239.41.7 (216.239.41.7) 152 ms
    17      209.85.243.23 (209.85.243.23) 62 ms
    18       *
    19      google-public-dns-a.google.com (8.8.8.8) 72 ms
    
    === Expert Hints ===
     [*] public DNS server is next to an invisible hop (probably a firewall)
    

    --expert 选项可以给出一些有用的提示。

    dnseval

    批量 ping 工具,同样是针对 DNS:

    ./dnseval linuxtoy.org
    server              avg(ms)     min(ms)     max(ms)     stddev(ms)  lost(%)
    ---------------------------------------------------------------------------
    10.210.12.10        51.627      1.169       503.838     158.891     %0
    202.106.182.153     285.889     2.336       604.162     312.265     %14
    

    需要指出的是,不仅限于本文所提到的,这三个工具都自带一些有用的选项,可通过 -h 查看。



沪ICP备19023445号-2号
友情链接