DNS解析详细

(一)什么是DNS

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

DNS解析是分布式存储的,比如根域名服务器ROOT DNS,只存储260个顶级域名的DNS服务器的ip地址。顶级域名服务器如.com的DNS服务器,存储的则是一些一级域名的权威DNS服务器地址(如suning.com,qq.com,163.com的DNS)。而suning.com的权威DNS存储的才是具体的主机记录(如A记录,cname记录,txt记录)


(二)DNS的分类

2.1根域名服务器(ROOT)

根服务器主要用来管理互联网的主目录,全世界IPv4根服务器只有13台(这13台IPv4根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。根服务器中有经美国政府批准的260个左右的互联网后缀(如.com、.net、.cn等)。

2.2顶级域名服务器

负责解析本身顶级域名下一级域名对应的权威DNS服务器地址。

2.3localDNS 本地DNS

一般是运营商的dns,主要作用是代理用户进行迭代解析。

2.4 本地host记录

这个优先级最高可以在自己电脑自定义域名的解析记录,如果本机有就不会再往上迭代。PC的host(C:\Windows\System32\drivers\etc\hosts)

(三)DNS解析的过程

3.1用户在浏览器输入网址www.suning.com

3.2浏览器先查询本地host是否有记录,有则直接返回ip地址给浏览器。没有则进一步查询。

3.3向运营商localDNS发起请求,若localDNS的缓存中有记录,则直接返回给用户,若没有则进行迭代查询。

3.4localDNS首先向根域名服务器发起请求,询问.com的域名服务器地址是什么,ROOT服务器返回.com的域名服务器a到m.gtld-servers.net.这么多台。

3.5 localDNS收到.com的GTLDDNS地址后,向其中一台a.gtld-servers.net.发起请求,查询suning.com的域名服务器地址是什么,GTLD返回suning.com的权威DNS服务器有这些。

3.6localDNS收到suning.com的权威DNS后,向其中一台权威DNS发起请求,查询,www.suning.com的解析值是什么,权威dns返回域名有cname,于是从新按照上面步骤查询cname的解析值,直到查询到ip地址为止。
 

参考文献

https://www.zhihu.com/question/23042131