DNS 解析
根域名
DNS 解析过程
电脑先 拿着域名
去找 DNS
服务器, DNS
把域名对应的 IP
地址返回给电脑,电脑拿着这个 IP
地址再取访问网站。
DNS服务器的结构
典型的 DNS 解析过程
解析 www.163.com
网址。
这里的www其实就是主机名,也就是163.com
提供 web
服务的主机。
过程
-
先查看本机的
host
文件,如果有,直接返回,没有去本地DNS服务器
查询。 -
本地DNS服务器
会先查看本地的缓存里面有没有,有直接返回,没有就会向根域名服务器
发送一次请求.(根域名服务器全球一共有13台)。 -
根域名服务器
会告诉你,你要查的顶级域名服务器的IP地址
。 -
然后你再去顶级域名服务器地址中查找,顶级域名服务器会告诉你
权威域名
服务器的IP
地址,然后你再去权威域名服务器
上查找, -
权威域名服务器
上存有你要查询网址的IP
地址,他就回给他返回过来。
在整个上面的过程中,对于电脑用户来说,他只发送了一次请求,所有的DNS迭代查询过程。都是由本地DNS解析器完成的。
迭代查询和递归查询
一、主机向本地域名服务器的查询一般都是采用递归查询。
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,
向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
二、本地域名服务器向根域名服务器的查询的迭代查询。
迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机
全局负载均衡器
比如百度,在全国有很多的机房,但是他的域名只有一个,但是让山东的用户访问山东的服务器,北京的用户访问北京的服务器。
过程
授权DNS服务器返回一条NS记录给本地DNS服务器。根据授权DNS服务器上的不同设置,这条NS记录可能是指向随机一个GSLB设备的接口地址或者是所有GSLB设备的接口地址。
本地DNS服务器向其中一个GSLB地址发出域名查询请求,如果请求超时会向其它地址发出查询;
GSLB设备选出最优解析结果,返回一条A记录给本地DNS服务器。根据全局负载均衡策略设定的不同可能返回一个或多个VIP地址;
本地服务器将查询结果通过一条A记录返回给用户,并将缓存这条记录。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?