HttpDNS域名解析服务介绍

httpdns是什么

httpdns是面向无线端的域名解析服务,与传统走UDP协议的DNS不同,httpdns基于HTTP协议。

PC端的服务一般通过浏览器访问,对于域名解析,浏览器只会走标准DNS,我们没法干预。无线端的可操作空间比较大,APP自己构造并发送HTTP请求,能够做精细化的控制,其中就包括域名解析。

使用httpdns解析域名的基本流程如下:

  1. 客户端向httpdns服务端发送普通的HTTP请求,请求中携带需要解析的域名。
  2. httpdns服务端解析出域名对应的ip地址,将解析结果封装为JSON格式,返回给客户端。

和传统DNS一样,httpdns的解析结果中包含TTL,客户端可以根据TTL将结果缓存一段时间。

httpdns服务包括服务端和客户端SDK,SDK有Android版和iOS版。当前接入httpdns服务的主要是集团内的APP,包括手机淘宝、天猫魔盒、支付宝、云OS、虾米音乐、阿里师生和淘伴等。

httpdns的优势

相比于传统DNS,httpdns的优势主要有下面几点:

  1. 防止域名劫持
    传统DNS由Local DNS解析域名,不同运营商的Local DNS有不同的策略,某些Local DNS可能会劫持特定的域名。采用httpdns能够绕过Local DNS,避免被劫持;另外,httpdns的解析结果包含HMAC校验,也能够防止解析结果被中间网络设备窜改。

  2. 更精准的调度
    对域名解析而言,尤其是CDN域名,解析得到的IP应该更靠近客户端的地区和运营商,这样才能有更快的网络访问速度。然而,由于运营商策略的多样性,其推送的Local DNS可能和客户端不在同一个地区,这时得到的解析结果可能不是最优的。httpdns能够得到客户端的出口网关IP,从而能够更准确地判断客户端的地区和运营商,得到更精准的解析结果。

  3. 更小的解析延迟和波动
    在2G/3G这种移动网络下,DNS解析的延迟和波动都比较大。就单次解析请求而言,httpdns不会比传统的DNS更快,但通过httpdns客户端SDK的配合,总体而言,能够显著降低解析延迟和波动。httpdns客户端SDK有几个特性:预解析、多域名解析、TTL缓存和异步请求。

  4. 额外的域名相关信息
    传统DNS的解析结果只有ip,httpdns的解析结果采用JSON格式,除了ip外,还支持其它域名相关的信息,比如端口、spdy协议等。利用这些额外的信息,APP可以启用或停止某个功能,甚至利用httpdns来做灰度发布,通过httpdns控制灰度的比例。

httpdns如何解析一个域名

httpdns服务端并没有“域名和IP对应关系”的数据库,它做了一次协议转换,从HTTP转换为DNS,将域名解析请求转发给后端DNS。

为了得到更精准的解析结果,后端DNS需要拿到客户端的来源IP,而不是httpdns服务器的IP。如何将客户端IP透传给后端DNS呢?httpdns使用了Google提出的DNS扩展选项edns-client-subnet,通过该选项,可以将客户端IP放在DNS报文中传给后端DNS,只要后端DNS支持该选项,它就会从DNS报文中提取客户端IP。httpdns对接的后端DNS都支持edns-client-sub选项。

HTTPDNS架构图

httpdns服务端部署在cm3和cm10的两个集群上,总体架构图如上。

具体而言,httpdns服务端的处理过程如下:

  1. 接收客户端发来的HTTP请求,请求中携带域名列表。
  2. 解析请求的内容,检查安全校验值,执行白名单过滤,得到待解析的域名列表。
  3. 针对域名列表中的每一个域名,构造DNS请求报文,发往对应的后端DNS。
  4. 等待并收集DNS响应报文,解析报文得到IP地址,最后,每个域名都有了解析结果或已经超时。
  5. 对每个域名,将解析得到的IP,以及在httpdns上配置的其它信息,添加到JSON报文中。
  6. 根据JSON报文计算HMAC校验值,将校验值和JSON报文发送给客户端。

对于不同类型的域名,httpdns会转给不同的后端DNS。目前,httpdns共有下面3个后端DNS:

  • Pharos:权威DNS,对应淘宝CDN域名,例如gw.alicdn.com
  • ADNS:权威DNS,对应CNAME到*.gds.taobao.com的淘宝主站域名,例如api.m.taobao.com
  • AliDNS:递归DNS,阿里公共DNS,对应所有其它的域名,例如mcgw.alipay.comwww.baidu.com

httpdns返回的JSON报文,格式示例如下:

HTTPDNS JSON报文格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值