# 域名分组登记（配置即代码）

> 口径来源：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 域名被墙 / 主域被墙）：

1. **选域**：从冷备池挑一个与被墙域不同注册商分组的域名。
2. **配 CDN**：`infra/domains/cdn/terraform` 填 `zone_id/api_hostnames/origin_ip`，`terraform apply`（含 WAF/bot/速率限制/回源鉴权，目标 ≤30min）。
3. **下发**：用 `tools/endpoint-signer` 把新域名并入 `api_domains[]`，`version` +1，签名；`tools/publish-mirrors` 推 ≥3 镜像并校验 hash 一致。
4. **登记**：本文件把该域名状态改 `active`，被墙的改 `burned`，并补一个新 standby 维持冷备池 ≥5。
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）：服务器、域名、支付、邮箱之间不得产生可被关联的身份线索；管理操作只在专用环境进行。
