谷歌如何每次返回不同的 A 记录?

谷歌如何每次返回不同的 A 记录?

我使用 DNS 查找工具查找www.google.com 的Name Server条目A Records

以下是内容

www.google.com results

ns2.google.com

IN  172.217.15.68

它显示一条 A 记录,但未找到 CNAME 记录。但当我www.google.com从不同的网络解析时,它返回了不同的 IP 地址。他们是怎么做到的?他们使用 DNS 循环吗?但为什么我只找到一条 A 记录呢?

$ dig www.google.com +short
172.217.21.164

$ dig www.google.com +short
216.58.211.4

$ dig www.google.com +short
172.217.20.36

答案1

我想我已经明白了,所以我会与其他可能想知道这是如何运作的人分享。

嗯,据我所知,Google 拥有自己的 DNS 权威名称服务器(这意味着它每次都可以返回它想要的任何 IP 地址),因此它首先确定您的 IP 的位置,然后随机吐出一个位于您附近的服务器的 A 地址(或多个地址)。

这就是为什么每次你对 www.google.com 进行 DNS 查询时(或从世界各地的不同位置查询),你都会得到不同的 A IPv4 地址(或多个地址)。这就是它们平衡负载的方式,然后它们可以进一步平衡负载。这就像强化版的“循环 DNS”。

在此处输入图片描述

这是我为了说明这一点而制作的一张小图。因此,您的计算机(或路由器)会询问 DNS 解析器服务器 A 记录的用途www.google.com,如果缓存中没有存储该记录,它将联系Root DNS server并询问它。它将返回名称服务器的 IP 地址.com,因此 DNS 解析器会询问 .com 名称服务器。.com 名称服务器将返回 Google 名称服务器的地址ns.google.com。然后它继续询问。它(看到您来自欧洲/亚洲/美洲)将返回距离您最近的服务器的 IP 地址。然后,DNS 解析器服务器将以轮询随机方式将这些记录返回给您,您的客户端将首先从该列表中选择第一个记录。我想如果它不可用,它将选择下一个,依此类推。

如果我有错的话,请随时纠正我。

相关内容