I'm starting to provide Chinese / English versions of some articles, switch with the Language menu above. 我开始提供部分文章的中文、英文翻译,请使用顶部语言菜单切换。

在 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 的 “源头”。...