乐趣区

关于dns:实现简单的httpDNS的一种思路

互联网公司,根本都有针对 DNS 域名解析的优化解决。有些公司甚至会构建本人的智能 DNS 解析零碎,来解决 LocalDNS 存在的一系列问题,如域名劫持、调用精度和实时性等。

现如今,HttpDNS 曾经成为一种比拟罕用优化计划之一。HttpDNS 是基于 http 协定具备 DNS 域名解析能力的一种服务,当初各大云厂商都曾经构建了本人的 HttpDNS 服务。如阿里云 HttpDNS、腾讯云 HttpDNS 等。

HttpDNS 原理剖析

HttpDNS 的原理非常简单:

  • 客户端拜访 HttpDNS 解析接口,HttpDNS 依据客户端 IP,从业务提前在域名配置管理系统中配置好的 IP 中依据肯定的策略抉择最优 IP 返回。若没有,则返回原域名,走运营商 LocalDNS 解析域名的形式;
  • 客户端再向获取到的 IP 发送业务协定申请即可。以 Http 申请为例,通过在 header 中指定 host 字段,向该 IP 发送规范的 Http 申请即可。

HttpDNS 将域名解析过程显式的体现了进去。绕过 LocalDNS 的域名递归解析过程,这样就间接防止了 LocalDNS 的一系列问题。

通过 HttpDNS 原理,能够看出 HttpDNS 须要高度的可用,很容易成为整个零碎的瓶颈。除此之外,还须要一个高效的域名解析配置管理系统来做域名解析和选优策略的治理。

HttpDNS 的一种简略实现思路

上面咱们来探讨另一种简略的实现形式,利用本人可控的 DNS 零碎和 dig 命令来实现简略 HttpsDNS 服务。

思路如下:

  • 1、将域名和 ip 的配置在公司自建 DNS 或第三方的 DNS 系统配置好,可实现地区或运营商的动静调用。
  • 2、开发 http api 服务,用来提供域名查问服务接口。
  • 3、在 http api 服务接口业务逻辑中,拿到客户端的 IP,通过如下命令查问域名的解析 IP,返回该 IP 即可。
dig @ns 服务器 www.baidu.com +subnet= 客户端 ip

该形式利用了 DNS 零碎的动静调度性能和域名 IP 的治理性能,联合 Http api 服务提供 Http 协定的 DNS 解析能力。绕过了 LocalDNS 的递归查问,解决了 DNS 劫持问题和精度问题。

该形式,只是一个简略的思路摸索,其中还有很多细节的问题须要深究。DNS 解析是业务零碎的一个强依赖服务,可用性和稳定性不容忽视。

好了,明天的分享就到这里,欢送留言探讨!

我是 DeanWu,一个致力成为真正 SRE 的人。

关注公众号「码农吴先生」, 可第一工夫获取最新文章。回复关键字「go」「python」获取我收集的学习材料,也可回复关键字「小二」,加我 wx 拉你进技术交换群,聊技术聊人生~

退出移动版