WEB开发网
开发学院操作系统windows 2008 学DNS系列(八)DNS 客户端查询过程 阅读

学DNS系列(八)DNS 客户端查询过程

 2009-10-23 00:00:00 来源:WEB开发网   
核心提示:DNS客户端的注册信息在DNS服务器中是以记录的方式体现出来的,那么客户端就可以用一些方式进行查询各类记录,学DNS系列(八)DNS 客户端查询过程,相对应的,服务器会对这些查询进行响应,但对于互联网上的DNS的查询和解析,就比这个复杂许多,我们称之为解析,至于DNS内部的工作机制

DNS客户端的注册信息在DNS服务器中是以记录的方式体现出来的,那么客户端就可以用一些方式进行查询各类记录。相对应的,服务器会对这些查询进行响应,我们称之为解析,至于DNS内部的工作机制,我们不得而知,但可以通过一些命令和方法间接地了解DNS查询过程。为了更好的描述这个问题,我做了一张简单的TOPO图,其中DNS1为DNS服务器,主机XP3是一个DNS客户端。拓扑图如下:

学DNS系列(八)DNS 客户端查询过程

在客户端向DNS服务器提交一个查询消息中,通常都会包含3条基本信息,1、需要制定查询的DNS域名;2、指定查询请求的基本类型;3、DNS域名的指定类别。对于windows系统的DNS服务器而言,第三条即DNS域名的指定类别总是Internet,即我们常说的IN类别,这个关键字无论是在正向还是反向区域的DNS文件中都可以看的到,我们以正向查找区域的DNS文件为例,如下图:

学DNS系列(八)DNS 客户端查询过程

图片看不清楚?请点击这里查看原图(大图)。

所以,通常我们在提交一个查询时只需要包含DN S域名和查询请求的类型这两部分内容就可以了,通过一个实例来讲解吧。在a.com区域内存在2条A记录,如下图:

学DNS系列(八)DNS 客户端查询过程

图片看不清楚?请点击这里查看原图(大图)。

那么我们在XP3上查询DNS1的A记录。为了更好的理解整个过程,我们依然会使用wireshark来进行辅助分析。整个过程如下图:

学DNS系列(八)DNS 客户端查询过程

图片看不清楚?请点击这里查看原图(大图)。

在上图中用到几个命令 ,如nslookup、set 等,这些命令在DNS应用和排错中用的很普遍。所以后面会单独有一节来讲这部分内容。我们再来看看wireshark都发生了什么,整个过程经历了2个步骤。如下图:

数据包1的分析过程:

学DNS系列(八)DNS 客户端查询过程

图片看不清楚?请点击这里查看原图(大图)。

数据包2的分析过程:

学DNS系列(八)DNS 客户端查询过程

图片看不清楚?请点击这里查看原图(大图)。

上面是查询A记录的过程分析,同理,在查询NS记录或者PTR指针记录时也是类似的过程,只是查询的类型和结果不同而已,这里不再熬述。

DNS客户端在第一次查询某条记录时,会按照上述的过程进行,当再次查询时则会首先使用本地缓存信息来解析查询请求,如果有对应的记录则完成此次解析,否则就会向自身的DNS服务器发起查询。而这样的本地解析依据来源于2个地方,如下:

1、即为本地预先配置的主机名到地址的映射关系,也就是我们常提的HOSTS文件。

2、以及系统保存在查询缓存中的记录。

其实,从上面不难看出,客户端解析的过程也就是记录匹配的过程,如果有匹配的选项,则会返回相应信息给客户端,反之则提示无法找到相应记录。

但对于互联网上的DNS的查询和解析,就比这个复杂许多,下节会讨论有关迭代和递归查询的内容,敬请期待!

谢谢!

出处: http://jeffyyko.blog.51cto.com/28563/206891

Tags:DNS 系列 DNS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接