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