8.8.8.8 如何保持*永远*活着?

Lap*_*sio 10 networking dns

我知道如果有工作的 DNS 服务器可以指向您公司的任何工作站点,您如何管理数据中心冗余- 有 VRRP、多 WAN 等。但是 DNS 服务器本身如何保持在线?当有人连接到服务并且无法真正配置它时,它首先受到影响。我的意思是例如8.8.8.88.8.4.4。我不记得他们倒下了。曾经。ISP 如何设法使这些 IP始终在线?

我知道这可能是一个非常广泛的问题,但我只想听到可用于此的协议/技术的名称。我可以自己阅读有关它们的详细信息。

use*_*686 11

首先,VRRP 在任何方面都不依赖于 DNS。对于单个站点内的冗余,您可以在共享 VRRP 地址上运行 DNS 服务器就好了。

但正如其他人在评论中提到的,这些服务也使用任播路由,这实质上意味着相同的 IP 地址存在于世界各地的多个地方。当整个站点出现故障时,会重新计算世界范围内的路由,以便您的数据包最终到达另一个工作站点。

一个更好的例子比谷歌的公共DNS将是DNS服务器-其服务的那些.区域,保持指针comorgeu,等等-因为他们有地图的13个逻辑地址的每个实例。ICANN 的“L”由 160 个不同的站点提供服务!

需要注意的是任播有什么用基于DNS的圆知更鸟做(其中同一名称有多个地址)。任播基本上是通过对路由协议撒谎来完成的。


Internet 使用 BGP 在组织之间交换路由信息。

BGP本质上支持根据各种标准从通向同一网络的多条路由中选择最佳路由。例如,同一个客户可能有到同一个 ISP 的冗余上行链路(宣布两条仅在权重/偏好上不同的路由)。或者客户可能有通过多个 ISP 的上行链路,每个人都会选择他们的首选路由(主要是最短的 AS 路径)——这就是“真正”多 WAN 的要点。

Multihoming

                  ?????????[AS 65535]?????????
client 1 ---ISP---?--BGProuter--+            ?
             ¦    ?             ¦--DNSserver ?
client 2 ---ISP---?--BGProuter--+            ?
                  ????????????????????????????
Run Code Online (Sandbox Code Playgroud)

但是,BGP 只会将流量引导至您的入口,而不会关心除此之外会发生什么。因此,如果您在内部设置通往同一服务器的两条路由,您将获得多宿主。但是,如果每个“入口”都通向不同的服务器(配置为相同的 IP),则您会收到任播。

Anycast... kind of?

                  ?????????[AS 65535]?????????
client 1 ---ISP---?--BGProuter-----DNSserver ?
             ¦    ?                          ?
client 2 ---ISP---?--BGProuter-----DNSserver ?
                  ????????????????????????????
Run Code Online (Sandbox Code Playgroud)

重要的是,这也意味着 BGP 并不关心 AS 是否根本不连续。要获得全球冗余,只需从多个物理位置宣布相同的网络——如果您将这些位置连接在一起(以便它们将该网络路由到一个地方),您将获得多宿主;如果他们是岛屿,你会得到任播。

Anycast

                  ?????????[AS 65535]?????????
client 1 ---ISP---?--BGProuter-----DNSserver ?
             ¦    ????????????????????????????
             ¦
             ¦    ?????????[AS 65535]?????????
client 2 ---ISP---?--BGProuter-----DNSserver ?
                  ????????????????????????????
Run Code Online (Sandbox Code Playgroud)

(就此而言,它甚至不需要是同一个 AS——例如 6to4 中继由多个独立组织运行,每个组织都宣布自己的路线192.88.99.0/24。)

注意事项:

  • Anycast 提供冗余,但不提供负载平衡。一旦 BGP 收敛,每个路由器都会选择一条首选路由(或偶尔选择几条)并继续使用它,直到网络发生变化。

  • 但是,您无法预测路由将保持稳定多长时间,因此任播有状态服务可能会很棘手。由于是无状态的并且主要使用 UDP(EDNS 减少了对 TCP 连接的需求),DNS 摆脱了它。

  • 实际服务和BGP路由器之间必须有协调,以便在服务崩溃时撤回路由。

另请参阅“4.2.2.2 的历史。故事是什么?” 在 NANOG 邮件列表上:post 1post 2