概述:
DNS 是计算机域名服务器 (Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定只对应一个域名。
运行机制:
在浏览器输入域名,主机先在DNS高速缓存中查找该域名对应的IP地址
如果没找到,则会向网络中的某台DNS服务器查询(主机发送UDP请求报文,封装成UDP数据报,目的端口号53,再封装成IP数据报,发送到DNS服务器)
当DNS服务器收到查询报文后(解封装,由端口号53找到服务器进程),会查询存有域名和IP地址映射的数据库,将查询结果返回给主机(响应报文,UDP数据报→IP数据报)
主机通过IP地址来访问Web服务器
问:是否能只用一台DNS服务器?
不能,英特网规模大,会造成服务器超负荷。
采用了分布式域名系统,使大多数域名都在本地解析,仅少量解析需要在英特网,所以效率较高
由于是分布式系统,即使单个服务器出现故障,也不会妨碍整个系统的正常运行
英特网的域名结构:
域名的结构由若干个分量构成,各分量之间用“点”隔开,分别代表不同级别的域名
不区分大小写
级别低的写在左边,级别高的写右边
域名系统不规定一个域名需要包含多少个下级域名,也不规定每一级域名代表什么意思
顶级域名:
国家顶级域名下注册的二级域名均由该国家自行确定;
注意: 域名只是逻辑概念,并不代表计算机所在的物理地点
域名服务器:
根域名服务器:
根域名服务器是最高层次的域名服务器,每个根域名服务器都知道所有的顶级域名服务器的域名及IP地址,英特网共有13个不同IP地址的根域名服务器分布于世界各地,虽然视为一个服务器,但实际上是服务器集群。
当本地域名服务器向根域名服务器发出请求时,路由器会把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。
根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址
顶级域名服务器:
负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)
权限域名服务器:
这些权限域名服务器负责管理某个区的域名,每个主机的域名都必须在某个权限域名服务器注册登记,因此权限域名服务器知道其管辖的域名和IP的映射关系,权限域名服务器还知道其下级域名服务器的地址
本地域名服务器:
本地域名服务器不属于上述服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。每一个英特网的提供者如一个大型都可以拥有一个本地域名服务器,它也成为默认域名服务器。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
域名解析过程:
递归查询:
主机先向本地域名服务器进行递归查询,
本地域名服务器收到递归查询的委托后,
采用递归查询的方式向某个根域名服务器查询,
根域名服务器收到递归查询的委托后,采用递归查询的方式向某个顶级域名服务器查询,
顶级域名服务器收到递归查询的委托后,也采用递归查询的方式向某个权限域名服务器查询,当查询到域名所对应的IP地址后,查询结果会在之前委托的各域名服务器之间传递,最终传回用户主机
迭代查询:(踢皮球)
主机先向本地域名服务器进行迭代查询,
本地域名服务器采用迭代查询,先向某个根域名服务器查询,根域名服务器告诉本地域名服务器 下一次应查询的顶级域名服务器的IP地址
本地域名服务器又向顶级域名服务器进行迭代查询,顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的IP地址
本地域名服务器向权限域名服务器进行迭代查询,权限域名服务器告诉本地域名服务器所查询的域名的IP地址
本地域名服务器把查询结果告诉主机
注意:
由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:
从请求主机到本地域名服务器的查询使用递归查询,其余使用迭代查询
为了提高DNS查询效率,并减轻根域名服务器的符合和减少DNS查询报文数量,在域名服务器中广泛使用了 高速缓存 ,用来存放最近查询过的域名以及从何处获得域名映射信息的记录
如果不久前有用户查询过y.abc.com的地址,则本地域名服务器的高速缓存中应存有该域名对应的IP地址
当主机向本地域名服务器递归查询该域名时,本地域名服务器将不再向根域名服务器迭代查询,而是直接将高速缓存中存放的 该域名对应IP地址返回给主机
由于域名和IP地址的映射并不是永久不变,为保持缓存中的内容正确,域名服务器会设置计时器并删除超时内容
不止在本地域名服务器需要高速缓存,在主机中也需要缓存,主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护自己的高速缓存,并且只在缓存中找不到域名时,才想域名服务器查询。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/89289.html