Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296482
  • 博文数量: 56
  • 博客积分: 3056
  • 博客等级: 中校
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 12:37
个人简介

一不小心出了国

文章分类

全部博文(56)

文章存档

2015年(1)

2011年(1)

2010年(1)

2009年(5)

2008年(14)

2007年(34)

我的朋友

分类:

2007-04-05 17:41:31

好久没来写笔记了,我们的域名解析商的DNS别名解析不太稳定,最近研究DNS服务器,一头雾水,刚刚才搞清楚域名的解析过程:

DNS解析过程及原理

 

第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。

第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

第五步:重复第四步,直到找到正确的纪录。

第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

    让我们举一个例子来详细说明解析域名的过程.假设我们的客户机如果想要访问站点: , 此客户本地的域名服务器是dns.company.com , 一个根域名服务器是NS.INTER.NET , 所要访问的网站的域名服务器是dns.linejet.com,域名解析的过程如下所示:

   (1)客户机发出请求解析域名的报文

   (2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器dns.company.com则向根域名服务器NS.INTER.NET发出请求解析域名

   (3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果:linejet.com NS dns.linejet.com (表示linejet.com域中的域名服务器为:dns.linejet.com , 同时给出dns.linejet.com的地址,并将结果返回给域名服务器dns.company.com

   (4)域名服务器dns.company.com 收到回应后,再发出请求解析域名的报文。

   (5)域名服务器 dns.linejet.com收到请求后,开始查询本地的记录,找到如下一条记录: A 211.120.3.12 (表示linejet.com域中域名服务器dns.linejet.comIP地址为:211.120.3.12,并将结果返回给客户本地域名服务器dns.company.com

   (6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。

  这样就完成了一次域名解析过程 

  

   查询响应类型

  

  DNS服务器对于客户请求的答复具有多种类型,常见的有以下四种:

  

  权威答复:权威答复是返回给客户的正向答复,并且设置了DNS消息中的权威位。此答复代表从具有权威的DNS服务器处发出;

  

  正向答复:正向答复包含了匹配客户端解析请求的资源记录;

  

  参考答复:参考答复只在DNS服务器工作在迭代模式下使用,包含了其他有助于客户端解析请求的信息。例如,当DNS服务器不能为客户端发起的解析请求找到某个匹配值时,则向DNS客户端发送参考回复,告诉它有助于解析请求的信息;

  

  否定答复:否定答复指出权威服务器在解析客户端的请求时可能遇到了以下两种情况之一:

  

  权威DNS服务器报告客户端查询的名字不存在;

  

  权威DNS服务器报告存在对应的名字但是不存在指定类型的资源记录。

  

  无论正向答复还是否定答复,DNS客户端都将结果保存在自己的本地缓存中。
 
 
下面是我自己根据理解,画的解析流程图:
 
阅读(1819) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~