那些年移动App域名解析踩过的坑

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: App出现域名劫持、解析结果修改生效慢、跨运营商跨地域访问问题?阿里云HTTPDNS可以解决这类问题。

一、摘要

移动应用出现域名劫持、解析结果修改生效慢、跨运营商跨地域访问问题?阿里云HTTPDNS可以解决这类问题。

二、域名解析阿喀琉斯之踵

域名解析是终端设备访问互联网的第一步,扮演着至关重要的角色。同时,域名解析服务是当前整个互联网基础设施中最脆弱的几个环节之一。移动互联网时代,由于接入智能终端数量激增,问题愈加严重。

案例1: 域名解析问题导致访问流量减半

2017年2月24日21:20-2月25日1:00之间,某App A在江苏省某ISP访问流量减半,排查后发现为递归DNS故障导致。

screenshot.png
图1 递归DNS故障导致业务访问受害

如图1所示,正常访问期间,App业务访问大致分为四步:

  • Step 1: App发起业务域名解析
  • Step 2: 递归DNS返回域名解析结果IP
  • Step 3: App根据返回的IP向业务服务器发起请求
  • Step 4: 业务服务器返回响应,交互结束。

故障发生时,递归DNS在第二步无法返回解析结果或者返回错误的结果,导致App无法正确获取业务服务器的IP,最终业务访问受到巨大影响。

案例2: 域名解析结果修改不生效导致流量无法迁移

2016年11月中旬,由于某App B访问的节点存在服务质量方面问题,计划通过修改域名解析记录将流量切走,但由于域名解析不生效,导致流量无法调走,最终4个小时后节点服务质量恢复了业务才回归正常。

screenshot.png
图2 域名解析不生效的恶果

如图2所示,正常访问期间,App业务访问的细化步骤可以分解成六步:

  • Step 1: App发起业务域名解析
  • Step 2: 递归DNS向权威DNS发起域名解析结果
  • Step 3: 权威DNS返回域名对应的IP给递归DNS
  • Step 4: 递归DNS给App返回域名解析结果
  • Step 5: App根据返回的IP向业务服务器发起请求
  • Step 6: 业务服务器返回响应,交互结束。

故障发生时,尽管权威DNS的解析记录已经修改,但递归DNS的解析结果却没有任何变化(常见原因是递归DNS不遵循返回结果的TTL,私自设置缓存时间),仍然返回之前的结果,导致了故障的发生。

案例3: 不能碰的递归DNS节点

2011年,某公司流量峰值期间,运维人员计划通过修改CDN的智能DNS系统配置将某一地区的部分流量从负载高的CDN节点到相对流量小的CDN节点去。实施过程中,发现某一个DNS IP对应的流量到达5G+,无法实现“调部分流量”的目标。

案例4: 客户端调度不准

客户反馈的服务质量问题往往是由于调度不准确导致的。参见以下案例。

screenshot.png
图3 手机DNS配置不准导致跨ISP跨地域访问

根据IP地址来判断,案例中的用户位于武汉联通,而递归DNS却配置成了上海电信的DNS服务器,导致最终调度系统会按照上海电信区域来做就近接入,出现了跨运营商、跨地域访问问题。

三、问题溯源

3.1 域名劫持问题

现网上DNS解析一般基于UDP来实现,由于UDP自身的脆弱性,很容易被劫持。

screenshot.png
图4 域名劫持原理

根据多种渠道统计数据,国内现网的周劫持率在3%-5%左右(对于某一个业务,一周之内曾经被劫持过的用户占比),部分地区部分时段的劫持率超过20%。

基于国内严重的流量劫持情况,腾讯、小米等六公司与2015年底联合声明抵制流量劫持等违法行为,但当前的形式仍不容乐观。

域名劫持的危害性在于隐蔽性强、品牌伤害严重、解决难度大。

  • 隐蔽性强。 劫持偶发,难以复现,举证难。
  • 品牌伤害严重。 劫持后往往弹出涉黄、涉赌等内容,严重伤害应用品牌。
  • 解决难度大。 确认域名劫持后,一般开发者没有渠道去解决问题。

3.2 递归DNS数量少且分布不均导致无法就近接入

在国内,递归DNS数量较少且分布不均。据统计,top 200的递归DNS承担国内90%+的DNS访问流量。这样少的递归DNS是无法承载就近接入需求的。

3.3 终端手机的Local DNS配置错误导致无法就近接入

上节的案例4就是典型的递归服务器配置错误导致的就近接入问题。

四、阿里云飞天的解决之道

4.1 小工具大本领:HTTPDNS

screenshot.png
图5 HTTPDNS服务原理

如图5所示,HTTPDNS与传统的DNS对比起来,有以下几项功能:

  • 使用HTTP协议进行域名解析,极大增强了域名解析的安全性
  • 绕过了递归DNS服务器,最大限度防止域名劫持的发生
  • HTTPDNS服务自身利用IP地址而非域名对外提供服务,防止HTTPDNS自身域名被劫持
  • HTTPDNS想权威请求解析结果时,使用客户端IP进行解析
  • HTTPDNS优势

    • 零劫持
    • 域名解析结果修改秒级生效
    • [零延迟解析]
    • 基于手机IP就近接入
    • [支持https接口]
    • [批量域名解析接口]
    • [Android]/[iOS] SDK

4.2 适用对象

有自己App的开发者,并且需要一定的App编码能力(接入HTTPDNS必须修改App源码)。

4.3 如何使用

  • Step 1: 开通HTTPDNS
  • Step 2: 到HTTPDNS产品控制台配置待解析域名
  • Step 3: 通过Android/iOS SDK或者HTTP API将App接入HTTPDNS服务

请参见HTTPDNS帮助文档

五、案例

手机淘宝、支付宝钱包等阿里系App都已经接入HTTPDNS产品,治愈了上面提到的一系列顽疾。

案例中App B尝试接入阿里云飞天HTTPDNS后,在2017年2月24日的故障中,新版本未受任何影响,老版本则遇到了App A类似的问题。

目录
相关文章
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
103 12
|
2月前
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
376 0
|
4月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
4月前
|
网络协议
【Azure 应用服务】App Service与Application Gateway组合使用时发生的域名跳转问题如何解决呢?
【Azure 应用服务】App Service与Application Gateway组合使用时发生的域名跳转问题如何解决呢?
|
4月前
|
JSON 数据格式 索引
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
|
4月前
|
网络协议
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
|
4月前
【Azure 应用服务】Azure App Service 在不配置自定义域名的情况下如何使用呢?
【Azure 应用服务】Azure App Service 在不配置自定义域名的情况下如何使用呢?
|
4月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
|
4月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
4月前
|
域名解析 网络协议 数据中心
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决

相关产品

  • 云解析DNS
  • 推荐镜像

    更多