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的查询和解析,就比这个复杂许多,下节会讨论有关迭代和递归查询的内容,敬请期待!

转载于:https://www.cnblogs.com/kscnchina/archive/2013/05/14/3077032.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值