domain-name-system – 找出哪个DNS服务器回答了您的查询

前端之家收集整理的这篇文章主要介绍了domain-name-system – 找出哪个DNS服务器回答了您的查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个看似简单的问题,但经过一些搜索后找不到这个问题的答案:
我知道,如果我想查找某个域名的IP地址,我输入,例如:
nslookup google.de

得到

Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   google.de
Address: 172.217.18.3

但是,我不知道从哪里得到这个答案.
据我所知,起初我的解析器试图询问我的本地DNS服务器(在Ubuntu dnsmasq上),如果那个没有答案,它会询问下一个服务器,依此类推.但我想知道最终确切的服务器有什么答案.那可能吗?
我也试过了

dig +trace www.google.com

它提供有关已发布服务器的所有信息,但执行完全迭代查找.我基本上喜欢这样的答案,但是看起来很正常.

解决方法

I want to know what exact server in the end had the answer. Is that possible?

这是不可能实现的.您将找不到在DNS回复的有效负载中的任何位置查询的特定权威服务器.存在CHAOS查询以识别回复给您的特定递归服务器,但是没有这样的等价物用于提取recursor从中获取数据的确切权威服务器的名称.

Phillip链接到的StackOverflow Q& A提供了有关如何识别递归DNS响应的授权部分中存在的NS记录列表的说明.这是服务器的完整列表,而不是特定的服务器.即使这对于您的使用来说已经足够了,DNS标准认为这些信息是可选的,并且为了减少内部源反射攻击的有效载荷大小,在递归响应中看到它变得越来越少.

如果您知道区域的名称,则可以通过对它们的明确请求来请求NS记录的完整列表.这需要知道你处于区域的顶点;对example.com NS记录的请求将返回所需的响应,但www.example.com不会,除非将www委托给另一组服务器.在这种情况下,您别无选择,只能迭代地向后工作,直到您发现区域的顶点.

简而言之,没有可靠的短路径(即单一查询)从递归服务器获取有关所有上游权限的信息,并且没有办法学习响应查询的特定权威服务器,而无需控制权威服务器和在每台服务器上创建唯一数据. (如果您这样做,请为此目的创建一个唯一的区域,以便它不会干扰您更灵敏的生产区域转移)

猜你在找的HTML相关文章