Chinaunix

标题: dns客户端好像有两种解析方法,是不是啊? [打印本页]

作者: kkkggg21cn    时间: 2003-02-19 19:08
标题: dns客户端好像有两种解析方法,是不是啊?
dns客户端好像有两种解析方法:一种是叫递归,另一种叫传递。
是不是这样的啊, 它们有什么区别和联系呢?

thanks a million
作者: 阿骁    时间: 2003-02-19 20:44
标题: dns客户端好像有两种解析方法,是不是啊?
这两种解析查询不仅仅是用于 DNS 的客户端,server 和 server 之间也需要用到的。递归查询是指 DNS 客户端将查询发到 server ,server 负责剩下所有的查询工作,直到查到为止或域名不存在返回错误。而传递查询也是将查询发到 server 上,但如果该 server 无法解析这个域名,就不再查询,只返回错误。而不象递归查询,如果本 server 无法解析,就从根服务器开始查起。
作者: kkkggg21cn    时间: 2003-02-19 21:17
标题: dns客户端好像有两种解析方法,是不是啊?
递归查询这样理解对吗:
如果一个DNS服务器未能对一个域名进行解析,那么它就立即并直接查询根域名服务器,再由根域名服务器一直往下查,最后的结果返回根域名服务器,再由根域名服务器将结果返回到该DNS服务器。

这样理解可以吗?

thanks a million
作者: cpss    时间: 2003-02-19 21:43
标题: dns客户端好像有两种解析方法,是不是啊?
不对,是由普通的dns来负责递归查询,根域名服务器既不递归,也不负责解析地址,只负责告诉别的dns某个域的权威dns是谁。
作者: cpss    时间: 2003-02-19 21:46
标题: dns客户端好像有两种解析方法,是不是啊?
这是我前段时间回的一个帖子,描述了递归查询的工作原理,这里再贴到这里。

每个域都有自己的权威服务器,只有权威dns服务器上域名解析才认为是正确的,别的dns服务器都需要向权威dns服务器询问解析结果。
世界上有13个顶级域名服务器,它们不做域名解析,只是告诉各个域名的权威服务器是谁。
当一个普通的域名服务器(这里成为dns A吧)接受到一个域名解析请求时,它首先检查自己是否知道该域名的解析。如果知道,则返回解析结果;如果不知道,它就会随机从13个顶级域名服务器中选取一个顶级域名服务器,询问哪里是该域名的权威服务器。当dns A接到顶级域名服务器返回的地址后,dns A再向这个地址询问该域名怎么解析。最后,dns A返回解析结果给自己的用户,并将结果保存在自己的缓存里。

下面举两个例子说明一下,不过为了方便起见,这里每次都只写一个权威域名服务器,实际上一个域可能会有多个权威域名服务器的。

例如,dns A接受到一个www.google.com的解析请求
dns A检查发现自己不知道该域名怎么解析,于是向顶级域名服务器询问,并得到了google.com域的权威服务器是216.239.32.10(ns1.google.com)。
dns A向ns1.google.com询问得到www.google.com解析为www.google.com为216.239.33.101
dns A告诉用户www.google.com解析为216.239.33.101,并将结果存到缓存中。


再举个复杂的例子:
dns A接受到一个cpss.zz.ha.cn的解析请求
dns A检查发现自己不知道该域名怎么解析,于是向顶级域名服务器询问,并得到了zz.ha.cn域的权威服务器是159.226.1.1(NS.CNC.AC.cn);
dns A向NS.CNC.AC.cn询问,NS.CNC.AC.cn返回说zz.ha.cn的权威服务器是159.226.1.3(sld-ns1.cnnic.net.cn);
dns A向sld-ns1.cnnic.net.cn询问,sld-ns1.cnnic.net.cn返回说zz.ha.cn的权威服务器是202.102.224.68(ns.hazzptt.net.cn);
dns A向ns.hazzptt.net.cn询问,ns.hazzptt.net.cn返回说cpss.zz.ha.cn解析为202.102.224.136.
dns A返回给用户cpss.zz.ha.cn解析为202.102.224.136的结果,并保存在自己的缓存里。
作者: kkkggg21cn    时间: 2003-02-20 09:51
标题: dns客户端好像有两种解析方法,是不是啊?
这个我明白了。但又出了一个新的问题:


dns A接受到一个cpss.zz.ha.cn的解析请求
dns A检查发现自己不知道该域名怎么解析,于是向顶级域名服务器询问,并得到了zz.ha.cn域的权威服务器是159.226.1.1(NS.CNC.AC.cn);



在你的解释中让我觉得根域名服务器知道互联网上所有域包括子域中的权威服务器

不知道是不是这样子的。
作者: 阿骁    时间: 2003-02-20 10:00
标题: dns客户端好像有两种解析方法,是不是啊?
原帖由 "kkkggg21cn" 发表:
这个我明白了。但又出了一个新的问题:


dns A接受到一个cpss.zz.ha.cn的解析请求
dns A检查发现自己不知道该域名怎么解析,于是向顶级域名服务器询问,并得到了zz.ha.cn域的权威服务器是159.226.1.1(NS.CN..........


dns A 从顶级域名服务器得到的是 .cn 域的权威服务器的地址,然后 dns A 再向 .cn 域的权威服务器发出查询 ... 是一级一级查下来的。
作者: kkkggg21cn    时间: 2003-02-20 15:48
标题: dns客户端好像有两种解析方法,是不是啊?
I see .
thanks
作者: clientor    时间: 2011-11-24 15:31
   被这个问题困扰了好几天,看了这个帖子解决了
作者: llzqq    时间: 2011-11-27 08:36
“传递”,翻译为转发更好些,更容易理解。在互联网上DNS按功能区分为3类

1. 权威DNS,负责发布所辖域名的权威解析。
2. 递归DNS,它向权威DNS索求域名解析,最终的解析结果返回给用户。
3. 转发DNS,他把向递归DNS查询并把结果返回给用户。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2