2014-10-20 91 views
1

在我正在进行的理解DNS的实验中,我试图了解名称服务器如何执行递归查询。我得到了一个基本的想法 - 从顶级DNS服务器开始,然后向您发送要联系的权威域名服务器列表,然后联系这些服务器等,直到获得权威响应。手动执行递归DNS查询

听起来很简单。

但是,当我在实践中尝试它时,我在第一步后卡住了。我只是使用命令行工具手动执行此操作 - (我确保将关闭递归。)

好吧,所以第1步:从根名称服务器开始。我随机从root name servers on Wikipedia列表中挑选198.41.0.4(Verisign)。

我向它发送解析“google.com”的请求。

它发送我回了以下内容:

+---------------------------------------------------------------------------+ 
| 47547 | QR: 1 | OP: 00 | AA: 0 | TC: 0 | RD: 1 | RA: 0 | Z: 0 | RCODE: 00 | 
+---------------------------------------------------------------------------+ 
| QDCOUNT:  1, ANCOUNT:  0, NSCOUNT: 13, ARCOUNT: 15  | 
+---------------------------------------------------------------------------+ 

ANSWERS : 0 

AUTHORITIES: 
NS: m.gtld-servers.net 
NS: l.gtld-servers.net 
NS: k.gtld-servers.net 
NS: j.gtld-servers.net 
NS: i.gtld-servers.net 
NS: h.gtld-servers.net 
NS: g.gtld-servers.net 
NS: f.gtld-servers.net 
NS: e.gtld-servers.net 
NS: d.gtld-servers.net 
NS: c.gtld-servers.net 
NS: b.gtld-servers.net 
NS: a.gtld-servers.net 

ADDITIONAL: 
A: 192.55.83.30 
A: 192.41.162.30 
A: 192.52.178.30 
A: 192.48.79.30 
A: 192.43.172.30 
A: 192.54.112.30 
A: 192.42.93.30 
A: 192.35.51.30 
A: 192.12.94.30 
A: 192.31.80.30 
A: 192.26.92.30 
A: 192.33.14.30 
AAAA: 2001:0503:231d:0000:0000:0000:0002:0030 
A: 192.5.6.30 
AAAA: 2001:0503:a83e:0000:0000:0000:0002:0030 

好了,所以我不知道所有这些额外的记录点是 - 他们都似乎是本地局域网地址,所以我不知道他们对我有什么用处。但无论如何,看看权威部分返回的结果,我看到另一个名称服务器列表。好的,所以我想下一步是我需要选择一个返回的名称服务器,并获取它的IP。因此,我发出要求解决a.gtld-servers.net,并...

...它只是返回完全相同的名称服务器列表。

所以......我不知道如何在这里继续。我如何最终到达“google.com”的权威名称服务器?

编辑:

好了,所以才出现这些192地址不是LAN地址,我错误地认为,但他们是其他域名服务器。我假设我可以联系这些名称服务器以接近权威。但是,我怎么知道使用这些名称服务器呢?我认为ARCOUNT部分只是为了获得更多信息......为什么所有这些名称服务器都放置在附加部分,而不是作为答案或权限?是否只是一些约定,其他名称服务器的引荐进入附加部分?

+0

这个问题似乎是脱离主题,因为它是一个一般的DNS问题,而不是一个编程问题。 – nos 2014-10-20 20:42:30

回答

0

您对Verisign服务器的查询有问题。试试这个:

  1. dig @ google.com NS。这应该为您提供google.com的权威域名服务器
  2. dig @ www.google.com答:这会为您获取来自google.com nameservers的www.google.com的A记录。

注意:如果google.com名称服务器与google.com位于同一个区域,则#1应返回胶水记录,这意味着它也会解析名称服务器的IP地址。