DNS查询流程
DNS查询流程
- 客户端通过浏览器访问域名为www.baidu.com的网站,发起查询该域名的IP地址的 DNS 请求。该请求发送到了本地DNS服务器上。本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向 DNS根服务器进行查询
- 本地DNS服务器向根服务器请求域名www.baidu.com的IP地址。
- 根服务器经过查询,没有记录该域名及 IP 地址的对应关系。但是会告诉本地 DNS 服务器,可以到顶级域名服务器(.com 服务器)上继续查询。
- 本地 DNS 服务器向 .com 服务器发送 DNS 请求,请求域名www.baidu.com的 IP 地址。
- com 服务器收到请求后也没有找到该域名及 IP 地址的对应关系,但是告诉本地DNS服务器,该域名可以在权威域名服务器 baidu.com上进行解析。
- 本地 DNS 服务器向baidu.com域名服务器请求域名www.baidu.com的 IP 地址。
- baidu.com服务器收到请求后,发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。
- 本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。
其中客户端与本地DNS服务器之间是递归查询,本地DNS服务器与其他服务器直接是迭代查询
高速缓存
缓存的目的是将数据临时存储在某个位置,从而提高数据请求的性能和可靠性。DNS 高速缓存涉及将数据存储在更靠近请求客户端的位置,以便能够更早地解析 DNS 查询,并且能够避免在 DNS 查找链中进一步向下的额外查询,从而缩短加载时间并减少带宽/CPU 消耗。
由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,DNS中的每项记录都会设置对应的TTL,超过TTL就会删除这段记录。