DNS是如何进行解析域名的呢
DNS是什么
DNS(Domian Name System )即域名系统,它的作用非常简单,即记录一个域名对应一个IP地址,它就相当于一本巨大的电话本。那,为什么要用DNS呢?其实很简单,就是为了方便记忆。例如:我们要访问百度的地址(115.239.211.112),哪一个更容易记住呢?
DNS是一种分层树状结构,它是以点“ . "分隔。结构如下图:
根域:也就是所谓的“ . ” 。其实我们的网址在配置当中应该是(最后有一点),一般我们在浏览器中输入时会省略后面的点。根域服务器有13个IP地址,分别分布在不同的机器及地域。
顶级域(或者一级域):有两种划分方式,一种是互联网刚刚兴起时按照行业性质划分的,如com. 分给企业或公司,edu分给教育系统,gov分给政府等,另一种是按照国家划分的cn.等,每个域都会有自己的域名。
二级域:个人或组织在因特网上使用注册的名称,列如baidu.com
子域:已经注册的二级域 派生的域名,一般是网站名,例如:
主机名:标识网络上的特定计算机,例如:user1.
2.DNS是如何进行解析域名的呢
当我们访问一个网址时,会通过DNS服务器将一个域名解析成一个IP来访问最终的主机。那,DNS是如何查询到域名并把所对应的IP地址返回给我们的呢?来看下图:
我们以请求为例,来了解域名解析的整个过程:
1 )首先,当User在浏览器中访问这个域名时,我们的主机会去查找本地的hosts(在linux系统中)文件和本地的DNS解析器缓存,如果在hosts和DNS解析器里面有存有和IP的映射关系,则域名解析完成,否则,进入第二步;
2)如果在本地的hosts和DNS解析器缓存里都无法找到对应的网址映射关系,则会根据配置的本地DNS服务器进行查询, 此服务器收到查询请求时,如果所查询的域名在本地库中存有映射关系,则会进入到第九步,将解析结果直接返回给客户机;
3)若本地DNS服务器不存在该域名的映射关系,则本地DNS服务会把请求发送到13台根DNS服务器;
4)根DNS服务器会判断这个域名(.org)由谁来管理,并返回一个负责管理本域名的顶级域名服务器的一个IP地址给本地DNS服务器;
5)本地DNS服务器收到该IP之后,会再将请求发送到(.org)所在的DNS服务器;
6)如果(hyf.org)的DNS服务器无法解析该域名,就会去判断这个二级域(hyf.org)的管理者,然后返回一个负责管理二级域的DNS服务器的IP地址给本地的DNS服务器;
7)本地DNS服务器收到管理二级域的IP之后,又再将请求发送到(hyf.org)所在的DNS服务器;
8)在(hyf.org)的DNS服务器会存有的映射关系,查找到映射关系之后,将解析到的IP地址返回给本地的DNS服务器,本地DNS服务器会根据解析到的IP地址发送给客户机,并把此记录存入本地缓存中,下次访问此域名时,直接人从要本地读取。至此,DNS解析完成。
在这里面有两个关键的查询方法:递归查询和迭代查询。那,什么是递归查询,什么又是迭代查询呢?
递归查询: 一般来说就是客户机提出的查询请求便属于递归查询。
迭代查询:即重新引导查询,例如:今天你要找计算机科的张三,