跳转到内容

NSD · 演进路线与开发计划

本页汇总 nsd 仓库的当前状态、进行中的计划与六大能力轴的现状。架构概念见 architecture.md。计划编号对应 nsd 仓库 docs/plan/。

  1. 协议可插拔的控制面 + WebPKI 信任发现 —— 三传输共用事件解析器,节点零手工 pin。
  2. 私钥不可见性(协议级) —— WgConfig 无 private_key。
  3. 数据面无运行时依赖 —— NSD 不可达时既有链路继续工作。
  4. 上报驱动合成 —— NSD 只能裁剪节点声明的能力。
  5. fail-closed 授权 —— 空策略、未引用机器、跨 Account 未证明快照一律拒绝。

nsd 仓库 main(6bce2220,2026-09-30)已覆盖单实例与多实例部署、多 realm、公网入口与 Edge Auth、网关编排、Account / Organization / Network / Device / Node 模型、设备授权登记、SaaS Platform API,以及按 Network 的套餐与容量。生产部署按 tag 触发。尚未开始:SAML / SCIM、Rego / CEL 策略引擎替换、审计导出到 S3 / SIEM、跨区域部署。

状态以 nsd 仓库 docs/plan/ 索引为准。

计划目标状态
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 公网边缘 mTLSNSD 侧完成;NSGW 集成阻塞阻塞
PLAN-101 / PLAN-159 部署tag 触发部署;生产主机部署实施中
轴主问题已实现进行中 / 规划
① 身份与组织谁是谁,属于哪个组织本地账号 + 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 v2relay 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 套餐与容量跨区域部署、真实支付
形态现状
单实例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 默认不开外键,必须显式处理级联
  • 把控制面换成 gRPC —— SSE + Noise + QUIC 已覆盖 DPI 与 UDP 场景。
  • NSD 与数据面合并 —— 有状态 / 无状态解耦是核心原则。
  • 在连接路径上做实时鉴权 —— 授权是数据,在端侧本地求值。
  • NSD 探测节点或网关健康 —— NAT / 防火墙拓扑使签名上报成为唯一可移植的健康信号。
  • 租户 auth key 登记 —— 已被 Account 批准的设备授权替代。
  • 多 NSD 节点侧合并语义 —— NS 本地保存多个 NSD,但同一时刻只有一个 active。