跳转到内容

NSD · 控制中心

NSD —— NSIO 生态里唯一有状态的强一致组件。它是身份签发者、Access Grant 编译者、配置投影分发者与管理面,但不承载任何业务流量。一切”谁是谁、谁能访问什么、网关拓扑长什么样”的知识由 NSD 集中维护,再以签名投影单向推送到 NS 与 NSGW。

  • 形态:单一静态 Rust 二进制(axum 0.8 + diesel-async)内嵌 React 19 管理台,前置 Caddy 终结 TLS;可选 nsd-noise-proxy(TCP 4001)与 nsd-quic-proxy(UDP 4002)sidecar 提供 Noise IK / QUIC 控制传输。默认单实例 + SQLite;也可多实例 active-active(PostgreSQL + Redis 跨实例共享)。
  • 入站(机器侧):GET /api/v1/info(WebPKI 信任发现)、POST /api/v1/control(Envelope v1 分发器:注册、心跳、上报、快照)、legacy HTTP rail(/machine/register /machine/auth /machine/heartbeat /services/report /config/stream /device/code /device/token)。
  • 出站(投影):配置流按订阅者种类与已协商能力推送 ControlMessage,逐事件 Ed25519 签名;网关另可拉取 served realm 的 gateway.realm_config_snapshot。
  • 管理面:Admin API + OpenAPI、内嵌管理台、成员门户、nsdctl、API token、Go / Python / TypeScript SDK、Terraform provider、Webhook、审计;按 Network 的 Free / Standard / Pro 套餐与容量;SaaS 形态下另有 Platform API 供后台运营门户调用。
  • 核心不变量:NSD 从不接收节点身份或 WG 私钥;WgConfig 没有 private_key;业务表按 realm 隔离;事件经 Ed25519 签名;JWT 拒绝 alg: none;ACL 启动时 fail-closed;三种传输共用一份事件解析器。NSD 自有的签名密钥与集中管理的证书密钥与节点私钥相互独立。
文档你想了解
architecture.md架构与功能设计(角色定位、领域模型、六大职责、与 NS / NSGW 契约、设计特点)
roadmap.md当前状态、进行中的计划、六大能力轴现状、运维形态、明确不做的事
维度现状(as-built)进行中 / 规划
部署与持久化默认单实例 + SQLite(bundled,外键开启);多实例时 PostgreSQL(postgres 编译特性)+ Redis 共享配置推送、nonce、限流、防重放与二次验证;时间戳迁移;每表 realm_id;VACUUM INTO 备份PLAN-021 收尾
领域模型Account / Organization / Network(Space=realm) / Device / Node / Service / Subnet / Gateway;SaaS orgs + realms联邦只读视图(Phase 3)
机器登记设备授权流 + Account 批准(绑定精确设备公钥);device-approve 作用域令牌可自动批准;无头引导命令创建首个平台 key 与批准令牌;网关用平台 enrollment token—
人类身份本地账号 + OIDC / SSO(Deployment 级 provider);组织邀请;成员门户SAML / SCIM
控制传输SSE + Noise IK + QUIC;control_trust.v1 WebPKI 发现;Envelope v1 CBOR—
授权Access Grant(主体集 × 资源集);资源族 Service / Node / Subnet / 公网应用 / Gateway Egress / Internet Exit;系统同 Account Grant;personal_auto / policy_required;ACL 编译为 acl_configPLAN-123 统一 Grant 收尾
配置投影能力门控的 additive 投影(NodeL3、Subnet*、Short DNS v2、pair transport、Exit 候选);policy_versionrelay 配对投影分片与增量(PLAN-125)
网关编排公网网关池 + 健康发布;per-realm 配置隔离;中继 RTT 测量与按 realm 开关的”可达优先”放置;Exit 候选 / 选择 / 撤销;Egress 资源;gateway drain;计量接收与按网关新鲜度relay placement(PLAN-124)与 pair 投影规模(PLAN-125);Egress realm-native(PLAN-054)
公网入口域名声明、HTTP 路由、L4 端口、源 IP 准入、集中证书签发(DNS-01 默认,可选 HTTP-01)与分发、可轮换的客户端 CA 与 CRL、Edge Auth(OIDC / API key / Basic / 签名 URL / mTLS)、匿名公网应用公网 mTLS 的 NSGW 集成(PLAN-036 阻塞)
地址计划CGNAT 100.64/10 池、全局唯一隧道地址、持久租约、延迟重用—
命名compact naming + Short DNS v2 authority / projection—
管理台登录、总览、Quick Start、Devices、Nodes(含子网路由)、Services、Access Grants / 策略编辑器、Groups、Users、SSO、Edge Auth、Gateways、Topology、Usage、Plans 与订单、Developer → API access、Audit、Webhooks、Settings、成员 Portal;en / zh;手机端布局成员门户最小数据范围(PLAN-058)
套餐与容量Network 级 Free / Standard / Pro;成员、节点、Service、用户组、保存的 ACL 与审计天数在写事务中检查;不可变目录与订单;模拟结算开关(默认关)真实支付与网关资源结账(PLAN-178 / 187)
可观测tracing + OTLP + Prometheus;审计事件;威胁模型与 fuzz 目标审计导出(S3 / SIEM)
职责现状
① 注册表(Registry)Account / Organization / Network / Device / Node / Service / Subnet / Gateway 权威;Device 由机器公钥派生;Node 是 Network 范围的 (Network, Device, Account) Profile
② 认证(Auth)RS256 JWT(keys/jwt_signing.pem)、JWKS、机器 token 30 min、token_refresh;设备授权流 + Account 批准;平台 enrollment token(网关)
③ 策略(Policy)Access Grant 归一化模型 → acl_config(bindings / groups / hosts / rules)+ 各类投影(L3、子网、Exit、Egress、公网入口)
④ 分发(Distribute)三传输 + Envelope;按订阅者种类与能力门控分包;逐事件签名;realm 快照
⑤ 网关编排公网池与健康、realm 服务集合、relay 配对投影与 RTT 放置、Exit / Egress、公网入口投影、drain、计量
⑥ 管理面Admin API / OpenAPI / 管理台 / 成员门户 / nsdctl / SDK / Terraform provider / Webhook / API token / 套餐与容量 / 审计 / Platform API
  1. 第一次接触 NSD → architecture §1–§2
  2. 要接 NS / NSGW 契约 → architecture §3
  3. 要规划演进 → roadmap.md