技术博客 > 正文

CDN加速中HTTPDNS原理是什么

2021-02-04

cdn加速使用的HTTPDNS技术是一种针对DNS防劫持的有效手段,以HTTP的方式代替传统DNS协议传递解析结果,能够有效避开DNS层面的拦截和故障。该方案可以根据客户端的来访IP,直接通过Httpdns服务器获取最精准的解析结果,网宿cdn加速的域名能直接获取最精确的覆盖,达到加速的最佳效果,避免因为DNS多出口,DNS攻击导致的DNS解析失败的问题。

一般而言,造成DNS解析失败的原因主要有以下几个方面:

防运营商劫持:运营商,特别是一些小运营商,为了减少跨网结算成本,会在本地运营商网内搭建内容缓存服务器。本地本网用户访问时,运营商把域名强行指向内容缓存服务器的IP地址,从而把本地本网流量完全留在了本地,减少了跨网访问。

DNS多出口:运营商的LocalDNS按照标准DNS协议进行递归查询时,由于存在网络多出口且配置了目标路由NAT的情况,最终导致LocalDNS进行递归解析的出口IP非本网IP地址。

DNS攻击:针对公网dns服务的攻击,这个攻击影响的是所有解析用户。一旦受攻击,意味着所有用户的域名解析都会出问题,都会出现故障。

网宿CDN加速使用的HTTPDNS绕过DNS层面的解析,直接用http的方式来获取数据,提供精准调度和安全DDoS防御服务,从根本上避免被缓存或者被劫持,原理图如下:

网宿亮相中国数字化创新博览会,赋能智慧医药新发展

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

目前,HTTPDNS技术已经被应用于全站加速网页加速动态加速等一系列CDN加速产品中,在加速的同时能够有效防止网站被劫持,保障网站安全。

当客户的网站或应用业务受到运营商劫持、DNS 解析出错、DNS 攻击等多方面影响时,企业可考虑使用网宿 CDN 加速的同时,采用网宿 HttpDNS 方案, 避免因为运营商劫持造成访问错误、避免因为运营商劫持访问到旧文件、广告文件等错误内容、避免因为 DNS 多出口、转发解析等因素,造成终端访问过慢,影响用户体验,保障在 DNS 受到攻击时,网站或应用服务能够照常进行。