ZeroTier 虚拟网络拓扑深度解析:树状架构、Moon 部署与 Planet 高可用设计
引言 ZeroTier 是一种智能可编程的以太网交换机,用于构建全球范围内的虚拟网络。它将所有联网设备、虚拟机、容器和应用程序视为位于同一物理数据中心或云区域。通过其独特的树状拓扑结构(Tree Topology),ZeroTier 实现了高效的点对点(P2P)连接,同时支持高可用性(HA)设计。本文将深入解析 ZeroTier 的树状网络拓扑、Root/Leaf/Moon/Planet 角色、高可用设计以及 Moon 部署方法,结合官方文档,提供实用指导。 ZeroTier 的核心在于 VL1(虚拟层1)和 VL2(虚拟层2)。VL1 负责全球 P2P 传输,形成树状结构;VL2 提供以太网仿真,支持 SDN 功能如访问控制和微分段。所有流量端到端加密,使用 Curve25519/Ed25519 和 Salsa20/Poly1305,确保安全。 参考官方文档: 协议概述 私有根服务器(Moon) 术语表 ZeroTier 树状网络拓扑 ZeroTier 的 VL1 层采用类似 DNS 的树状拓扑(Tree Topology),根服务器(Roots)位于顶层,普通节点(Leaves)位于叶层。节点启动时无直接链接,仅向上游根服务器连接。数据包首先"向上"发送至根服务器,途中触发机会性直接 P2P 链接的创建,形成动态优化的"塌陷树"。 拓扑工作原理 初始连接:节点仅连接根服务器(Planet 或 Moon)。 数据转发:A 向 B 发送数据包,上报根服务器 R。R 若有 B 的路径则转发,否则继续上报至 Planet 根。 Rendezvous 机制:R 向 A 发送 B 的连接提示,同时通知 B,反向亦然。A 和 B 尝试直接连接,可能使用 UDP 打洞(Hole Punching)。 持续优化:树不断"塌陷",优先 P2P 直连;失败时中继(Relay)。 此设计零配置、快速发现,支持 NAT 穿越、uPnP/NAT-PMP 和 LAN 发现。即使无直连,根服务器确保即时通信。 ...