编程学习网 > 数据库 > 高并发网站架构设计之DNS解析原理全过程
2020
12-19

高并发网站架构设计之DNS解析原理全过程

attachments-2020-12-YKooMOaw5fdd5bbe352bf.png

什么是DNS解析?

域名系统(英文:DomainNameSystem,简称:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

因为网网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,而常见的IPV4地址并不是很好记忆,特别是出现了IPV6后。

所以我们先把IP地址和域名做好映射关系后,在浏览器地址栏中输入域名,就能看到所需要的页面,在这面有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。相当于就是拿我们的域名去它的分布式数据库里面进行记录的检索,然后得到真实的IP地址访问。

DNS服务器分别有本地域名服务器和根DNS服务器,顶级DNS服务器,权威DNS服务器。

本地域名服务器就是当前计算机里面的域名解析记录,例如:windows下面的hosts文件里面的解析记录。

根DNS服务器:DNS域名中使用时,规定由尾部句点(.)来指定名称位于根或更高级别的域层次结构,单个句点(.)或句点用于末尾的名称代表根域名

全球共有13台根域名服务器。这13台根域名服务器中名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置于英国、瑞典和日本。

顶级DNS服务器:用来指示某个国家/地区或组织使用的名称的类型,例如:.com型名称,它代表所有的com类型的域名。

权威DNS服务器: 表示使用到了顶级DNS的域名,我们常说的就是它,例如:sixstaredu.com


DNS解析原理

例如:拿 sixstaredu.com举例说明

1、在浏览器中输入www . sixstaredu.com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,称它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器

这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://sixstaredu.com)给本地D...。当本地DNS服务器收到这个地址后,就会找sixstaredu.com域服务器,重复上面的动作,进行查询,直至找到www . sixstaredu.com主机。

6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。


DNS是如何做服务器横向扩容的呢?

一个域名可以解析到多个IP地址,这样就可以达到访问一个ip,由多个服务器来提供这个网络请求的服务,这样就把原来的一台机器转化为多台的机器。由多台服务器来提供网络请求服务。

虽然一个域名可以解析到多个服务IP,但是同一时刻,一个域名只能解析出一个IP供你使用。这些IP可以轮流着被解析。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取