feat(guanghu-os): add authenticated native public projection
This commit is contained in:
parent
95385e812a
commit
2e076c4d5e
14 changed files with 780 additions and 4 deletions
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
type: ADR
|
||||
id: "0180"
|
||||
title: "Authenticated native public projection before boot cutover"
|
||||
status: accepted
|
||||
date: 2026-08-15
|
||||
depends_on:
|
||||
- "0179"
|
||||
---
|
||||
|
||||
# 原生公网投影先于启动切换
|
||||
|
||||
## 为什么来到这里
|
||||
|
||||
ADR-0179 已经在 JD-FD-PRIMARY 的隔离 QEMU 中证明原生只读锚点和代码发现面能够运行,
|
||||
但这不等于公网能够在原生驻留时继续工作。当前 BS-GZ-006 公网入口经 SSH 隧道回到
|
||||
JD Linux;一旦切换成光湖原生驻留,Linux 和隧道端点同时退出,公网会变成 502。
|
||||
|
||||
因此,下一步不能直接改启动项。必须先建立一个不依赖 JD Linux 的认证状态通道,并在
|
||||
BS-GZ-006 上以影子方式完成回读。
|
||||
|
||||
## 为什么不是把原文塞进心跳
|
||||
|
||||
原生心跳只回答“这个候选现在是否活着并处于规定状态”。它不承担知识、源码、命令或
|
||||
公网内容传输。这样既保持现有中继的最小权限,也避免把一次存活信号误当成内容来源或
|
||||
授权。
|
||||
|
||||
公网锚点和只读代码发现面的字节来自固定的 REPO-012 main 快照;心跳只决定这些固定字节
|
||||
当前能否被读出。这保留了两条互不冒充的因果链:内容由源码提交证明,在线状态由短时效
|
||||
认证状态证明。
|
||||
|
||||
## 决定
|
||||
|
||||
采用单向三节点投影:JD-FD-PRIMARY 的既有六序列原生心跳到 BS-SG-003;BS-SG-003 只把
|
||||
`ready` 或 `dormant` 通过专用 SSH 身份和强制命令投影到 BS-GZ-006;BS-GZ-006 只在状态
|
||||
绑定完全匹配且未过期时,从回环地址提供固定只读快照。
|
||||
|
||||
任何缺失、格式错误、绑定不符、休眠、未来时间或过期状态都返回 503。中继不能提供或
|
||||
修改公网内容。代码发现面明确不是 Forgejo 等价物。
|
||||
|
||||
## 为什么先影子部署
|
||||
|
||||
接收端先监听 BS-GZ-006 回环影子端口,不修改 nginx,不改变当前公网路径,也不修改
|
||||
JD 启动、磁盘或默认启动项。只有接收端、认证投影器、真实新鲜度和公网回读分别取得独立
|
||||
回执后,才能另行决定是否切公网;公网通过后仍不能自动推出物理启动切换。
|
||||
|
||||
## 当前结论
|
||||
|
||||
协议源码和隔离整链测试为 100。BS-GZ 接收端部署、BS-SG 认证投影器部署、真实原生新鲜度、
|
||||
nginx 切换、原生公网等价、完整 Forgejo 等价和生产启动切换均保持 0。
|
||||
Loading…
Reference in a new issue