V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
donglemon
V2EX  ›  DNS

HttpDNS,帮你解决域名劫持困扰

  •  
  •   donglemon · 2016-03-09 18:03:13 +08:00 · 9952 次点击
    这是一个创建于 3206 天前的主题,其中的信息可能已经有所发展或是发生改变。

    HttpDNS 是以 HTTP 的方式代替传统 DNS 协议传递解析结果,能够有效避开 DNS 层面的拦截和故障,比如域名污染,域名递归服务器缓存不刷新,运营商域名劫持等问题,并且,可提高分发精准度,解决用户 DNS 设置错误造成的访问时延加大,响应过慢的问题。

    1. HttpDNS 诞生背景&适用场景

    1.1. 运营商劫持
    运营商,特别是一些小运营商,为了减少跨网结算成本,会在本地运营商网内搭建内容缓存服务器。本地本网用户访问时,运营商把域名强行指向内容缓存服务器的 IP 地址,从而把本地本网流量完全留在了本地,减少了跨网访问。为了获取更多利益,部分运营商们还会将对应解析内容替换成第三方广告联盟的广告或是钓鱼网站等。
    伴随着运营商劫持现象的频繁发生,对企业造成了诸多不良影响:
    ① 访问失败:客户业务错综复杂,如果域名是通过 https 协议或其它端口提供服务的,用户访问就会出现失败。部分特殊业务,比如视频类网站,由于涉及到防盗链或者视频拖拉等特殊订制功能,一旦被运营商进行内容缓存,用户也会访问失败。
    ② 访问不稳定:运营商的缓存服务器的运维水平参差不齐,可能会出现缓存服务器故障导致用户访问异常的问题。
    ③ 文件更新不及时:运营商自建的缓存服务器配有自己的缓存策略,且该策略独立于 CDN ,无法被客户所控制,会造成当文件更新后,终端用户仍访问到被劫持的旧文件内容。
    由于运营商自建缓存会导致被 DNS 劫持的访问出现故障、访问效果不佳、访问内容未更新甚至访问到第三方广告等现象,最终造成用户大量投诉。

    1.2. 转发解析请求

    运营商的 LocalDNS 会存在解析转发的情况,解析转发是指运营商自身不进行域名递归解析,而是把域名解析请求转发到其它运营商的递归 DNS 上。
    客户使用 CDN 加速服务后,当解析被运营商转发,网宿的权威 DNS 收到的域名解析请求的来源 IP 就成了其它运营商或其他地区的 IP (因为网宿的权威 DNS 是根据来源 IP 进行解析调度),那么用户流量就被导向了错误的节点,造成跨域、跨省、跨运营商访问后果:网站访问缓慢甚至无法访问。

    1.3. DNS 多出口
    DNS 多出口,是指运营商的 LocalDNS 按照标准 DNS 协议进行递归查询时,由于存在网络多出口且配置了目标路由 NAT 的情况,最终导致 LocalDNS 进行递归解析的出口 IP 非本网 IP 地址。
    使用网宿 CDN 加速服务后,网宿权威 DNS 会根据来源 IP 进行解析调度。 DNS 多出口的情况会造成调度系统收到的域名解析请求来源 IP 变成其它运营商的 IP ,最终引发域名解析错误、流量跨网。

    1.4. DNS 攻击
    当前网络攻击越来越激烈,从历史来看,每次攻击的影响范围都很大,主要攻击类型:
    ① 针对公网 dns 服务的攻击,这个攻击影响的是所有解析用户。一旦受攻击,意味着所有用户的域名解析都会出问题,大家上网都会出现故障。
    ② 针对网宿 dns 服务的攻击,通常为 ddos 攻击,网宿平台可应对,其余类型攻击则影响网宿平台该 DNS 服务的所有用户。
    由于 CDN 加速是通过 CNAME 的方式别名到网宿入口,无论是公网 DNS 受到攻击还是网宿 DNS 受到攻击,都将对客户的服务造成严重影响,甚者直接导致区域服务中断。

    1.5. 适用场景
    当客户的网站或应用业务受到运营商劫持、 DNS 解析出错、 DNS 攻击等多方面影响时,企业可考虑使用网宿 CDN 加速的同时,采用网宿 HttpDNS 方案,真正实现:
    ① 避免因为运营商劫持造成访问错误;
    ② 避免因为运营商劫持访问到旧文件、广告文件等错误内容;
    ③ 避免因为 DNS 多出口、转发解析等因素,造成终端访问过慢,影响用户体验;
    ④ 保障在 DNS 受到攻击时,网站或应用服务能够照常进行。
    注:需要有客户端进行配合,进行一定的开发,适用于有客户端的场景。

    重点来了,请仔细研究,因为没有上图权限,如果想了解原理及架构可到官网 https://www.wangsucloud.com/
    找客服咨询,对此有兴趣的也可以联系 QQ:2415419639

    2. 网宿 HttpDNS 方案
    2.1. HttpDNS 原理
    常规域名解析是通过 DNS 协议进行解析的,其最终结果就是获取域名对应的真实服务器地址,无法绕开 DNS 拦截和故障问题。
    而 HttpDNS 则是以 HTTP 的方式代替传统 DNS 协议传递解析结果,能够有效避开 DNS 层面的拦截和故障。客户端通过接口向网宿 HttpDNS 集群发起“ DNS 查询”请求,网宿 HttpDNS 集群根据请求携带的域名和 IP 信息,查询 CDN 内部调度策略,通过响应请求的方式,返回给客户端最优节点 IP 。客户端得到最优节点 IP ,通过在 header 中指定 host 字段,进行正常的业务访问。

    2.2. 方案优势
    1 )高速稳定接入
    全国互通的多个 BGP 集群可择优接入,多个集群异地容灾。保证各个运营商用户都可高速稳定接入。
    2 )就近请求,快速响应
    引入边缘节点,就近访问,低延迟,分散中心风险。
    3 )代理请求,多厂商整合
    提供接口规范供第三方厂商接入,实现单处开发,全网适用。
    4 )绿色防劫持
    无劫持,无跳转,防止 DNS 被拦截,提升 DNS 解析成功率。
    5)DNS 安全通道
    若根域解析异常,客户端的域名解析不会受到 DNS 根域的影响。
    6)精准调度
    精确识别来源请求,直接根据用户 IP 进行调度,将用户访问导向网宿最佳服务节点,提高访问速度和体验。
    7)解析效率提升
    可在一次 http 请求中查询多个域名结果,提升了解析效率。
    8)低成本
    接入网宿 HttpDNS 仅需在客户端接入层做少量改造即可,而且 Http 协议请求构造非常简单,兼容性强,成本低。

    9 条回复    2016-03-16 17:05:46 +08:00
    Delbert
        1
    Delbert  
       2016-03-09 21:12:43 +08:00 via Android
    什么叫没有上图权限。。。。。
    先看 FAQ 去。
    qcloud
        2
    qcloud  
       2016-03-09 22:41:29 +08:00
    - - 贵司提供的 DNS 解析实在不敢恭维。。。
    esxivistawrt
        3
    esxivistawrt  
       2016-03-10 06:32:48 +08:00
    我觉得 httpsdns 更好,加密防止篡改。
    donglemon
        4
    donglemon  
    OP
       2016-03-10 09:41:36 +08:00
    @qcloud 网宿 CDN 是国内龙头,而 CDN 的核心技术是 DNS 调度,网宿的技术实力还是让业内很多人信服的~,个人认为你必要进行竞品攻击啊,网宿的就没有攻击其他竞品的
    donglemon
        5
    donglemon  
    OP
       2016-03-10 09:47:31 +08:00
    @Delbert 谢谢,以后补上 HttpDNS 框架图
    leakless
        6
    leakless  
       2016-03-10 13:20:28 +08:00 via Android
    如果 http 请求也被劫持了。。咋办
    donglemon
        7
    donglemon  
    OP
       2016-03-10 18:19:57 +08:00
    @leakless http 请求劫持目前没有切实可行的方法,不过 https 越来越流行, http 劫持概率也会越来越低啦
    fchypzero
        8
    fchypzero  
       2016-03-16 10:55:45 +08:00
    @donglemon https 的流行和 http 劫持概率是两回事吧。 https 的流行程度不会降低 http 的劫持概率啊。
    donglemon
        9
    donglemon  
    OP
       2016-03-16 17:05:46 +08:00
    @fchypzero 是不会减低 http 劫持概率,如果以后所有网站都是 https 的,那就不用那么担心 http 劫持了~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.