NSIO Docs
NSIO Docs
首页
总体架构

NSN · 站点节点

NSN · 站点节点
NSN · 架构与功能设计
NSN · 演进路线与开发计划

NSC · 用户客户端

NSC · 用户客户端
NSC · 架构与功能设计
NSC · 演进路线与开发计划

NSD · 控制中心

NSD · 控制中心
NSD · 架构与功能设计
NSD · 演进路线与开发计划

NSGW · 数据网关

NSGW · 数据网关
NSGW · 架构与功能设计
NSGW · WireGuard Peer Relay 协议层
NSGW · 演进路线与开发计划

Last Updated: 2026/5/8 08:44:39

Previous PageNSD · 演进路线与开发计划
Next PageNSGW · 架构与功能设计

#NSGW · 数据网关

NSGW(Network Service Gateway) —— NSIO 生态的数据面网关,通常部署在 PoP / 公有云 region。它对外暴露公网 IP,对内与 NSN 通过 WireGuard 隧道连接,用三类协议入口承接外部流量,数据面只做"协议无关的字节中继 + 网关级安全 + 网关级容灾",权威 ACL 终决留给 NSN。

#1. 角色速读

  • 位置:公网入口(PoP / cloud region)。
  • 三类入站:
    • WireGuard UDP(51820/udp)—— NSC / NSN 通过 WG 接入,获得最低延迟 L3 全隧道。同一端口同时支持两种语义,默认按 NSGW 运营方分层(详见总体架构 §6.4.1):
      • 终结模式(self-hosted 默认 / managed opt-in)—— 网关持私钥参与握手,解密后按 allowed-ips 路由;同时拿到 ACL 预拒、流级计费、MSS clamp 等"网关见明文"才有的能力。
      • 不解密中继模式(managed 默认 / self-hosted 兜底)—— 网关只见密文,在 NSC 与 NSN 之间桥接端到端 WG 会话,结构性不可观测客户明文,兼容存量 WireGuard 客户端(无需协议扩展)。设计参照 Tailscale Peer Relay。
    • WSS 中继(/client + /relay)—— UDP 被严格阻断时的备选通道,以 WebSocket 多路复用承载 TCP / UDP 业务流量。
    • 公网流量入口(443/tcp,HTTPS 反向代理)—— 不依赖 NSC 的独立流量承载形态:浏览器、API 客户端、移动端、第三方系统都可以直接从公网到达本网关,基于 Host / SNI 路由到对应 NSN。可选挂接外部鉴权(OIDC / mTLS / API key / 签名 URL / Basic Auth)以覆盖"无 NSC 也无 NSD JWT"的访问主体识别;鉴权后流量经 WireGuard 段 2 送达 NSN,ACL 终决仍在 NSN。
  • 运行约束:
    • 被动 —— NSGW 不主动心跳上报,只响应 NSD 探测;它的职责是保持 SSE 订阅就绪 + 三条入口可达。
    • 无身份维护 —— 不签发 token、不维护用户身份,只在 /client 入口校验 NSD 颁发的 JWT 以确认 NSC 的 machine_id。
    • 非权威 ACL —— 在 /client 入口做"两级信任的前一级"过滤,容许偏宽,作为 NSN 终决前的早拒优化。

#2. 文档结构

文档你想了解
architecture.md架构与功能设计(角色、六条职责、三端口矩阵、设计特点、与 NSD/NSN 边界)
peer-relay-protocol.mdWireGuard 不解密中继的协议层细节(mac1 demux、receiver_index 表、与原生 WG 兼容矩阵、最小实现规模)
roadmap.md设计差距、六大能力轴、生产化路线、跨组件协调点

#3. 一屏速览

维度MVP 设计生产目标
WG 管理netlink + diff apply+ 多实例 + 热升级
HTTPS 反代轻量 SNI / Host 路由 + PROXY 协议路线 A:轻代理 + 外部入口 / 路线 B:envoy + xDS
配置同步SSE 订阅 NSD+ 断链快速恢复
peer 变更SSE → diff apply+ 一致性校验
带宽上报周期上报计费埋点(/billing/ingest)
UDP hole-punch基础协调+ STUN/TURN 兜底
WG 不解密中继(Peer Relay)必须实现:receiver_index / 端口寻址,SSE gateway_wg_relay 驱动配对表;兼容存量 WG 客户端+ Mesh / 跨网关协调
MTU/MSSiptables mangle 适配+ 自适应路径 MTU
ACL 投影SSE acl_projection 驱动+ 版本号 / 增量推
L4 端口映射SSE gateway_l4_map 驱动+ 流量工程
计量 / 配额per peer 字节计量per org 精确计量 + QoS

#4. 六条核心职责

职责说明
① WireGuard UDP 终结内核 WG 接收握手 + 加密包,SSE wg_config 驱动 peer diff apply,allowed-ips 即加密路由 + 内部转发表
② WireGuard 不解密中继与 ① 共用 51820/udp,网关不解密、不持有密钥,按 4-tuple / receiver_index 桥接 NSC ↔ NSN 端到端 WG 会话;兼容存量 WireGuard 客户端;参照 Tailscale Peer Relay
③ WSS 中继(WsFrame)NSC 走 /client,NSN 走 /relay,网关内做会话缝合;无 NSN 会话时本地直连 fallback
④ 公网流量入口(HTTPS 反向代理)独立流量承载形态——不依赖 NSC,浏览器 / API / 移动端等公网客户端经此承载入 NSN;TLS 终结 + Host/SNI 路由;不解析应用层 / 不做服务级授权;**可选外部鉴权(OIDC / mTLS / API key / 签名 URL / Basic Auth)**确认访问主体身份,授权裁决仍由 NSN 终决;路由表由 SSE routing_config 原子更新
⑤ 与 NSD 注册表同步启动时 register + gateway_report,运行期订阅 SSE(wg_config / routing_config / acl_projection / 规划中的 gateway_wg_relay)
⑥ /client ingress 的 ACL 预过滤两级信任前一级,允许偏宽,fail-open;关闭帧附带结构化拒绝原因

#5. 推荐阅读顺序

  1. 第一次接触 NSGW → architecture §1-2
  2. 要规划演进 → roadmap.md 设计差距 + 六大能力轴