# HTTPDNS 主计划(V1.1) ## 1. 目标与范围 1. 新增独立模块 `EdgeHttpDNS`,独立构建、独立部署。 2. 不改造 `EdgeDNS` 现有职责,`EdgeDNS` 继续处理传统 Port 53 DNS 请求。 3. 构建端到端链路:`SDK -> EdgeHttpDNS -> EdgeNode 动态验签 -> WAF 放行/403`。 4. P1 包含 ECH 全量能力(记录发布、密钥与节点解密链路)。 5. 当前阶段仅实施管理平台能力,用户平台页面暂缓。 ## 2. 关键决策(已锁定) 1. 对外接口仅保留 `POST /resolve`。 2. 客户端 IP 策略:源 IP 优先,支持签名覆盖 `client_ip`。 3. 场景判定规则:按“域名接入状态”自动判定。 4. 场景1(仅 HTTPDNS 域名):直连权威 DNS。 5. 场景2(已接入 CDN 域名):从边缘节点池计算并返回 CDN 节点 IP。 6. `sni_policy` 枚举:`none|mask|empty|ech`(Level2 支持 `mask` 与 `empty`)。 7. 证书字段:`cert_fingerprints[] + fingerprint_algo`。 8. `EdgeNode` 动态验签采用请求头签名:`X-Edge-Resolve-*`。 9. ECH 记录由第三方 DNS API 发布(通过凭证中心编排)。 ## 3. 系统职责拆分 ### 3.1 管控端(仅管理平台)`edge-admin` 1. 配置中心:`AppID/Secret`、解析策略、SNI 隐匿等级、证书校验策略。 2. 凭证中心:第三方 DNS 运营商 API 凭证管理与复用。 3. ECH 发布编排:记录创建、更新、状态追踪、失败重试。 4. 发布灰度、回退控制与审计日志。 ### 3.2 解析网关 `edge-httpdns` 1. 鉴权与签名校验、防重放、限流。 2. 双场景解析编排(权威 DNS / 边缘节点池调度)。 3. 下发 `sni_policy`、`public_sni`、证书指纹策略。 4. 生成并返回 `verify_headers` 供客户端请求透传。 ### 3.3 边缘节点 `edge-node` 1. SNI 与 Host 解耦路由。 2. 动态验签(验签失败返回 403)。 3. ECH 解密与策略联动。 ## 4. 接口规范(摘要) ### 4.1 Endpoint - `POST /resolve` ### 4.2 返回关键字段 1. `ips` 2. `ttl` 3. `sni_policy` 4. `public_sni` 5. `cert_fingerprints` 6. `fingerprint_algo` 7. `verify_headers` ### 4.3 动态验签请求头 1. `X-Edge-Resolve-AppId` 2. `X-Edge-Resolve-Expire` 3. `X-Edge-Resolve-Nonce` 4. `X-Edge-Resolve-Sign` ## 5. 页面规划(当前仅管理平台) ### 5.1 管理平台(Admin) 1. HTTPDNS 集群默认配置页。 2. HTTPDNS 应用管理页(含 AppID/Secret、启停、限流、策略覆写)。 3. 域名绑定与策略页(含测试 IP 指向 CDN 节点能力)。 4. 边缘节点与调度策略页。 5. 第三方 DNS 凭证中心页。 6. ECH 发布状态与审计页。 7. 解析调试页。 8. WAF 动态验证规则页。 9. 一键回退与发布控制页。 ### 5.2 用户平台(User) - 暂缓,不在当前阶段实施。 - 所有配置与操作先收敛到管理平台。 ## 6. SDK 路线 1. 三端均采用 fork 改造路线(Android / iOS / Flutter)。 2. 已落地源码目录: - `EdgeHttpDNS/sdk/android` - `EdgeHttpDNS/sdk/ios` - `EdgeHttpDNS/sdk/flutter/aliyun_httpdns` 3. 溯源文档: - `EdgeHttpDNS/sdk/SOURCE_LOCK.md` - `EdgeHttpDNS/sdk/THIRD_PARTY_NOTICES.md` ## 7. 实施阶段(更新) 1. Phase A:管理平台配置模型与页面(不做用户平台)。 2. Phase B:`EdgeHttpDNS` 核心解析链路与双场景实现。 3. Phase C:`EdgeNode` 动态验签与 WAF 联动。 4. Phase D:ECH 密钥、记录发布、节点解密联调。 5. Phase E:三端 SDK 改造与灰度上线。 6. Phase F:用户平台能力评估与二期补齐(可选)。 ## 8. 验收标准 1. 场景判定准确,返回 IP 正确。 2. 动态验签通过可放行,失败稳定返回 403。 3. `/resolve` 返回字段与 SDK 消费一致。 4. ECH 记录发布成功且链路可用。 5. 管理平台可独立完成全流程配置、发布、回退与审计。 6. 具备观测能力(QPS、错误率、签名通过率、403 率)。