DNS(域名系统)就像互联网的电话本,它把人类易记的域名(例如www.google.com)转换成计算机能理解的IP地址(例如142.250.190.4)。

DNS到底是怎么找到这个地址的呢?这个过程叫DNS解析,主要分几步走,像一个逐级上报的查询链条:
当你输入www.example.com 并回车,你的电脑不会立刻去问别人,而是先检查自己家:
1、浏览器缓存:它自己刚查过的记录(比如几秒前刚访问过这个网站)。
2、操作系统缓存:电脑系统(Windows/macOS)记录的DNS结果。
3、本地Hosts文件:一个特殊的文本文件,你可以手动在里面写“域名→IP”的映射(常用于开发测试或屏蔽网站)。

如果以上任何一步有记录,直接返回IP,结束查询。没有找到,就进入下一步。
第二步:询问“递归DNS服务器”(本地电话局)
你的电脑会问一个预先设置好的DNS服务器(通常是你家路由器或运营商提供的,比如8.8.8.8 是谷歌的公共DNS)。
这个服务器非常有责任感,它会帮你一路查到结果再告诉你,所以它叫递归解析器。
如果这个递归解析器自己缓存里有记录,直接返回,没有的话,它就要开始一个“自上而下”的旅程了。

第三步:从根服务器开始,逐级追问(走完整个电话本体系)
递归服务器会像一个调查员一样,依次去问下面三种“更高层的服务器”:
1、问“根域名服务器”:这是互联网DNS的顶级权威,全球只有13个逻辑集群。
问题:请问www.example.com 的IP在哪里?
根服务器回答:我不管www.example.com,但我知道.com 这个顶级域名的服务器是谁,你去问它吧。(返回.com 的NS记录和地址)
2、问“顶级域名服务器”(TLD):比如.com、.org、.cn 的服务器。
问题:请问www.example.com 的IP在哪里?
TLD服务器回答:我不管www.example.com,但我有example.com 这个域名的权威服务器信息,你可以去问它(通常是域名注册商或托管商的服务器,比如ns1.example.com)。
3、问“权威域名服务器”:这是专门负责这个网站域名的“官方”服务器。
问题:请问www.example.com 的IP在哪里?
权威服务器回答:我就是管这个的!www.example.com 的IP地址是93.184.216.34。(返回最终的A记录或AAAA记录)
递归服务器拿到了最终IP,
1、 把这个结果缓存起来(下次再有人问就能秒回)。
2、 把IP地址93.184.216.34 返回给你的电脑。
你的电脑拿到IP后,直接通过这个IP地址向目标网站服务器发起网络连接(HTTP请求),开始加载网页。
> 你想去一个叫“例公司”的大楼(域名example.com)。
>
> 1.先翻自己的通讯录(本地缓存)——没有找到。
> 2.问小区的物业(递归DNS服务器)——物业也不知道。
> 3.物业问国家邮政总局(根服务器)——“例公司在哪个城市?”
> 4.总局说:“所有叫.com的公司归另一个局管”(给出顶级域名服务器)。
> 5.物业问那个局(TLD服务器)——“.com局,知道例公司吗?”
> 6.那个局说:“例公司的具体地址由它自己的总部记录,这是它总部的联系方式”(给出权威域名服务器)。
> 7.物业问例公司总部(权威服务器)——“请问你们公司在哪里?”
> 8.总部回答:“我们就在这条街的93号”(返回IP地址)。
> 9.物业跑回去告诉你:“地址在这儿,去吧!”
> 10.你自己再把地址在笔记本上记下来(缓存),以后直接去。
整个过程通常在毫秒级完成,所以你感觉不到,DNS就是这样一层一层地问,直到找到那个“知道答案”的服务器。
文章摘自:https://idc.huochengrm.cn/dns/27229.html
评论