NSD(Network Service Director) —— NSIO 生态里唯一有状态的强一致组件。它是身份签发者、策略编排者、配置分发者,但不承载任何业务流量。一切"谁是谁、谁能访问什么、网关拓扑长什么样"的知识由 NSD 集中维护,再以单向推送形式下发到 NSN / NSGW / NSC。
/machine/register · /machine/auth · /machine/heartbeat · /device/code · /device/token · /services/report · /gateway/reportGET /api/v1/config/stream 单向推送 11 类事件(wg_config / proxy_config / acl_config / acl_projection / gateway_config / routing_config / dns_config / services_ack / token_refresh / ping / pong)。WgConfig 协议级地不含 private_key 字段,这是硬约束。| 文档 | 你想了解 |
|---|---|
| architecture.md | 架构与功能设计(角色定位、五大职责、设计特点、与数据面契约) |
| roadmap.md | 设计差距、生产化路线、六大能力轴 × MVP/GA/企业级 |
| 维度 | MVP 设计 | 生产目标 |
|---|---|---|
| 持久化 | 关系型存储,行级 orgId 隔离 | Postgres 主推,SQLite 单机可选;独立 schema/DB 隔离(企业) |
| 认证方式 | authkey + device_flow + Ed25519 签名 JWT | RS256/ES256 + JWKS 暴露 + 吊销机制 |
| ACL 下发 | 由 services_report 自动合成,推送 acl_config | 按 roles / userResources 合成 + 版本号 + 一键回滚 + 灰度发布 |
| 多租户 | realm 字段 + 行级 orgId 隔离 | + 独立 schema/DB 隔离(企业) |
| 身份提供者 | authkey / device_flow / OIDC | + SAML 2.0 / SCIM / 2FA / WebAuthn |
| Web UI | 14 类设置页 + i18n | + 主题化 + 角色化 dashboard |
| 多 NSD 并行 | 节点侧 MultiControlPlane 合并,NSD 间互不感知 | NSD 联邦(企业级):只读视图 + 跨 NSD 审计关联 + 策略冲突检测 |
| 审计日志 | 结构化日志 | + S3 导出 + SIEM 对接 |
| 策略 DSL | JSON 编排 | Rego / CEL / HuJSON;NSD 编译,NSN/NSGW 仅见编译产物 |
| 控制面传输 | SSE(HTTP/1.1 over TLS) + Noise IK + QUIC(fingerprint pin) | + ca_bundle_update 证书热更新 + 协议版本协商 |
| 生态集成 | OpenAPI + Webhook | + Terraform provider + 多语言 SDK + k8s Operator |
| 职责 | MVP 设计 | 生产目标 |
|---|---|---|
| ① 设备注册表 (Registry) | 持久化 + 幂等注册 | + RBAC + Machine PKI |
| ② 认证服务 (Auth) | authkey + device_flow + Ed25519 → JWT | 真实 JWT + 吊销 + challenge-response + 三层 API Key |
| ③ 策略引擎 (Policy) | 由 services_report 自动合成 + acl_config 下发 | 显式 RBAC(resources/roles/userResources)+ 版本 + 灰度 + DSL |
| ④ 配置分发 (SSE) | 进程内订阅广播 | Redis pub/sub 广播 + sticky session + SSE 快照 CDN |
| ⑤ Web UI / Admin API | 14 类设置页 + REST API | 完整 UI + OpenAPI + CLI(nsdctl)+ 多语言 SDK + Webhook + TF |