发送和监控DNS查询

时间:2015-04-24 20:08:33

标签: tcp wireshark tcp-ip tcpdump

我正在尝试使用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仍然应该正确捕获数据包?

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

1 个答案:

答案 0 :(得分:0)

我想就此分享我的看法。请原谅我,如果它有点偏离主题。

现在,DNS解析将会发生:iff:

  • 接收DNS查询的计算机表现为解析程序, OR
  • 接收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)的版本。