Files
waf-platform/EdgeHttpDNS/HTTPDNS主计划.md
2026-02-20 17:56:24 +08:00

3.9 KiB
Raw Blame History

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|echLevel2 支持 maskempty)。
  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_policypublic_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 BEdgeHttpDNS 核心解析链路与双场景实现。
  3. Phase CEdgeNode 动态验签与 WAF 联动。
  4. Phase DECH 密钥、记录发布、节点解密联调。
  5. Phase E三端 SDK 改造与灰度上线。
  6. Phase F用户平台能力评估与二期补齐可选

8. 验收标准

  1. 场景判定准确,返回 IP 正确。
  2. 动态验签通过可放行,失败稳定返回 403。
  3. /resolve 返回字段与 SDK 消费一致。
  4. ECH 记录发布成功且链路可用。
  5. 管理平台可独立完成全流程配置、发布、回退与审计。
  6. 具备观测能力QPS、错误率、签名通过率、403 率)。