小编mgu*_*utt的帖子

CDN:我的 DNS 怎么可能根据访问者的位置提供不同的 IP?

我找到了 CDN 工作原理的解释。但是有一件事我真的不明白。假设在我的位置我设置多个DNS服务器和他们所使用的域名服务器的域dns1.example.comdns2.example.comdns3.example.com。该 DNS 服务器能够根据访问者的位置(ping、地理数据库、浏览器语言或其他任何内容)提供服务器 IP。现在我www.example.org在注册表中为我的域更新此名称服务器设置。

现在,第www.example.org一个使用过期 TTL 的请求尝试解析域。它问:

  1. 本地 .hosts/DNS,如果 TTL 过期:
  2. 互联网提供商的 DNS,如果 TTL 过期:
  3. 根 DNS,如果 TTL 过期:
  4. 我的本地人 dns1.example.com

但是,如果我理解正确,那么新 IP 将添加到所有这些名称服务器缓存中,直到 TTL 再次过期。那么如何根据访问者的位置将其他 IP 发送给访问者呢?

这个答案中, theandym 说请求是“转发”的,但我认为这不是 CDN 的工作方式,因为“转发”意味着延长传输方式,导致加载时间更长。或者 CDN 是否要求域的 TTL 为零?

Update1
通过这个问题,我找到了谷歌的文档,描述了他们如何优化 CDN 性能。它没有解释 CDN 一般是如何工作的,但有一些有趣的解释,如下所示:

此后,每当客户端尝试获取托管在 CDN 上的内容时,客户端都会被重定向到确定其前缀具有最小延迟的节点。但是,此重定向基于与 DNS 名称服务器的 IP 地址相对应的前缀,该服务器代表客户端解析内容的 URL,通常与客户端位于同一位置。

这意味着 Google 首先会检查所有 IP 前缀的延迟,并为所有可用前缀定义 DNS 解析表 (?)。如果访问者拥有 IP 198.51.100.231 …

domain-name-system http cdn nameserver

12
推荐指数
1
解决办法
6587
查看次数

标签 统计

cdn ×1

domain-name-system ×1

http ×1

nameserver ×1