关闭

DNS

968人阅读 评论(0) 收藏 举报
分类:

DNS(Domain Name System)域名系统是因特网使用的命名系统。用户在使用网络服务时是通过使用域名来进行对指定网站的访问的,可是机器确是通过IP地址来处理的。为什么机器不用域名来处理呢?因为IP地址的长度是固定的32位,而域名的长度并不是固定的,机器处理起来比较困难。所以就需要将域名解析为IP地址。

DNS就是用来进行域名解析的服务器。DNS系统被设计成为一个联机分布式数据库,采用客户-服务器方式。DNS使大多数名字都在本地进行解析,仅少量解析需要在因特网上通信,因此DNS系统的效率挺高。

当某一个应用程序需要把主机名解析为IP地址时,该应用程序就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减小开销)。本地域名服务器在查找域名后,将对应的IP地址放在回答报文中返回。应用程序获得目的主机的IP地址后既可进行通信。


域名服务器

在介绍DNS的工作原理之前,我们需要将DNS服务器分个类:根域名服务器顶级域名服务器权限域名服务器本地域名服务器

 

根域名服务器: 最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。根域名服务器是最重要的服务器,若要对因特网上任何一个域名解析,只要自己无法解析,就首先要求助根域名服务器。如果所有的根域名服务器都瘫痪了,整个DNS就无法工作了。在很多时候,根域名服务器并不直接将查询到的域名转为IP地址,而是告诉本地服务器下一步应该找哪一个顶级域名服务器进行查询。

 

顶级域名服务器 : 这些域名服务器负责管理在该顶级域名器注册的所有二级域名。当收到DNS查询时,就给出最后答案,答案可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址。

 

权限域名服务器 : 负责一个区的域名服务器。当一个权限域名服务器不能查询到最终结果的话,就会告诉用户下一步需要查找哪个权限域名服务器。

 

本地域名服务器 : 当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。

本地域名服务器向根域名服务器的查询一般都是采用迭代查询。所谓迭代查询就是当根域名服务器收到本地域名服务器发出的查询请求报文后,要么告诉本地域名服务器下一步应该查询哪一个域名服务器,然后本地服务器自己进行后续的查询。(而不是替代本地服务器进行后续查询)。

各域名服务器关系图如下:


工作原理及过程

 

接下来我们通过一个完整的流程来了解DNS的完整工作流程。

 

假定域名为 m.xyz.com的主机想知道另一个主机(域名为y.abc.com)的IP地址。加入,主机m.xyz.com打算发送邮件给主机y.abc.com。这时就必须知道主机y.abc.com的IP地址。步骤如下:

1.      主机m.xyz.com 先向其本地域名服务器dns.xyz.com进行递归查询;

2.      本地域名服务器采用迭代查询,它先向一个根域名服务器查询;

3.      根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址;

4.      本地域名服务器向顶级域名服务器dns.com进行查询;

5.      顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址;

6.      本地域名服务器向权限域名服务器dns.abc.com进行查询;

7.      权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机y.abc.com的IP地址;

8.      本地域名服务器最后把查询结果告诉主机m.xyz.com。

以上八个步骤总共要使用八个UDP用户数据报的报文。本地域名服务器经过三次迭代查询后,从权限域名服务器dns.abc.com得到了主机y.abc.com的IP地址,最后把结果返回给发起查询的主机m.xyz.com。

为了提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。






1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:220534次
    • 积分:3890
    • 等级:
    • 排名:第8174名
    • 原创:145篇
    • 转载:0篇
    • 译文:0篇
    • 评论:73条
    博客专栏