首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dnsmasq转发

dnsmasq转发
EN

Ask Ubuntu用户
提问于 2016-11-03 14:47:17
回答 1查看 1.4K关注 0票数 1

我在试着了解dnsmasq的转发是如何工作的。我从手册上读到的是:

...Dnsmasq接受DNS查询,或者从一个小的本地缓存中回答它们,或者转发给一个真正的递归DNS服务器....。

因此,据我所知,如果我做了DNS请求,我的机器会向dnsmasq请求给定域的ip地址。如果dnsmasq无法回答,则dnsmasq将“将此请求转发到真正的、递归的DNS服务器”。

这个转发是怎么工作的?我试图通过谷歌搜索来回答这个问题,但这并没有真正回答我的问题。

当我通过wireshark查看它时,我看到了这样的模式:

代码语言:javascript
复制
127.0.0.1   ->  127.0.1.1   (standard query)
192.168.1.2 ->  192.168.1.1 (standard query)
192.168.1.1 ->  192.168.1.2 (standard query response)
127.0.1.1   ->  127.0.0.1   (standard query response)

有人能解释一下那里发生了什么吗?

编辑:

我想问的是,dnsmasq如何知道192.168.1.1的答案是什么?事实上,192.168.1.1只告诉了192.168.1.2 ip地址。127.0.1.1如何知道ip地址?信息是如何传递的?

我希望会有这样的事情:

代码语言:javascript
复制
192.168.1.1 -> 127.0.1.1 OR
192.168.1.2 -> 127.0.1.1

我希望有一些路线来传送信息,但事实并非如此。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2016-11-03 15:44:52

Wireshark在TCP/IP模型上介于网络和传输之间。因此,您没有看到在应用程序级别上交换什么数据,所以这就是为什么您的wireshark输出在尝试监视DNS时没有多大意义。在应用程序确定了将要发生什么之后,您只是看到了数据包的流和方向。你得看看dnsmasq你想要的信息。如果将-q添加到启动dnsmasq的脚本中,它将将日志发送到syslog

下面是我能够找到的一个示例输出。

代码语言:javascript
复制
Jan 17 23:33:15 server001 dnsmasq[10708]: query[A] sgi.com from 192.168.0.20
Jan 17 23:33:15 server001 dnsmasq[10708]: forwarded sgi.com to 127.0.0.2
Jan 17 23:33:15 server001 dnsmasq[10708]: query[AAAA] sgi.com from 192.168.0.20
Jan 17 23:33:15 server001 dnsmasq[10708]: forwarded sgi.com to 127.0.0.2
Jan 17 23:33:15 server001 dnsmasq[10708]: dnssec-query[DS] sgi.com to 127.0.0.2
Jan 17 23:33:15 server001 dnsmasq[10708]: dnssec-query[DS] sgi.com to 127.0.0.2
Jan 17 23:33:15 server001 dnsmasq[10708]: validation result is INSECURE
Jan 17 23:33:15 server001 dnsmasq[10708]: reply sgi.com is 192.48.138.174
Jan 17 23:33:15 server001 dnsmasq[10708]: validation result is INSECURE
Jan 17 23:33:15 server001 dnsmasq[10708]: reply sgi.com is NODATA-IPv6
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/845128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档