![当使用来自其他大陆的 DNS 时,IP 和 CDN 是否也会反映主机国?](https://linux22.com/image/733327/%E5%BD%93%E4%BD%BF%E7%94%A8%E6%9D%A5%E8%87%AA%E5%85%B6%E4%BB%96%E5%A4%A7%E9%99%86%E7%9A%84%20DNS%20%E6%97%B6%EF%BC%8CIP%20%E5%92%8C%20CDN%20%E6%98%AF%E5%90%A6%E4%B9%9F%E4%BC%9A%E5%8F%8D%E6%98%A0%E4%B8%BB%E6%9C%BA%E5%9B%BD%EF%BC%9F.png)
假设我使用来自加拿大或美国的俄罗斯 Yandex DNS。
我是否会获得反映该 DNS 所在国家/地区的 IP 和 CDN?
他们是否会倾向于更接近那个国家?
答案1
大多数 CDN 使用 Anycast 而不是 Unicast,这实际上使 DNS 返回的 IP 同时“存在于”世界各地,并且您的数据包将被路由到该 IP 的最近节点。例如,当您将 Web 服务器“隐藏”在 Cloudflare 后面时,会发生这种情况,他们会返回其 CDN 的 IP 地址而不是您服务器的真实 IP,然后将流量代理到您的服务器。
因此,回答您的问题,如果您浏览任何现代大型 Web 应用程序,您将获得离您最近的服务器的服务,而不是您的 DNS 提供商的服务。此外,DNS 提供商不应修改他们返回的记录,他们应该向您提供上次查询权威名称服务器以获取该记录时获得的缓存副本。任何其他行为都将被视为中间人攻击。OpenDNS 的做法是一个例外,如果他们无法访问权威名称服务器,他们将使用缓存中最新的过期记录为您提供服务,从而优先考虑可用性而不是绝对准确性。