NSGW(Network Service Gateway) —— NSIO 生态的数据面网关,通常部署在 PoP / 公有云 region。它对外暴露公网 IP,对内与 NSN 通过 WireGuard 隧道连接,用三类协议入口承接外部流量,数据面只做"协议无关的字节中继 + 网关级安全 + 网关级容灾",权威 ACL 终决留给 NSN。
51820/udp)—— NSC / NSN 通过 WG 接入,获得最低延迟 L3 全隧道。同一端口同时支持两种语义,默认按 NSGW 运营方分层(详见总体架构 §6.4.1):
/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。/client 入口校验 NSD 颁发的 JWT 以确认 NSC 的 machine_id。/client 入口做"两级信任的前一级"过滤,容许偏宽,作为 NSN 终决前的早拒优化。| 文档 | 你想了解 |
|---|---|
| architecture.md | 架构与功能设计(角色、六条职责、三端口矩阵、设计特点、与 NSD/NSN 边界) |
| peer-relay-protocol.md | WireGuard 不解密中继的协议层细节(mac1 demux、receiver_index 表、与原生 WG 兼容矩阵、最小实现规模) |
| roadmap.md | 设计差距、六大能力轴、生产化路线、跨组件协调点 |
| 维度 | 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/MSS | iptables mangle 适配 | + 自适应路径 MTU |
| ACL 投影 | SSE acl_projection 驱动 | + 版本号 / 增量推 |
| L4 端口映射 | SSE gateway_l4_map 驱动 | + 流量工程 |
| 计量 / 配额 | per peer 字节计量 | per org 精确计量 + QoS |
| 职责 | 说明 |
|---|---|
| ① 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;关闭帧附带结构化拒绝原因 |