什么是DNS?
域名系统(DNS)是互联网电话簿。人们通过例如xxxx.com或xxxaaa.com等域名在线访问信息。Web浏览器通过互联网协议(IP)地址进行交互。DNS将域名转换为IP地址,以便浏览器能够加载互联网资源。
连接到互联网的每个设备都有一个唯一IP地址,其他计算机可使用该IP地址查找此设备。DNS服务器使人们无需存储例如192.168.1.1(IPv4中)等IP地址或更复杂的较新字母数字IP地址,例如2400:cb00:2048:1::c629:d7a2(IPv6中)。
什么是DNS高速缓存?
除了上述过程,递归解析器还可以使用高速缓存的数据解析DNS查询。在为给定的网站检索了正确的IP地址之后,解析程序将在有限的时间内将该信息存储在其高速缓存中。在此时间段内,如果其他任何客户端发送对该域名的请求,则解析程序可以跳过典型的DNS查找过程,并仅使用保存在缓存中的IP地址来响应客户端。
缓存时间限制到期后,解析器必须再次检索IP地址,并在其缓存中创建一个新条目。在每个站点的DNS记录明确设置了此时间限制,称为生存时间(TTL)。通常,TTL范围为24-48小时。TTL是必需的,因为网页服务器偶尔会更改其IP地址,所以解析器无法无限期地从高速缓存中提供相同的IP。
DNS服务器如何解决DNS查询?
在没有任何高速缓存的典型DNS查询中,有四个服务器协同工作以将IP地址传递给客户端:递归解析器、根域名服务器、TLD顶级域名服务器和权威域名服务器。
DNS递归器(也称为DNS解析器)是一台服务器,它从DNS客户端接收查询,然后与其他DNS服务器进行交互以查找正确的IP。解析器收到来自客户端的请求后,实际上就充当客户端本身,查询其他三种类型的DNS服务器以搜索正确的IP。
完整的DNS查询和网页查询-10个步骤
首先,解析器查询根域名服务器。根域名服务器是将人类可读域名转换(解析)为IP地址的第一步。然后,根服务器使用存储其域信息的顶级域(TLD)DNS服务器(例如.com或.net)的地址响应解析器。
接下来,解析器查询TLD服务器。TLD服务器以域的权威名称服务器的IP地址进行响应。然后,递归查询器查询权威名称服务器,该服务器将使用源站的IP地址进行响应。
解析器最终将源站IP地址传递回客户端。然后,使用该IP地址,客户端可以直接向源站发起查询,并且源站将通过发送可以由网页浏览器解释和显示的网站数据进行响应。
DNS服务器故障时会发生什么?
DNS服务器可能由于多种原因而发生故障,例如断电、网络攻击和硬件故障。在互联网早期,DNS服务器中断可能会产生相对较大的影响。值得庆幸的是,如今的DNS内置了很多冗余。例如,根DNS服务器和顶级域名服务器的实例很多,大多数ISP为其用户提供了备份的递归解析器。(个人用户也可以使用公共DNS解析器,例如Cloudflare的1.1.1.1。)最受欢迎的网站也有自己的权威域名服务器的多重实例。
在DNS服务器严重中断的情况下,备份服务器正在处理的请求量可能会导致某些用户遇到延迟,但需要非常大比例的DNS中断才能使很大一部分互联网瘫痪。
DNS查找详细步骤
用户在Web浏览器中键入“xxxx.com”,查询传输到互联网中,并被DNS递归解析器接收。
接着,解析器查询DNS根域名服务器(.)。
然后,根服务器使用存储其域信息的顶级域(TLD)DNS服务器(例如.com或.net)的地址响应该解析器。在搜索xxxx.com时,我们的请求指向.comTLD。
然后,解析器向.comTLD发出请求。
TLD服务器随后使用该域的域名服务器xxxx.com的IP地址进行响应。
最后,递归解析器将查询发送到域的域名服务器。
xxxx.com的IP地址而后从域名服务器返回解析器。
然后DNS解析器使用最初请求的域的IP地址响应Web浏览器。