HTTP DNS原理及HTTPDNS调度实现方式

一、HTTPDNS介绍

​ 传统DNS解析存在的问题在上一篇文章中已经解释,那有没有一种调度精准、成本低廉、配置方便的基于域名的流量调度系统呢?HTTPDNS就应运而生 。

​ 与传统的 DNS 解析不同,HTTPDNS 是自己搭建基于 HTTP 协议的服务器,利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 Local DNS,有效防止了域名劫持,提高域名解析效率。

​ 当客户端需要 DNS 解析的时候,不再向 local 发送 DNS 查询报文,而是直接通过请求直接访问 HTTPDNS 接口,此时DNS 服务器端获取的是真实客户端 IP 而非 Local DNS 的 IP,能够精确定位客户端地理位置、运营商信息,而服务端则根据客户端的位置和所属运营商,返回就近的 IP 地址,从而有效改进调度精确性。
在这里插入图片描述

  • 客户端直接访问HttpDNS接口,获取业务在域名配置管理系统上配置的访问延迟最优的IP。(基于容灾考虑,还是保留次选使用运营商LocalDNS解析域名的方式)
  • 客户端向获取到的IP后就向直接往此IP发送业务协议请求。以Http请求为例,通过在header中指定host字段,向HttpDNS返回的IP发送标准的Http请求即可
二、HTTPDNS原理

在这里插入图片描述

  • 客户向HTTPDNS服务集群发起查询请求,携带用户域名和IP
  • HTTPDNS服务集群查询 CDN 内部调度系统(若内部调度系统查询不到数据,目前返回为空,后续考虑在中心集群进行递归查询),将域名最佳访问节点 IP 以 HTTP 响应的方式传递给客户端
  • 客户端,收到响应结果,向节点发起请求
  • 若客户端向HttpDNS 集群请求失败,则启用备选,走正常 DNS 解析过程,向 Local DNS 发起请求
  • LocalDNS 进行递归查询
  • 最终返回 DNS 结果
  • 客户端拿到最优 IP 后,建立连接,发起正常访问操作
三、HTTPDNS优势
  • 降低延迟

    缩短了查询链路,不像 DNS 查询那样需要访问多台 DNS 服务器才能得到最终的结果。

  • 域名防劫持

    使用HTTP(HTTPS)协议进行域名解析,域名解析请求直接发送至HTTPDNS服务器,绕过运营商Local DNS,避免域名劫持问题。

  • 调度精准

    由于运营商策略的多样性,其 Local DNS 的解析结果可能不是最近、最优的节点,HTTPDNS 能直接获取客户端 IP ,基于客户端 IP 获得最精准的解析结果,让客户端就近接入业务节点。

  • 实时生效

    域名解析结果变更时,HTTPDNS 服务没有传统DNS 服务多级缓存的影响,域名更新能够更快地覆盖到全量客户端。

  • 扩展性强

    HttpDNS提供可靠的域名解析服务,业务可将自有调度逻辑与HttpDNS返回结果结合,实现更精细化的流量调度。比如指定版本的客户端连接请求的IP地址,指定网络类型的用户连接指定的IP地址等。

  • 实现成本低廉

    接入HttpDNS的业务仅需要对客户端接入层做少量改造,无需用户手机进行root或越狱;而且由于Http协议请求构造非常简单,兼容各版本的移动操作系统更不成问题;另外HttpDNS的后端配置完全复用现有权威DNS配置,管理成本也非常低。总而言之,就是以最小的改造成本,解决了业务遭受域名解析异常的问题,并满足业务精确流量调度的需求。

四、HTTPDNS 调度设计
  • 手机端可以获取位置信息,HTTPDNS可以根据位置信息,选择最佳节点返回
  • 如果有多个节点,还会考虑错误率、请求时间、服务器压力、网络状况等,进行综合选择,而非仅仅考虑地理位置,要做到这一点,需要客户端使用 HTTPDNS 返回的 IP 访问业务应用。客户端的 SDK 会收集网络请求数据,如错误率、请求时间等网络请求质量数据,并发送到统计后台,进行分析、聚合,以此查看不同的 IP 的服务质量。
  • 在服务端,应用可以通过调用 HTTPDNS 的管理接口,配置不同服务质量的优先级、权重。HTTPDNS 会根据这些策略综合地理位置和线路状况算出一个排序,优先访问当前那些优质的、时延低的 IP 地址。
  • HTTPDNS 通过智能调度之后返回的结果,也会缓存在客户端。为了不让缓存使得调度失真,客户端可以根据不同的移动网络运营商 WIFI 的 SSID 来分维度缓存。不同的运营商或者 WIFI 解析出来的结果会不同。
    在这里插入图片描述
    公众号:编程之蝉 专注后台开发、CDN、算法、大数据,欢迎关注,阅读最新更新
    公众号:编程之蝉
参考

1、 计算机网络 | 图解 DNS & HTTPDNS 原理

2、[HTTPDNS原理](

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值