DNS查询机构是怎么工作的?

HCRM技术_小炮 DNS 2025-09-30 1 0

电话簿查询

想象一下DNS是一个巨大的、分布式的全球电话簿。

域名就像一个人的名字,张三”。(例如www.google.com

IP地址就像这个人的电话号码,比如138.123.123.123。(例如142.251.42.206

当你想给张三打电话(访问一个网站)时,你并不知道他的号码,你会怎么做?

1、查个人通讯录:你先在自己的手机通讯录里找“张三”,如果找到了,直接拨打。

* *这对应DNS中的本地DNS缓存

2、问公司总机:如果通讯录里没有,你可能会打电话问公司的总机:“请问张三分机号是多少?”

* *这对应询问你的本地DNS解析器(通常由你的ISP,如电信、联通提供)。

3、总机查公司目录:总机可能自己有一个员工目录,如果能查到就直接告诉你,如果查不到,他可能会去问人事部。

* *这对应本地DNS解析器查询自己的缓存,或向根域名服务器 查询。

4、人事部指引:人事部说:“张三是销售部的,你问销售部的秘书吧。”

* *这对应根域名服务器告诉你负责.com 域的顶级域服务器 地址。

5、销售部秘书指引:总机又问销售部秘书,秘书说:“张三在销售一部,你问他们的经理。”

* *这对应顶级域服务器告诉你负责google.com 域的权威域名服务器 地址。

6、部门经理答复:总机问销售一部经理,经理给出了张三的准确分机号。

* *这对应权威域名服务器返回www.google.com 的最终IP地址

7、完成呼叫:总机把号码告诉你,你存到通讯录,然后拨打电话。

* *这对应本地DNS解析器将IP地址返回给你的电脑,并缓存起来,然后你的浏览器向该IP地址发起连接。

详细的技术工作流程(DNS解析步骤)

我们来看真实世界中DNS查询的完整步骤,这通常被称为递归查询

1、浏览器缓存查询

* 当你输入www.google.com 并回车后,浏览器首先检查自己的缓存里是否有这个域名对应的IP地址,如果有,直接使用。

2、操作系统缓存和Hosts文件查询

* 如果浏览器缓存没有,操作系统会检查自己的缓存(如Windows的DNS Client Service)和本地的hosts 文件。

3、向本地DNS解析器查询

* 如果前两步都没有结果,你的电脑会向预先配置好的本地DNS服务器 发起查询请求,这个服务器通常由你的网络服务提供商自动分配(如8.8.8.8114.114.114.114)。

* 本地DNS服务器扮演了“递归解析器”的角色,它承诺会为你找到最终答案。

4、根域名服务器查询

* 本地DNS服务器首先查询根域名服务器,全球只有13组根服务器(逻辑上,实际有很多镜像)。

* 根服务器不直接知道www.google.com 的IP,但它知道谁能管.com 这个东西,于是它返回一个负责顶级域 的服务器列表。

5、顶级域服务器查询

本地DNS服务器接着去问.com 的顶级域服务器“你知道google.com 在哪吗?”

* 顶级域服务器负责管理所有以.com 结尾的域名,它检查自己的记录,然后返回负责google.com 这个域的权威域名服务器 的地址。

6、权威域名服务器查询

本地DNS服务器最后去问google.com 的权威域名服务器“请问www.google.com 的IP地址是什么?”

* 权威域名服务器是域名记录的最终来源,它掌握着最准确、最官方的信息,它查询自己的区域文件,然后将www.google.comA记录(即IP地址)返回给本地DNS服务器。

7、返回结果并缓存

* 本地DNS服务器终于拿到了IP地址(例如142.251.42.206)。

* 它首先将这个结果在自己的缓存中保存一段时间(由结果的TTL值决定),以便下次有人查询时能快速响应。

* 它将最终的IP地址返回给你的电脑。

8、浏览器发起连接

* 你的电脑拿到IP地址后,也将其缓存起来。

* 浏览器使用这个IP地址,与Google的服务器建立TCP连接,开始传输数据,加载网页。

递归查询你的电脑向本地DNS解析器发出的查询,意思是:“我不管你用什么方法,请务必给我最终答案。”(像总机帮你跑腿)

迭代查询本地DNS解析器在向根、顶级域、权威服务器查询时进行的查询,这些服务器只返回它认为最好的下一步线索,而不是最终答案。(像总机被不同部门指引)

缓存为了极大提升效率、减少根服务器压力,DNS查询结果在每一级(浏览器、操作系统、本地DNS解析器)都会被缓存,TTL决定了缓存的有效时间。

记录类型DNS不只解析IP(A记录),还有:

A记录将域名指向一个IPv4地址。

AAAA记录将域名指向一个IPv6地址。

CNAME记录域名别名,将一个域名指向另一个域名。

MX记录邮件交换记录,指定负责接收邮件的服务器。

NS记录指定该域名由哪台权威服务器来解析。

为什么DNS如此重要?

DNS是互联网的基石,它充当了“翻译官”的角色,将人类可读的域名转换为机器可读的IP地址,没有DNS,我们就只能记住一串串数字来访问网站,互联网的易用性将大打折扣,它的分布式、层级化和缓存机制也保证了其惊人的 robustness 和效率。

文章摘自:https://idc.huochengrm.cn/dns/16895.html

评论