产品动态 > 正文

上周五晚高峰地铁上发生的事,足以写入“运维历史”

2018-10-26

说起移动端劫持这个事情
大家可能并不陌生
但是你真的有亲身体验过吗?
作为一枚电商APP的运维攻城狮
我是经常遇到
但上周五的这次被劫持
差点儿让我终身难忘

事件如下

上周五,完成了近期的项目,好容易不用加班
已经两周不见的女友特意来公司接我
于是我俩有说有笑的进了地铁
下班时间的地铁人山人海
我习惯性的用手保护着她
就在这时短信来了,是告警提示
打开App页面,一张张“喷血”图片映入眼底
紧接着一个个的弹框,全是喷血图片
点不断,理还乱

媒体聚焦|网宿携手新疆喀什教育局,推动民族地区走出智慧教育新路

地铁上的“闲散人员”往往都有一个怪癖
喜欢盯着别人的手机屏幕,就好像屏幕上有磁铁一样
不过这次,我的手机屏幕上的确有“磁铁”
我当时的尬相真的难以形容
女友见状立刻脸色突变
惨了,这个愉快的周末要凋零
女友也随即下车
像风一样
怎么都挽留不住~
赶紧吩咐小弟联系供应商,联系运营商……
切换服务器ip、刷新网络缓存……
但许久后,问题仍未得到有效处理
我的尬相持续在空气中弥散着

与女友约会告吹的周末,和哥们小聚才是正事儿
聊起周五的尬事,大家笑的前仰后合
想问移动端劫持如何破?”
朋友中一位运维老哥问到
“为啥没用HttpDNS?”
HttpDNS效果很好吗?
对呀,网宿的HttpDNS…
通常域名解析都通过DNS协议进行解析,最终结果就是获取域名对应的真实服务器IP,无法绕开DNS拦截和故障问题。
然,网宿HttpDNS利用 HTTP 协议与 DNS 服务器交互,替代了传统的基于 UDP 协议的 DNS 交互.绕开了LocalDNS,有效防止了域名劫持,提高域名解析效率。另外,由于 DNS 服务器端获取的是真实客户端 IP, 而非 LocalDNS 的 IP,能够精确定位App端地理位置,绕过 Local DNS,彻底解决移动端劫持问题。

以Http的方式代替传统DNS协议解析结果,
能够有效避开DNS层面的拦截和故障。

步骤解析:
1.App端先向集群发起HTTP访问请求
2.集群返回离用户最近的IP
3.App端再向IP发起请求
4.响应请求,访问结束
网宿HttpDNS支持移动场景下的解析延迟、域名劫持、调度精确性、域名解析生效慢等一系列问题.
例如:
避免LocalDNS劫持造成访问错误
避免DNS多出口,造成终端访问过慢
保障DNS受到攻击时,网站或应用服务持续高可用性
网宿HttpDNS是怎样保障的服务高可用性?

BGP Anycast网络+节点备份+边缘调度网络

网宿HttpDNS集群中心接入BGP Anycast网络,配备多个异地灾备中心,在保障故障发生时能无缝切换到备用节点。建立分布于全国各地的边缘调度网络,保障HttpDNS服务的持续性和高可用性。
虽然以上方案看似完美,
但为了以防万一,
网宿HttpDNS还准备了更完美的故障切换保障策略。
用户在向网宿HttpDNS集群发起域名查询请求时,如果查询返回的结果不是一个IP地址(结果为空、结果非IP、连接超时等),则尝试下一个集群或者直接通过本地LocalDNS进行域名解析,超时时间建议设置为5s。

合理优化缓存策略

为了尽可能地减少移动网络由于域名解析导致的延迟,对于本地缓存设置也十分重要,建议规则如下:

缓存时间,先查询域名TTL。在App端向网宿HttpDNS集群发起域名解析请求时,得到请求响应的实体中会包含域名对应的TTL值。

缓存更新,在用户的网络状态由3G、4G、Wi-Fi互切的情况下,接入点的网络归属可能发生变化。所以,需要重新向网宿HttpDNS发起域名解析请求,以获得用户当前网络归属下的最优指向IP。

缓存过期,当App端缓存时间到期,App端会主动向网宿HttpDNS重新发起域名解析请求,以获取最新的域名对应的IP。

缓存时间更新建议,为了减少App在缓存过期后重新进行域名解析时的等待时间,建议在TTL快过期时(例如:达到过期时间的75%时)就开始进行域名解析。
计算方法:
本地缓存的TTL为600s,
那么在第600s*0.75=450s时,
App端就应该进行域名解析。

配合缓存的建议:

建议在一次http请求中同时查询多个域名结果,批量得到结果,减少域名解析的次数;
建议在业务允许的情况下,尽量减少域名的数量。如需区分不同的资源,建议通过url来进行区分。

网宿HttpDNS方案有什么优势?

就近请求,解析低延迟:
引入边缘调度,可在一次http请求中查询多个域名。
精准调度,高效稳定:
精确识别客户端IP,在平台的多个BGP集群中择优接入,保障集群高可用性。
超强防御,安全无忧:
支持百万级QPS防护,无惧DNS攻击。
低成本,接入快速:
仅在客户端接入层做轻量改造,构造简单,兼容性强。

于我,这个大写的尬影仍未挥散,
貌似可以名留“运维清史了”,
为什么不早点告诉我还有这样的方案?

网宿HttpDNS支持线上开通,我们的网址是
http://www.quansucloud.com
有移动端劫持烦恼的小伙伴们,
可以通过多种方式系我们哦
QQ :800098358
邮箱:cdn_wscloud_support@wangsu.com
TEL :021-54182787

本文内容的版权持有者为网宿科技股份有限公司(“网宿科技”),未经许可,不得转载。