【问题标题】:Sending and Monitoring DNS Queries发送和监控 DNS 查询
【发布时间】:2015-07-03 14:14:19
【问题描述】:

我正在尝试使用 tcpdump 监控我的服务器上的 DNS 查询,但 tcpdump 似乎没有收到请求,或者它没有被发送到我的服务器。

我像这样在服务器上运行tcpdump

tcpdump -vvv -s 0 -l -n port 53

然后我向我的服务器发送一个 DNS 请求:

 nslookup google.com xx.xx.xxx.xxx

xx.xx.xxx.xxx 是我的服务器 IP。

然后回应:

Server:     xx.xx.xxx.xxx
Address:    xx.xx.xxx.xxx#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.208.78

我没有运行,甚至没有安装 Bind,但tcpdump 应该仍然捕获数据包吧?

任何想法可能是什么问题?

【问题讨论】:

  • 您的机器上有多少个网络接口(环回接口除外)?
  • 这样你就有了以太网和Wi-Fi接口;您是通过以太网接口还是 Wi-Fi 接口连接到 DNS 服务器? tcpdump -D 打印什么?

标签: tcp wireshark tcp-ip tcpdump


【解决方案1】:

我想分享我对此的看法。如果有点跑题,请见谅。

现在,DNS 解析将在以下情况下发生:

  • 接收 DNS 查询的机器正在充当解析器,
  • 接收 DNS 查询的计算机充当 DNS 解析器的某种中间件代理。

如果不是这种情况,你能解释一下为什么会通过任何类型的 DNS 解析吗?

为了上述评论的完整性,

如果 tcpdump(8) 是用缺少 pcap_findalldevs() 函数的旧版 libpcap 构建的,则不支持 -D 标志。

现在,我假设:

  • 侦听正确的网络接口(您可能希望明确选择正确的接口以侦听 w.r.t. tcpdump(8)),
  • UDP 53(网络/主机级别)允许传入,
  • 满足上述条件之一,

它应该可以工作。

tcpdump -vvv -n -s 0 -l -i eth0 udp port 53

取出-n,重试看看有什么不同。

您还可以发布您正在使用的 nslookup(1)tcpdump(8) 版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多