如果 Anycast 意味着我只看到分布在许多地理区域的域名的 1 个 IP 地址

If Anycast means I see only 1 IP address for a domain name distributed over many geographic regions

我想知道 Anycast。从图中可以看出,您可以将单个 IP 地址映射到多个 IP 地址。这意味着您可以拥有 1 个 IP 地址的接口,但随后在引擎盖下将其重定向到地理分布的区域 a 或区域 b。

不太了解 IP 地址,我试试这个:

$ ping google.com
PING google.com (216.58.194.206) ....
....

对我来说,google.com 位于 216.58.194.206 IP 地址。我对此有几个问题:

  1. 如果那个 IP 地址会改变。
  2. 如果这是特定区域的 IP 地址。
  3. 或者如果这可能是(在幕后)重定向到特定区域的 IP 地址,如果是的话。

我想做这样的事情:

mywebsite.com -> 123.123.123.123 -> 200.200.200.200 (region 1)
                                 -> 200.200.200.201 (region 2)
                                 -> 200.200.200.202 (region 3)
                                 ...
                                 -> 200.... (region n)

只有 123.123.123.123 可以连接到区域特定的 IP 地址,当您这样做时 ping mywebsite.com 无论您在世界的哪个地方,您总是看到 123.123.123.123

想知道 Anycast 是否就是这样工作的,如果不是,那么它是如何工作的。我正在尝试构建一个系统,其中有许多区域用于可靠性和延迟优化(接近请求源),同时拥有它,因此所有区域只有一个域。也就是说,中国没有 zh.mywebsite.com,英国没有 uk.mywebsite.com,等等,它只是 mywebsite.com 并且在引擎盖下它重定向到适当的区域。此外,拥有中间 123.123.123.123 IP 的原因是为了与区域有一个恒定的接口,所以当您执行 ping mywebsite.com 时,您将始终看到 123.123.123.123,而不是 200.200.200.200 对于区域 1 等。或者也许没有办法解决这个问题,知道这一点会很高兴:IP 将始终解析为区域 IP。

实际上,现在我再次尝试 ping google.com,我得到了一个不同的 IP 地址,所以出于某种原因至少有 2 个。

建议:问一个单一的问题,而不是一个涵盖全球互联网设计的广泛问题。询问一个而不是几个云提供商。在我下面的回答中,我限制了我提供的细节数量,否则我的答案将是一本书的大小。

I am wondering about Anycast. From the diagram it looks like you can map a single IP address to multiple IP addresses. This means you can have an interface of 1 IP address, but then under the hood redirect it to region a or region b, geographically distributed.

在 Google 云中,全球 IP 地址用于将客户路由到最近的 Google 边缘位置,然后通过 Google 内部网络将流量发送到最终目的地。最终目的地取决于资源的类型。让我们假设 Google Compute Engine 或 AWS EC2。

AWS 为 Anycast IP 地址提供 AWS Global Accelerator,它提供了类似的技术。

Not knowing much about IP addresses, I try this: ping google.com

对于企业系统,通常的做法是让许多计算服务器为单个 DNS 端点 (google.com) 提供服务。 DNS 服务器可以使用多个 A 记录对服务器进行负载平衡。负载均衡策略可以是循环、最不忙、基于地理位置等。我不知道Google对DNS名称google.com的互联网设计,但设计的可能性很大。域也可以由隐藏后端实现的负载平衡器提供服务。使用负载平衡器是一种典型的设计,但较旧的遗留设计使用 DNS 服务器。

If that IP address will ever change.

答案是“是”、“否”和“也许”。答案取决于系统的内部设计。容错、弹性设计不需要固定的静态 IP 地址。 DNS 服务器的目标是在需要转换的时间点将 DNS 名称 (google.com) 转换为 IP 地址 (216.58.194.206)。

If this is a region-specific IP address. Or if this is probably (under the hood) redirecting to a region-specific IP address, if that's a thing.

这取决于 Google 内部系统的设计方式。 Google 提供全球和区域 IP 地址。

Where only 123.123.123.123 can connect to the region specific IP addresses, and when you do ping mywebsite.com you always see 123.123.123.123 no matter where you are in the world.

您强加了一个不必要的设计标准。 DNS 服务器可以为域名提供 IP 地址转换。您的问题表明您不了解 public 和私有 IP 寻址的管理方式、地址的转换和路由方式以及与 DNS 服务器、负载平衡器和自动缩放的相互作用。希望我的回答能帮助您了解该学习什么。

I am trying to architect a system where there are many regions for reliability and latency optimization (closeness to request source), while at the same time having it so there is only 1 domain for all regions.

拥有一个域名 (example.com) 且服务器位于欧洲、美国、南美和亚洲的服务器很容易通过任何云提供商实现。不需要任播。您只需要一个全球负载均衡器 (Google) 或区域负载均衡器 (AWS),以及一个现代 DNS 服务器,Google 和 AWS 都提供。

您创建了一个涵盖 AWS 和 Google 云的问题。这两个提供者在高层非常相似,但在实现细节上却大不相同。选择一个,了解 DNS、负载均衡器和自动缩放如何适用于 AWS 或 Google。注意:您可以混合使用 AWS 和 Google 云来实现您的设计目标,但为什么要增加那层复杂性。你的设计越复杂,它就越脆弱。这意味着人类或机器在日志记录、监控、指标和警报方面有更多的管理层。