7d89ec9d91
- domains.md: 四组域名隔离登记 + 冷备池 ≥5 + 启用流程(不含身份信息) - cdn/terraform: Cloudflare 配置即代码(WAF/bot/速率限制/代理DNS/回源鉴权注入)+ 30min 重放 Runbook - server/internal/originauth: 回源鉴权中间件,非 CDN 网段或鉴权头不符一律 403,支持双值轮换 - tools/endpoint-signer: 离线 Ed25519 签名 CLI(端点 + 公告文档,单调版本防回滚,key_id 双公钥轮换) - tools/publish-mirrors: ≥3 镜像发布 + hash 一致性校验 + 故障转移取回 - CLIENT-CONTRACT.md: schema/验签/防回滚/合并/兜底链/channel 客户端契约 - 出站独立出口要求写入部署文档;私钥/token/身份信息一律不入库 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
域名分组登记(配置即代码)
口径来源:doc/05 §3「域名体系与解析兜底」、doc/06 §2「身份隔离红线」。
本文件只登记分组、状态、启用流程,绝不记录任何注册身份信息(注册商账号、邮箱、付款方式、WHOIS 联系人等身份线索一律离线管理,见末尾「身份线索」一节)。所有占位域名均为
example-*,启用真实域名时只替换占位、不写身份。
1. 四组隔离原则
四组域名互不关联:不同注册商、独立 WHOIS 隐私、不共享 NS 特征化配置、加密货币付款(doc/05 §3 / doc/06 §2 红线)。任意一组被墙或被关联,不牵连其余组。
| 组 | 用途 | 隔离策略 | 客户端是否内置 |
|---|---|---|---|
| 主域名 | 官网 + 用户中心 | 品牌入口,被墙概率最高,做好牺牲准备;常备 ≥2 活跃镜像 | 否 |
| API 域名池(N≥3) | 客户端 API | 不同注册商、不同 WHOIS、互不关联;客户端内置全部 | 是(全部) |
| 订阅 / 分发域名 | 端点更新、公告 JSON | 单独隔离——「取订阅」最易被关联封锁 | 是(端点池来源之一) |
| 冷备池(≥5) | 已注册未启用 | 启用即配 CDN,随签名端点更新下发 | 否(启用后进池) |
2. 登记表(占位示例,按组维护)
状态取值:active(在用)/ standby(冷备待启用)/ burned(已被墙,保留记录)/ retired(主动下线)。
2.1 主域名
| 域名 | 状态 | 用途 | CDN | 备注 |
|---|---|---|---|---|
example-brand.com |
active | 官网+用户中心 | CF | 主品牌入口 |
example-brand-mirror.com |
active | 官网镜像 | CF | 牺牲后顶替 |
2.2 API 域名池(N≥3)
| 域名 | 状态 | 注册商分组* | CDN | 备注 |
|---|---|---|---|---|
api-a.example-alpha.com |
active | A | CF | |
api-b.example-bravo.net |
active | B | CF | |
api-c.example-charlie.org |
active | C | CF |
* 注册商分组只记代号(A/B/C),代号到真实注册商的映射在离线身份台账,不入库。
2.3 订阅 / 分发域名(独立隔离)
| 域名 | 状态 | 用途 | CDN | 备注 |
|---|---|---|---|---|
dist-1.example-dist.com |
active | 端点更新 + 公告 JSON | CF | 与上两组零关联 |
分发内容本身走 ≥3 镜像(CF Pages / GitHub<独立账号> / 对象存储,见
tools/publish-mirrors),分发域名只是其中之一的入口。
2.4 冷备池(≥5)
| 域名 | 状态 | 预留用途 | 备注 |
|---|---|---|---|
example-cold-1.com |
standby | API 补池 | 已注册未配 CDN |
example-cold-2.net |
standby | API 补池 | |
example-cold-3.org |
standby | 分发补位 | |
example-cold-4.io |
standby | 主域镜像 | |
example-cold-5.app |
standby | 机动 |
3. 启用流程(standby → active)
对应 doc/05 §5 Runbook(API 域名被墙 / 主域被墙):
- 选域:从冷备池挑一个与被墙域不同注册商分组的域名。
- 配 CDN:
infra/domains/cdn/terraform填zone_id/api_hostnames/origin_ip,terraform apply(含 WAF/bot/速率限制/回源鉴权,目标 ≤30min)。 - 下发:用
tools/endpoint-signer把新域名并入api_domains[],version+1,签名;tools/publish-mirrors推 ≥3 镜像并校验 hash 一致。 - 登记:本文件把该域名状态改
active,被墙的改burned,并补一个新 standby 维持冷备池 ≥5。 - 验证:域名级探针(复用 #15 探针体系)确认境内可达;回源鉴权 200、直连源站 403。
4. 被墙检测(接口需求,不在本任务实现)
域名级 DNS 污染 / TCP 阻断探测复用 #15 探针体系(doc/05 §3:境内拨测 + 境外对照)。本任务只登记契约需求:
- 输入:本文件
active组的域名清单。 - 输出:每域名
{reachable, dns_pollution, tcp_blocked, checked_at},污染 / 阻断即触发上面的启用流程。 - 探测器本身由 #15 实现,本任务不实现探针。
5. 身份线索(离线管理,禁止入库)
以下信息只存在离线身份台账,本仓库任何文件都不得出现:
- 注册商账号 / 登录邮箱 / 付款凭据(加密货币钱包)。
- WHOIS 联系人(一律隐私注册)。
- 注册商分组代号(A/B/C)到真实注册商的映射。
- CDN / 对象存储 / GitHub 独立账号的身份。
红线(doc/06 §2):服务器、域名、支付、邮箱之间不得产生可被关联的身份线索;管理操作只在专用环境进行。