我不知道域名系统如何避免全球范围内同一域名的重复条目.
假设我启动域名服务器并将域google.com映射到我的IP地址,其他域名服务器如何检测歧义?谁负责避免这种重复?
解决方法
之所以无关紧要,是因为没有人会要求您的个人DNS服务器解析google.com.
假设我问我的浏览器google.com.以下是我的ISP的递归名称服务器经历的步骤,假设谷歌的A记录未在本地缓存:
>我从ISP的名称服务器请求google.com的DNS A记录(并且它不在我的个人DNS缓存中).
>如果最近没有缓存,则名称服务器知道它对google.com区域不具有权威性,因此无法在本地区域数据库中查找它.因此,它会询问有关google.com的13个根名称服务器中随机的一个.
>根服务器使用其NS记录将ISP的名称服务器发送到.COM TLD的全局顶级域服务器.
> GTLD名称服务器也不知道google.com在哪里,但它会向名称服务器发送对google.com区域具有权威性的名称服务器的记录.
>现在我们的名称服务器询问权威服务器,并返回google.com的A记录,该记录将返回给我们(并缓存在ISP的名称服务器上,以避免再次通过所有这些).
正如您所看到的,在该过程中,我或我的名称服务器都不会询问您的DNS服务器google.com在哪里.
现在,通过缓存中毒和其他类似攻击存在潜在的漏洞.其中最着名的是Kaminsky漏洞.
有关DNS解析的绝佳分步指南,以及严重问题和漏洞的描述,请查看this illustrated guide.