在 DN42 中使用 Docker 建立 Anycast DNS 服务

2020-03-16 提示 本文中的方案已有更新版本:参见《 Docker 容器共享网络命名空间,集成 Bird 实现 Anycast 高可用 》。 建议阅读本文的概念介绍部分及 Bird 的大致配置,配合上文的 Docker 部署方案使用。 什么是 Anycast 互联网上常用的路由协议 BGP 是这样工作的: 我在 DN42 拥有 IP 段 172.22.76.104/29。 我通过 BIRD 等 BGP 软件,「宣告」这台服务器上可以访问到 172.22.76.104/29 这个 IP 段。 与我有 Peering 的其它服务器记录下这一条消息:「通过某条路径,走 1 格可以访问到 172.22.76.104/29。」 其它服务器向与它们有 Peering 的服务器继续宣告:「这台服务器距离 172.22.76.104/29 只有 1 格距离。」 以此类推,其余服务器也通过类似的流程,宣布自己与 172.22.76.104/29 有 2 格,3 格,4 格距离…… 所有服务器也都通过距离最短的路径,将数据发送到我的服务器。 在这种情况中,只有一台服务器宣布自己是 172.22.76.104/29 的「源头」。...