DNS对比HTTP DNS

1.DNS

DNS维护域名与对应IP地址的映射关系,提供将域名翻译为IP地址的域名解析功能。

DNS功能

  • 维护域名与多个IP地址的映射关系
  • 变更IP地址时,仅需在DNS服务器中重新配置最新的IP地址
  • 基于DNS实现负载均衡策略以及提出不可用服务器的功能

域名结构

  • 顶级域名,后缀部分,最常见的.com .net .cn
  • 二级域名,倒数第二部分,域名注册法人或主体,如google.com apple.com
  • 三级域名等等

域名服务器

  • 根DNS服务器
    负责顶级域名的解析,13台IPv4根DNS服务器。
  • 顶级DNS服务器
    二级域名解析。
  • 权威DNS服务器
    最终决定一个域名到底被解析成哪个IP地址,是DNS中最核心的部分。
  • 本地DNS服务器
    不属于任何一层,相当于域名解析的缓存。

域名解析过程

  • 查本地缓存,包括浏览器缓存、Hosts文件DNS缓存
  • 请求本地域名服务器,有直接返回,无则代理客户端递归完成域名解析
  • (本地域名服务器)请求根域名服务器,根据顶级域名例如.com将对应的对应的顶级域名服务器返回
  • 请求顶级域名服务器,先查缓存,无则将对应的权威域名服务器地址返回
  • 请求权威域名服务器

本地域名服务器缓存的记录格式

  • 生存周期TTL,表示缓存时长
  • 协议类型
  • 记录类型:IPv4 or IPv6
  • 记录数据:域名关联的地址信息

DNS存在的问题

  • 访问延迟,递归查询引起的
  • 本地域名服务器是分地区、分运营商的,不同运营商实现的DNS解析策略不同。最终解析得到的IP地址对于客户端而言可能不是距离最近、最优的访问节点
  • DNS劫持问题,通过干预域名服务器把域名解析到错误的IP地址上

2.HTTP DNS

原理:

  • 客户端指定HTTP DNS服务器的IP地址,使用HTTP调用域名解析接口/d,并传入待解析的域名和客户端IP地址。HTTP DNS服务器负责向权威DNS服务器发起域名解析请求,并将最优IP地址返回。
  • 客户端获取到域名IP地址后,直接向此IP地址发送业务协议请求。

一个HTTP DNS服务的IP地址,如何解决访问延迟?

  • 采用如BGP(边界网关协议)等手段让该IP地址在全国各地都做到就近访问。

如何解决高可用性问题

  • 在多个数据中心部署了多个HTTP DNS服务节点,任意节点发生故障均可无缝切换到备用节点

HTTP DNS相比于DNS的优势

  • 降低域名解析延迟,缩短了域名解析链路
  • 防止域名劫持,直接发送到HTTP DNS服务器,绕过了运营商本地DNS服务器
  • 调度精确性更高:HTTP DNS获取的是真实客户端的IP地址,而不是本地DNS服务器的IP地址,可以解析出更精确的更近的IP地址
  • 快速生效,不受DNS多级缓存影响,域名更新能够更快地覆盖到全量客户端

3.最佳实践

技术方案设计

  • 优先使用HTTP DNS尝试解析域名
  • 服务HTTP DNS故障,则降级到DNS技术
  • 如果DNS故障,则客户端使用预留的域名兜底IP地址作为域名解析结果

策略

  • 安全策略,HTTP可以换成HTTPS
  • IP地址选取策略:可以将最优IP地址按照顺序下发
  • 批量拉取策略:客户端冷启动或网络切换,客户端自动批量拉取域名和IP地址列表的映射数据并缓存
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容