去中心化网络的属地运维监控系统 —— 每个节点自组网、自采集、可被接入;
任意节点皆可作为运维入口。没有中心,任何一片仍连通的子网都是完整可运维的。
OpsMesh — a decentralized ops & monitoring mesh for fragmented networks.
目标环境是一类网络条件受限、拓扑分散、无中心化运维通道的部署现场。传统"中心服务器 + Agent 上报"的监控架构在这里有三个致命缺陷:
属地之间没有直连路由,内网机器只能经跳板机逐级深入;集中式 Agent 的上报通道根本无法建立。
中心故障则全网失明;网络一旦分裂,远端属地彻底失管——而那恰恰是最需要运维的时刻。
任何"依赖专人或中心在线"的方案都不可靠。部署、升级、故障恢复必须由系统自己完成。
角色由能力定义,而非由部署指定。AGENT 是组网的根;CONTROL PANEL 是无状态的对等汇聚器——一个组网内可以同时存在多个,彼此平等、互不感知、视图独立。
常驻守护进程,单二进制,常驻内存 < 30MB。
opsmesh-agentopsmeshd无状态对等汇聚器,只消费广播流,不做全局裁决。
opsmesh-panelAGENT 与 PANEL 之间没有注册、没有点对点长连接依赖。AGENT 只管广播,PANEL 只管订阅——二者可以互不在线。
所有状态以"本地收到过的广播"为准,数据单写者可合并,不依赖全局一致视图。
组网拓扑不靠人工录入,由各 AGENT 实测的链路状态(直连/中继/质量)在 PANEL 端聚合重建。
每个圆点是一个运行 opsmesh-agent 的节点,连线是实测链路(实线 = P2P 直连,虚线 = 中继)。
点击按钮模拟网络分裂与重连合并——观察两个 CONTROL PANEL 如何各自控制所在子网。
从数据包到拓扑图,OpsMesh 的每个环节都可以独立说清楚。
AGENT 创建 TUN 设备绑定虚拟 IP,业务对隧道零感知。一个数据包的旅程:内核路由 → TUN 读出 → 查虚拟路由表 → 封装加密 → UDP 直发对端 → 对端解密写入 TUN。转发路径仅一次加解密,跨公网全程密文。
NAT 类型探测先行(cone / symmetric 分类),双方秒级周期向预测地址互发探测包"同时开放";多地址穷举覆盖同网段捷径;周期发包同时保活映射。穿透结果映射为 natType / tunnelProto 可观测字段。
AGENT 与 PANEL 之间唯一的契约。四类消息:HELLO(身份/元信息)、METRICS(指标/截图巡检)、LINK_STATE(链路状态)、EVENT(离散事件)。周期全量 + 事件增量,gossip 传播,(origin, seq) 去重——PANEL 可与 AGENT 互不在线。
组网分裂时广播只在连通分量内传播,分量内 PANEL 独立展示、告警、SSH 控制各自子网。重连后 gossip 反熵补齐错过消息,指标按时间戳合并无缺口——单写者模型,合并没有冲突。
安全基线是一条铁律:默认拒绝(Default Deny)。虚拟网卡上的入站业务流量,只有被节点明确"共享"的服务才可达;可达性必须经过显式授权链——短时效、可审计、可撤销。
启动配置 ssh_shared: false 时,节点是组网内"只说不听"的哑终端:
开启共享 ≠ 开端口就能连。可达性始终依附授权链,无任何旁路:
用户完成会话认证
USER → PANEL点击"打开节点终端"
USER → PANEL重新确认操作者身份(密码/OTP),防会话劫持直达终端
USER → PANELPANEL 身份签名 + 用户 ID,经 gossip 控制面传递
PANEL → AGENT验签名 / 授权名单 / 一次性 nonce,≤5 分钟时效
AGENT → PANEL票据作一次性认证,绑定源虚拟 IP;全步骤审计广播
USER → PANEL → AGENT| LAYER | 安全机制 |
|---|---|
| 节点身份 | 密钥对派生节点 ID,握手互验身份公钥;新节点入网需信任确认,防伪造节点 |
| 传输加密 | 组网隧道、gossip 广播、SSH 全链路加密;会话密钥周期轮换;中继节点仅见密文 |
| 广播完整性 | 每条消息 origin 私钥签名,转发节点无法篡改他节点数据;序列号单调防重放 |
| 暴露面 | Web 面板与 sshd 仅绑定虚拟网卡,物理网络不暴露任何端口 |
| 审计 | SSH 会话与授权链每一步(含拒绝)作为 EVENT 广播,各 PANEL 留存审计副本,单点篡改无效 |
从拓扑到闭环,五个里程碑。
AGENT 组网子系统 + HELLO / LINK_STATE gossip;PANEL 拓扑页重建
METRICS 指标采集与展示、阈值告警、失联判定
TUN 入站隔离(默认拒绝)、内嵌 sshd、二次验证 + 访问票据授权链
反熵补齐、AGENT 本地缓存回放、分裂/合并端到端演练
Web 门户截图巡检、自定义脚本探针、告警外呼(Webhook / IM)