DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询, 递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询。其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
在递归查找中,DNS服务器执行递归并继续查询其他DNS服务器,直到它具有返回给客户端的IP地址为止(通常是用户的操作系统)。在迭代DNS查询中,每个DNS查询都使用一个地址直接响应客户端,以供另一个DNS服务器询问,并且客户端继续查询DNS服务器,直到其中一个使用给定域的正确IP地址进行响应为止。
(简单来说递归实际上就是DNS服务器迭代)。
递归DNS优点
由于缓存递归DNS查询通常比迭代查询的解析速度更快。递归DNS服务器将对执行的每个查询的最终答案进行缓存,并将该最终答案保存一定的时间(称为生存时间)。
当递归解析器收到对其缓存中已经具有的IP地址的查询时,它可以快速将缓存的答案提供给客户端,而无需与任何其他DNS服务器进行通信。如果aDNS服务器为许多客户端提供服务和/或b请求的网站非常受欢迎,则很有可能从缓存中快速提供响应。
递归DNS缺点
开放的DNS服务器上允许递归DNS查询会造成安全漏洞,因为此配置可使攻击者执行DNS放大攻击和DNS缓存中毒
DNS放大攻击
由于每个机器都要求使用欺骗性IP地址打开DNS解析器,该IP地址已更改为目标受害者的真实源IP地址,然后目标会从DNS解析器接收响应。为了创建大量流量,攻击者以尽可能从DNS解析器生成响应的方式构造请求。结果,目标接收到攻击者初始流量的放大,并且他们的网络被虚假流量阻塞,导致拒绝服务。
DNS缓存中毒
DNS缓存中毒也称为DNS欺骗,是一种攻击,旨在查找并利用DNS或域名系统中存在的漏洞,以便将有机流量从合法服务器吸引到虚假服务器上。这种攻击往往被归类为域欺骗攻击(pharming attack),由此它会导致出现很多严重问题。首先,用户往往会以为登陆的是自己熟悉的网站,而它们却并不是。与钓鱼攻击采用非法URL不同的是,这种攻击使用的是合法的URL地址。
具体细节: https://blog.csdn.net/weixin_43199326/article/details/88231721