在为自己的网站设置 DNS 的过程中,我对查找一家大公司的 DNS 记录感到好奇。我选择了 facebook.com,并使用 dnschecker.org 查看他们的 DNS 记录。由于大多数人仍在使用 IPv4,因此忽略了 AAAA 记录,我只得到了 2 个地址:31.13.71.36 和 157.240.26.35
也许我在这里忽略了一些技术,但每个静态 IP 在任何给定时间只能分配给一个 NIC。这意味着 Facebook 仅通过两台(非常快的)机器处理来自其数据中心的所有 IPv4 入口和出口。没有办法。
我在这里遗漏了什么?
答案1
当您查询 DNS 服务器时,尤其是查询A
记录之类的内容时,您无法获得网站所有设置的完整信息。您只能获得满足请求并连接到预期目标所需的信息。
以前可以进行额外的查询并获取完整列表,但出于安全原因,此功能已被禁用并弃用很长时间。
甚至在安全措施减少您可以从 DNS 中抓取的信息量之前,网站就已经使用动态 DNS 技术来实现负载平衡。基本上,当您的主机查询 Facebook 的 A 记录时,它会从一大串未知大小的列表中得到一个或几个答案。您的系统可能会缓存该结果,因此后续查询会给出相同的答案,尽管源 DNS 服务器可以为此设置超时(我检查时超时大约为 300 秒)。
因此,基本上,当您查询 facebook.com 时,您会从列表中获得一个随机答案,并且该答案可能会发生变化(可能每 300 秒一次)。Facebook 的 DNS 服务器可以轻松向查询它们的每个客户端提供完全不同的答案,甚至可以尝试检测您的网络位置来调整答案以提供网络上靠近您的服务器。正如另一个答案中提到的,这正是 CDN 的设计目的。
答案2
由于这些 IP 不属于服务器,因此它们指向 Facebook 的 CDN“内容分发网络”
也许其他人可能对他们的设置有一些了解,但我的 DNS 服务器向您报告了不同的 IP,因此我敢说有数千个 IP 在一直在动态变化。