NSD · 演进路线与开发计划
本页汇总
nsd仓库的当前状态、进行中的计划与六大能力轴的现状。架构概念见 architecture.md。计划编号对应nsd仓库docs/plan/。
1. 不可放弃的差异点
Section titled “1. 不可放弃的差异点”- 协议可插拔的控制面 + WebPKI 信任发现 —— 三传输共用事件解析器,节点零手工 pin。
- 私钥不可见性(协议级) ——
WgConfig无private_key。 - 数据面无运行时依赖 —— NSD 不可达时既有链路继续工作。
- 上报驱动合成 —— NSD 只能裁剪节点声明的能力。
- fail-closed 授权 —— 空策略、未引用机器、跨 Account 未证明快照一律拒绝。
2. 当前状态
Section titled “2. 当前状态”截至 2026-10-20,M6 的实现不能只按旧 main 判断:refactor/unified-engine / fix/live-e2e 已参与真实 Node / 私有服务验收;test/m6-multi-nsd-authority 含来源退役、snapshot / report floor 和快速 rebind incarnation 修复;feat/r3-gateway-node 含 L8 候选对齐和真实 HTTPS 控制引导。2026-10-23 起 refactor/unified-engine 拒绝有歧义的节点管理命令(#463,发布线 nsd-20261024-e098a5c);feat/r3-gateway-node 截至 2026-10-26 补充核心控制与运维指南、服务权威与 relay 权威操作,并把 roster / relay、身份 / 来源、名字 / 公网边缘的配对记录为本阶段未资格化。main(6bce2220)未变。具体证据见迁移计划 §4.2。
最新 NS / NSD 严格 Linux 配对记录确认 scoped logout 后两个旧后端 TCP 关闭,另一独立 NSD 与 Quick 的原连接继续;每个 NSD 一个 Network、传输使用测试适配器。快速重授予仍是组件证据,不宣称额外的真实 logout / relogin 验收。完整 R3 producer family、同一 NSD 多 Network、当前 pin 原生发布与主线集成仍需独立关闭。
下列既有业务计划和能力表保留为旧线基线;其中 Node IPv4 分配、relay 配对投影等不代表 M6 / R3 新线目标,也不表示本轮重新验收全部业务能力。
3. 进行中的计划
Section titled “3. 进行中的计划”新线以相应分支的 plan / task 和验收记录为准;旧业务计划未在本轮重新判定完成态。
| 计划 | 目标 | 状态 |
|---|---|---|
| M6 / PLAN-293 与当前数据面验收 | 私有服务 authority、独立 NSD、来源生命周期与实际节点配对 | 已有实现及限定通过记录;完整账户 / 网关交付仍在推进 |
| PLAN-303–306 / QUALIFICATION-016–017 | stopped source、持久 floor、快速 rebind 和 report 恢复 | 组件修复完成,最新严格 Linux 配对通过;生产 / main / 广泛 Network 验收另验 |
| R3 普通网关工作包 | 身份、控制流及各业务 family producer | receipt、共享候选与引导已实现;完整 producer 和 released handoff 待交付 |
| PLAN-123 统一 Access Grant 与 L3 执行 | 一条逻辑 Grant、归一化模型、系统同 Account Grant、跨 Account 默认拒绝、enforced 代际 | 实施中(与 NS PLAN-173 配套) |
| PLAN-124 relay gateway placement | 用显式、可运营的 placement 组件决定中继网关 | 实施中 |
| 中继位置测量(20260929-2147) | 节点 RTT 测量名单、gateway_rtt 上报、按 realm 开关的”可达优先”放置 | 实施中(开关默认关闭) |
| PLAN-125 relay pair 投影规模 | 有界 → 分片 → 增量化 O(N²) 的 gateway_wg_relay 广播 | 实施中(NSGW PLAN-130 配套) |
| PLAN-126 设备重建爆炸半径 | 一台机器的在线边不应让所有客户端断开全部会话 | 草案 |
| PLAN-178 / PLAN-187 Network 商业化 | Free / Standard / Pro 套餐、容量、订单与结算 | 实施中(结算为模拟,默认关闭) |
| PLAN-021 多实例 active-active | 跨实例配置推送、PostgreSQL、共享会话、nonce 与限流 | 四个环节已交付,计划未关闭 |
| PLAN-022 / PLAN-023 | 管理台 SSO(之后 SAML、SCIM);生态集成(Webhook、SDK、Terraform) | 实施中 |
| PLAN-166 审计完整性与管理出站 | 审计完整性与管理面出站连接整改 | 实施中 |
| PLAN-054 realm-native Gateway Egress 资源 | Egress 资源 realm 原生化 | 实施中 |
| PLAN-058 成员门户最小数据范围 | 门户最小权限数据范围与前端接线 | 实施中 |
| PLAN-036 公网边缘 mTLS | NSD 侧完成;NSGW 集成阻塞 | 阻塞 |
| PLAN-101 / PLAN-159 部署 | tag 触发部署;生产主机部署 | 实施中 |
4. 旧业务能力基线(迁移对照)
Section titled “4. 旧业务能力基线(迁移对照)”| 轴 | 主问题 | 已实现 | 进行中 / 规划 |
|---|---|---|---|
| ① 身份与组织 | 谁是谁,属于哪个组织 | 本地账号 + OIDC(Deployment provider)、组织邀请(稳定 Network ID)、Account / Org / Network / Device / Node 模型、设备授权 + 精确设备公钥绑定、成员门户、API token、批量用户导入 | SAML / SCIM、2FA 强制、Machine PKI |
| ② 策略与编排 | 谁能访问什么 | Access Grant 资源族(Service / Node / Subnet / 公网应用 / Egress / Exit)、系统同 Account Grant、personal_auto / policy_required、policy_version、快照 / 回滚 / 模拟(模型层) | PLAN-123 收尾;Rego / CEL;定时 / posture 条件;双人审批 |
| ③ 网络编排 | 站点与网关如何组网 | 公网网关池、per-realm 隔离、relay 配对投影、中继 RTT 测量与可达优先放置(按 realm 开关)、Exit 候选 / 选择 / 撤销、Egress、子网映射控制面(active / standby、personal_auto)、CGNAT 地址计划与全局唯一租约、compact naming / Short DNS v2 | relay placement 收尾、配对投影分片、GeoDNS / 多区 |
| ④ 公网入口 | 无 NS 的公网访问 | 域名声明、HTTP / L4 路由、源 IP 准入、集中证书签发(DNS-01 / HTTP-01)、可轮换的客户端 CA 与 CRL、Edge Auth(OIDC / API key / Basic / 签名 URL / mTLS)、匿名公网应用、Signed-URL 商业签发 | 公网 mTLS 的 NSGW 集成 |
| ⑤ 可观测与审计 | 现在什么在跑,过去谁做了什么 | tracing + OTLP + Prometheus、审计事件、Webhook、计量接收与按网关新鲜度、孤立计量清理、启动时外键完整性报告、中继放置指标 | 审计导出、SIEM、SLA 报表 |
| ⑥ 运营与扩展 | 如何部署、如何扩 | 单静态二进制 + Caddy + sidecar;单实例 SQLite 或多实例 PostgreSQL + Redis;VACUUM INTO 备份;无头引导命令;tag 部署;签名 Quick Start 发布;SaaS Platform API;Network 套餐与容量 | 跨区域部署、真实支付 |
5. 运维形态
Section titled “5. 运维形态”| 形态 | 现状 |
|---|---|
| 单实例 | nsd serve + Caddy(443)+ 可选 Noise(4001)/ QUIC(4002)sidecar;SQLite;data_dir 默认 /var/lib/nsd;scripts/deploy-transports.sh 一键启用传输 sidecar |
| 多实例 | 负载均衡后多个实例;以 postgres 特性构建并连接 PostgreSQL;[fanout] backend = "redis",同一集群的实例使用同一个频道 |
| 首次引导 | nsd bootstrap-platform-key 安装首个平台 API key;nsd bootstrap-approver-token 安装设备批准令牌;均从 stdin 读取秘密 |
| 备份 | 数据库与 keys/ 都必须备份;漏备 keys/ 会让既有 JWT 全部失效 |
| 手工改库 | 按运维手册先快照、检查、修改、复查;宿主机 sqlite3 默认不开外键,必须显式处理级联 |
6. 明确不做的事
Section titled “6. 明确不做的事”- 把控制面换成 gRPC —— SSE + Noise + QUIC 已覆盖 DPI 与 UDP 场景。
- NSD 与数据面合并 —— 有状态 / 无状态解耦是核心原则。
- 在连接路径上做实时鉴权 —— 授权是数据,在端侧本地求值。
- NSD 探测节点或网关健康 —— NAT / 防火墙拓扑使签名上报成为唯一可移植的健康信号。
- 租户 auth key 登记 —— 已被 Account 批准的设备授权替代。
- 多 NSD 节点侧合并语义 —— NS 本地保存多个 NSD,但同一时刻只有一个 active。