跳转至

阶段十:MM 公网 IP 可替换架构整改方案(2026-09-25)

状态:已完成并归档

计划 ID:mm-public-ip-replaceable-architecture

📌 结论摘要

P10 已完成可执行计划、代码、文档、CI 和生产验收收口。公网入口不再以 MM 主机地址作为系统身份,edge.yohan.fun 成为稳定逻辑边界,业务域名通过 CNAME 跟随,Nginx、UFW、Headscale DERP、SSH、Gemini 出口和恢复脚本改为读取受控快照或明确双通道。依据是 P10 原始计划 rev.13、本归档、Git 提交、GitHub Actions、RR 生产容器和公网回读结果。影响是后续换边缘时只需准备新边缘并更新权威地址,不需要逐项追踪散落硬编码。

🧾 计划范围

P10 保留原计划身份和追加式修订记录,没有创建平行 P10 计划。工作包覆盖计划治理、DNS 冻结、端点快照、SSH 双通道、直连与 DERP、拓扑接口、控制台态势、切换回退演练和文档归档。

工作包 归档结论 主要证据
P10-0 计划与发布治理 完成 计划状态机、自托管 Runner、四个无状态服务自动发布、公网 Docs 和控制台认证回读
P10-1 DNS 与域名清单 完成 权威 NS、静态 edge A/AAAA、业务 CNAME、证书 SAN、TTL 和例外清单
P10-2 端点快照与渲染器 完成 root-only 快照、原子 last-known-good、负向注入、幂等渲染和漂移检测
P10-3 SSH 双通道 完成 RR、101、Home 到公网与 Tailnet 路径身份回读;DD、MM 无反向管理权限
P10-4 直连、DERP 与 101 路由 完成计划可执行范围 FullCone 后直连复核;MM region 900 可用;DD region 901 需独立 DNS 与证书前置
P10-5 拓扑接口与金丝雀 完成 脱敏只读接口、网络控制路径冷连接告警、恢复事件和敏感字段负向回归
P10-6 Console 网络态势 完成 首页拓扑、Provider 页 ClawBot 状态、桌面与移动端浏览器契约
P10-7 边缘切换与回退 完成隔离演练 候选渲染、非法 Tailnet 地址拒绝、last-known-good 保持和回滚校验
P10-8 文档与残余风险 完成 架构、节点、计划、归档、索引、CI 和重新验证条件同步

🌐 已建立的可替换模型

稳定身份与运行时地址已经分层。edge.yohan.fun 是逻辑边缘身份,当前 IPv4、IPv6、网关和健康状态属于运行时数据;业务域名只保存 CNAME,不保存边缘地址。控制面程序需要 IP 规则时,读取 root-only 端点快照或明确 Tailnet 地址,任何解析失败都不得覆盖上一份健康快照。

对象 归档模型 防复发机制
DNS edge 静态 A/AAAA,业务名 CNAME 换边缘只更新权威地址;硬编码检查阻止地址进入活跃源
Nginx 与 UFW 读取受控 allow 渲染结果 重复渲染一致,错误地址拒绝,漂移检查失败
Headscale DERP 只保存逻辑主机名,MM 为 region 900 headscale configtest、真实连接和单区域降级状态
SSH 公网与 Tailnet 两个显式 Host 块 明确用户、端口、IdentityFile 和身份回读
Gemini 出口 RR 通过受控 SOCKS 出口到当前边缘 实测出口与快照一致,unit 不保存固定地址
恢复脚本 解析 edge,失败时使用 last-known-good 重启路径、私网注入和旧值回滚测试
Console 后端只返回脱敏真实链路事实 前端不推断路径;业务站点红链与整网冷连接告警分离

🧪 生产与回归结论

最终验收覆盖本地 CI、严格文档构建、GitHub Actions、P10 自动发布器、RR 生产容器、公网 API、Docs 和控制台浏览器。根因修复不仅替换一次地址,还包含长期门禁:Repository Guardrails 校验计划状态、文档清单、生产部署变量门禁、端点渲染和 MM 地址硬编码。

负向回归至少覆盖旧地址或当前 MM 地址写入活跃源、私网或回环解析、非法 Tailnet 地址、过期快照覆盖 last-known-good、单个业务站点故障触发整网告警、敏感字段进入公开拓扑、未认证控制台计划和自动部署被硬编码禁用。

🔁 回退

代码和文档按 Git 提交回退;端点、Nginx、UFW、DERP、SSH、Gemini 和 DNS 分别保留备份或 last-known-good。回退必须先恢复可用管理通道,再恢复数据面,并重新验证 DNS、TLS、SSH、Tailscale、DERP、SOCKS 出口和业务入口。任何只恢复文件、未重验网络的行为都不能写成回退完成。

⚠️ 残余风险与重新验证

风险或前置 当前事实 触发后的动作
第二生产边缘 当前没有第二台具备同等证书、回源、SSH、防火墙和监控的完整边缘 条件满足后执行 P10-7 的真实切换、故障注入和回退,不重建计划
DD region 901 DD 可作为 relay,但缺少独立 DERP 域名和可信证书 提供独立入口后部署正式 region,禁止明文或自签绕过
IPv6 DNS 发布 AAAA,完整 443、DERP 和回源路径仍需独立复核 从具备 IPv6 的节点执行端到端验证
Three Dogs 业务站点不足 20 秒内无响应时,拓扑显示红链但不触发整网冷连接告警 独立排查后端、代理和资源瓶颈
外部漂移 边缘地址、Headscale、Tailscale、Nginx、证书、DNS 厂商、路由器固件或云厂商网络变化 重新执行端点、SSH、DERP、业务与回退验收

⚠️ 未决项 / 需要用户决策

事项 当前事实 下一步
下一阶段需求 P11 仅建立状态占位,尚未选定主题 用户提交新需求后再冻结 P11 工作包
真实第二边缘切换 属于外部资源和维护窗口,不是已完成的现网变更 条件具备后按 P10-7 执行