<>DNS域名解析过程

首先我们知道,DNS协议是用来完成域名到 IP 地址的转换的。DNS 服务器大致分为三种类型:根域名服务器、顶级域名服务器(Top-Level
Domain, TLD)以及权威 DNS 服务器。

这些服务器的关系如下如所示:

那么这些服务器是怎么共同协作的呢?

比如我们现在要访问一个域名 www.amazon.com,首先我们的浏览器会使用 DNS 协议来获取该域名对应的 IP 地址。

该过程大概如下:

我们的主机上运行着 DNS 客户端,客户端首先与根域名服务器之一联系,期望获取.com TLD 域名服务器的 IP 地址,随后根域名服务器返回顶级域名
com 的 TLD 服务器 IP 地址。该客户端与这些 TLD 服务器之一联系,它将返回 amazon.com 的权威服务器 IP 地址。最后,该客户端与
amazon.com 权威服务器之一取得联系,它返回主机名 www.amazon.com 的 IP 地址。

<>本地 DNS 服务器

这只是一个粗略的过程,实际上,还有另一类重要的 DNS 服务器:本地 DNS 服务器。每个 ISP (网络服务供应商,比如中国移动、联通等) 都有一台本地
DNS 服务器。一般来说,主机的的本地 DNS 服务器与主机是“邻近”的。

加入本地 DNS 服务器后,DNS 客户端就会先向本地 DNS 服务器发起请求,然后 本地 DNS 服务器再依次向根域名服务器、TLD 域名服务器以及权威
DNS 服务器联系,最后获得 IP 地址,返回给 DNS 客户端

在此例中,我们为了获取一个域名的 IP 地址,共发送了 8 份 DNS 报文。为了减少网络上到处传输的 DNS 报文数量,DNS 广泛运用了缓存技术。

<>DNS 缓存

DNS 缓存即,每当本地 DNS 服务器从某个 DNS 服务器接收到一个回答,他就能够缓存包含在该回答中的任何信息。此时DNS
客户端再发起域名解析请求时,如果在 本地 DNS 服务器中就缓存了该信息,就可以直接返回所求的 IP 地址,即使它不是该主机名的权威服务器。由于主机和主机名与
IP 地址间的映射并不是永久的,DNS 服务器在一段时间后(通常设置为两天)将丢弃缓存信息。

有了 DNS 缓存技术,本地 DNS 服务器也能够缓存 TLD 域名服务器的 IP 地址,因而允许本地 DNS
绕过查询链中的根域名服务器。事实上,因为缓存,除了少数 DNS 查询以外,根服务器都会被绕过

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信