单个 IP 地址分配给多台服务器?

单个 IP 地址分配给多台服务器?

如何将一个IP分配给多个域名服务器?

例如,Google 的 IPv4 地址为 8.8.8.8,许多 DNS 都具有相同的地址。
当我根据我的地理位置向他们的 DNS 发出域名查找请求时,该请求将被重新路由到离我最近的 Google DNS 位置。

答案1

相关技术被称为任播路由。Anycast
本质上巧妙地利用了 BGP 路由协议的固有行为。包含相关地址的网络前缀从多个地方发布。互联网上的其他 BGP 路由器习惯于查看到达同一目的地的多条路径并选择最短的路径(就作为跳数 (hops) 路径。但在这种情况下,到达这个“一个”目的地的多条路径实际上恰好终止于网络上的不同位置。

值得注意的是,它不是基于地理位置的接近度,而是基于数量接近度。自主系统(实体,例如执行 BGP 路由的 ISP)在网络路径上。这通常与地理位置接近度有关,但不一定。

同样值得注意的是,当 BGP 表中的路由可用性不可避免地会随时间而变化时,完全有可能“最近”的任播目的地发生变化,可能是在会话中期。这种情况发生时显然会破坏任何维持状态的协议(包括任何基于 TCP 的协议)。DNS 是一种特别适合的协议示例(主要使用 UDP,只回答它在当前查询中收到的一件事),但任何没有非常长的连接的东西都可以很好地工作(众所周知,CDN 可以执行 HTTP/HTTPS,这显然有点冒险)。

答案2

您的问题标题暗示了完全不同的东西,即一个 DNS 名称对应多个 IP 地址。您的实际问题实际上并不涉及 DNS,它只是使用 DNS 作为示例。http(s) 的内容交付网络将使用相同的 DNS。

如果世界各地有用于同一目的的不同服务器,则路由器中会设置不同的路由目标,每个路由目标都指向最近的服务器。

通常情况下,您需要一个 IP 地址,每个路由器都指向同一个目的地。在这里,它们指向不同的目的地,但功能相同。

答案3

如果您所在的级别无法使用 Anycast 路由,则另一个选择是运行地理分散的服务器并使用以下方式配置 DNS 系统DNS 水平分割

相关内容