Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTPDNS #128

Open
AlexZ33 opened this issue Dec 19, 2022 · 0 comments
Open

HTTPDNS #128

AlexZ33 opened this issue Dec 19, 2022 · 0 comments

Comments

@AlexZ33
Copy link
Owner

AlexZ33 commented Dec 19, 2022

c端H5有时候会出现一些网络造成的白屏,无法查出原因,猜想可能是:

  • 用户网络本身存在质量问题,导致无法访问公网
  • 用户LocalDNS存在问题, 导致无法解析
  • 用户LocalDNS被劫持
  • 用户网络出口运营商和LocalDNS运营商不一致,导致用户到CDN节点的跨网访问(存在质量不好等情况)
  • 用户网络到达解析的CDN边缘节点网络链路质量有问题
  • 用户网络到达解析的API接口地址链路质量有问题
  • 极端弱网环境用户端bug
    以上几种猜想,大部分都可以通过HTTPDNS解决
    比如:
  • httpdns解析防止LocalDNS劫持
  • 自定义解析策略,实现自行调度
  • 部分体验可以得到提升(理论上可以,无数据支撑)

刨除白屏原因,单从DNS劫持、跨网访问等, HTTPDNS也是不错的方案

HTTPDNS

HTTPDNS使用HTTP与DNS服务器交互,代替传统的基于UDP的DNS协议,域名解析请求采用http协议直接发送到HTTPDNS服务端,从而绕过运营商的Local DNS。

  • 防劫持
    • 绕过运营商LocalDNS,避免域名劫持。
  • 精准调度
    • 基于来源IP,获得更精准的解析结果,就近接入。
  • 快速生效
    • 避免LocalDNS不遵循权威TTL,解析结果长时间无法更新
  • 客户端实现httpdns时候要注意
    • 构建客户端DNS缓存
    • 域名预解析
    • 懒更新
    • LocalDNS保底策略
    • httpdns下发的IP地址质量探测
    • https的sni证书验证问题
    • cookie管理
    • 连接管理
    • webview如何直连IP
    • Wi-Fi/4G网络切换,接入点网络归属可能发生变化

阿里云HTTPDNS

使用方式为:LocalDNS为主,httpdns保底。即只有当dns被污染、劫持才会走httpdns。

阿里云HTTPDNS

  • 使用固有IP地址进行访问。「IP是否接入了 anycast 网络?高可用等如何保障 还在咨询中」
  • 直接添加域名,即可根据来源IP进行解析。
  • 支持「自定义域名解析配置」即精准调度,此配置需要使用阿里云「函数计算」
  • 服务支持,详细见附件「小米SDNS接入文档」。
  • 接口支持鉴权方式调度。
  • 有成熟的SDK和最佳实践方案。
  • 计费:20亿次/年/4800元「资源包方式」。
  • 提供20Gb的免费共享DDOS攻击防御能力。

阿里云HTTPDNS采用ip访问,可以解决第一跳被劫持问题;一期CDN域名可以直接配置,不进行自定义调度,直接在平台上配置域名即可解析。

综上,建议直接使用阿里云httpdns服务,采用HTTPDNS为主,LocalDNS保底方案。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant