概述
简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。这样人们只需要在浏览器中输入域名就能打开想要访问的网站了。
组成
**DNS域名空间
指定用于组织名称的域的层次结构。如图3-10-1所示,根域位于顶部,在根域的下面是几个顶级域,每个顶级域又可以进一步划分为不同的二级域,二级域再划分出子域,子域下面可以是主机也可以是再划分的子域,直到最后的主机**
DNS服务器
DNS服务器是保持和维护域名空间中数据的程序。由于域名服务是分布式的。每一个DNS服务器含有一个域名空间自己的完整信息,其控制范围成为区(Zone)。对于本区内的请求由负责本区的DNS服务器解释,对于其它区的请求将由本区的DNS服务器与负责该区的相应服务器联系
其中,DNS服务器形式上又分为主服务器、从服务器和缓存服务器。
(1)主服务器
为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。
(2)从服务器
主服务器DNS长期无应答,从服务器也会停止提供服务。主从区域之间的同步采用周期性检查+通知的机制,从服务器周期性地检查主服务器上的记录情况,一旦发现修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录。
(3)缓存服务器
缓存服务器是一种不负责域名数据维护,也不负责域名解析的DNS服务类型。它是将用户经常使用到的域名与IP地址解析记录保存在主机本地中,来提升下次解析的效率。
3. 解析器
解析器是简单的程序和子程序,它从服务器中提取信息以响应对域名空间中主机的查询,用于DNS客户端。
DNS查询
DNS查询分为递归查询与迭代查询。
- 递归查询
用于客户机向DNS服务器查询。如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。 - 迭代查询
用于DNS服务器向其它DNS服务器查询。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。
互联网DNS访问模型,采用分布式数据结构保存海量区域数据信息,用户从互联网中查询过程大致流程可理解为查询本地hosts文件→本地DNS缓存→本地DNS服务器→发起迭代查询。