我曾看到充满激情的创业团队、一个个玩法很有特色的产品,被这种互联网攻击问题扼杀在摇篮里; 也看到过一个运营很好的产品,因为遭受DDoS攻击,而一蹶不振。
这也是为什么想把自己6年做游戏行业DDoS的经验,与大家一起分享,帮助在游戏领域内全速前进的企业,了解本行业的安全态势,并给出一些可用的建议。
游戏行业综述——机遇与风险并存
对于游戏而言,遭受到攻击是一件很常见的事情,据统计国内一半以上的DDoS攻击都是针对游戏行业的。目前游戏行业总体而言是机遇与风险并存的,2017年中国网游市场规模已经突破了2000亿,但是网络游戏却也是DDoS攻击的头号重灾区,其实不仅仅是中国,全球市场上针对于游戏的DDoS攻击永远是排在第一位的,而在中国这样的现象则更加严重,尤其在是从今年春节之前一直到3月份延续的这波攻击中,很多游戏厂商一直被DDoS攻击所压制。除此之外,移动端的快速增长也带来了移动安全问题,另外还出现了利用欺诈手段或游戏漏洞破坏游戏环境的现象。
DDoS攻击趋势及原因分析
对于DDoS攻击而言,其平均防御成本随着DDoS攻击流量的增长呈现出加速向上的曲线。根据计算数据分析得出:如果DDoS攻击流量达到250G,每个月的防御成本大约会需要5万美元左右;如果达到300G就会需要每月6万美元;达到350G时防御成本则需要每月8万美元;如果达到500G攻击流量,那么防御成本则需要14万美元,也就是每个月需要花费大约一百万人民币去进行DDoS攻击的防御。在2017年,300G以上的攻击已经呈现常态化了。而对于DDoS攻击每小时所造成的商业价值损失而言,据数据统计36%的应用被攻击一小时的损失在5000美元到2万美元之间,34%在2万美元到10万美元之间,还有15%被攻击时每小时损失会超过10万美元。
除此之外,根据黑客攻击的时间维度数据也能分析出一定的规律性:基本上在每天的凌晨3点到9点之间,黑客攻击将会处于睡眠期,这个时间段其实属于黑客换装弹药的时间,在这个时间段,他们会把第二天需要攻击对象的名单和需要使用脚本准备好,当早上9点的时候,黑客的脚本就会自动运行然后开展新一波的攻击,所以在早上9点到凌晨3点之间这段时间,黑客的攻击是比较频繁的。
另外,目前国内主要有两大黑产组织,这两个组织也是遍布整个东南亚地区的,他们的最顶层组织处在中国境外,而且他们所掌握的攻击流量已经超过了1个T。大家可以想象一下,这样的攻击流量其实对于任何一家游戏公司或者应用而言都将会是致命的,黑产组织中最大的拥有800G的攻击流量,小一些则拥有的大约600G的攻击流量,所以他们基本上有能力将任何一个游戏公司攻击到挂掉。
今天,黑客发起攻击的成本其实会非常低,比如对于海外的UTB小包而言,一个G一天只要花费50元,即便是最贵的DNS反射攻击也只要1个G一天350元。但是黑客显然不是这样报价的,比如黑客盯上了某一个游戏,就会去以包天或者包月或者按照效果付费的方式进行购买攻击包,一定会将游戏服务打死,甚至会提供打不死不收钱的“包打死”服务。前一段时间大家应该都看到了阿里云的吴翰清在自己的公众号上发了一篇文章谈了他回到阿里的29个月。其实这篇文章中也谈到了,在2016年的时候阿里云打击了刚才提到的两个黑产组织中的一个,在打击之后在几个月的时间之内,整个中国的黑产组织其实就消失掉了,国内的DDoS攻击量也下降了56%,同时全球的DDoS攻击量也下降了8%,但是因为黑产组织的核心组织人员都在中国境外,半年之后这个组织就又死灰复燃了。
对于实际的攻击手法而言,由于攻击源是在逐年增加的,以前只有针对PC的攻击,后来出现了针对服务器端的攻击,曾经有数据统计大约50%以上IDC的服务器都被黑客成功入侵并成为了肉鸡,而现在还有针对于手机的攻击,很多人的手机其实都处于黑产组织的控制之中,而且现在很多的IoT设备纷纷加入了DDoS攻击的浪潮之中,也将DDoS攻击的流量逐年推高。在2014年的时候DDoS攻击还是以50GBPS为主,攻击手法以IDC伪造源IP攻击为主。而在2015年时,攻击100Gbps+的攻击已经常态化了,攻击手法也在升级,从伪造IP转向反射型Flood攻击。2016年时,200Gbps+的攻击常态化,IoT和移动终端的兴起导致基于真实设备的攻击层出不穷。而在2017年的最近两三个月,大家所看到的趋势是300Gbps+的攻击常态化,并且基于私有协议和真实源的攻击事件呈指数级上升趋,导致攻击更加难以防范。
那么黑客为什么会攻击游戏行业呢?首先可能是发泄自己的不满,有些同学对于游戏产生了不满情绪,那就可能为了发泄自己的不满将游戏打挂掉。还有黑产接单打单,比如两家竞争同一市场的游戏公司,其中一家公司就有可能找黑产对于对方的业务进行打击。还有敲诈勒索,小蚁网络也遇到很多客户说自己曾收到了黑客在微信或者QQ上面的勒索流言,要求给对方钱财否则将对游戏业务进行攻击。还有业务扶持,黑产也会与一些行业中的公司进行合作,扶持某家公司成为行业的龙头老大,其他的竞争对手就会全部被打死。最后就是机房合作,黑客会要求一些游戏厂商必须搬到某个机房中,如果不然就进行攻击。所以就是出于以上的种种原因,地下黑产才形成了今天这样对于游戏客户的攻击形式。
而且黑客的具体攻击手法也非常多样,可以拿“打尖峰”举例说明,比如大家都知道阿里云及各云上5个G黑洞,此时黑客就不会持续地使用很高的流量进行攻击,因为他们知道黑洞的原理所以就会使用5.01G的流量进行攻击,这样游戏公司的IP就进入黑洞了,黑客就会主动摸索游戏公司的的业务防御上限在哪里,然后通过打尖峰的手法对游戏进行攻击直到服务挂掉。另外一种打法就是压制一个时间段,比方某一种游戏会在每天早上9点到9点半之间有大量的玩家涌入进来玩,如果在这半个小时内将游戏的登陆服务压制掉就能够导致游戏无法提供服务,这样就会导致玩家转到其他游戏。而最可怕的一种攻击手法就是最近出现的持续压制,也就是游戏从早到晚都会处于300G的流量攻击之下。以上主要是按照攻击的时间段进行划分的,而如果按照更细粒度攻击手法进行划就可以分为以下两种攻击:
大流量压制,也就是通过海量的流量涌过去将整个机房都堵上。
精细化压制,使用CC攻击实现的精细化流量压制,目前往往以同时使用或者先后使用的方式配合大流量压制实现。
趋势一:大流量已经常态化
目前,对于DDoS攻击而言出现了两个极为明显的趋势。
第一个趋势就是大流量攻击已经呈现常态化。黑客已经可以在极短的时间内聚集大量的攻击流量,这种大流量压制型攻击在之前可能只是个传说,而从今年的情况看来,大流量攻击已经成为了现实。随着带宽成本逐年降低,肉鸡资源的逐年丰富,大流量压制型攻击已经不再是业界的“都市传说”,高入口带宽也已经不再是攻防的保险箱,已经无法实现与攻击流量进行“军备竞赛”,因此现在也是时候需要考虑对于应对大流量攻击采取一些变革了。
趋势二:CC攻击向精细化转变
第二个趋势就是CC攻击向精细化转变,攻击的载体从IDC肉鸡到IDC和家庭肉鸡,再到IDC、PC移动端设备最后到IDC、PC、IoT和移动端设备不断转变,攻击手法也从半开链接攻击到TCP资源攻击再到服务器资源供给最后到模拟私有协议发起攻击不断变化,攻击的手法越来越细化,防御难度也越来越高。其实很难做到安全防御既能够防御大流量的攻击也能够防御精细化的攻击,这也是进行安全防御时可能出现今天能够防护住但是明天却又防不住情况的原因,因为黑产也在不断试探并打击游戏的弱点。
欺诈与作弊
另外两种威胁就是欺诈与作弊,比如垃圾注册、撞库以及流量作弊等。
垃圾注册,玩家大量注册小号,获取新号奖励和刷金币。
流量作弊,渠道商利用模拟器等手段批量挂机,进行流量作弊,获取非正常利益。
游戏盗号,攻击者利用自动化工具,通过扫库撞库等方式进行盗号。
破解与外挂
还有两种威胁就是破解与外挂,包括了客户端破解和伪造数据包。
游戏破解,破解客户端游戏程序,免费获得游戏内购,改变游戏设定。
内挂,通过破解游戏和数据包结构,逆向出或直接调用发
包函数,改变正常游戏数据,实现超出正常玩家的水平和能力。
脱机挂,完全脱离游戏客户端程序,可以与游戏服务器自由通讯的外挂程序,对游戏的危害最大,严重破坏游戏平衡,缩短游戏运营周期。无论是手游还是端游在被破解之后都可以做外挂,还能够通过破解协议报文模拟数据并发送到服务器上去,消耗游戏的资源使得正常玩家也无法进行游戏。
云盾游戏安全解决方案
小蚁网络的云盾所提供的其实是全方位游戏安全解决方案。针对于DDoS攻击,云盾提供了DDoS高防IP和游戏盾。DDoS高防IP的防护峰值带宽20~300Gbps,并且防护阈值可以弹性调整;而游戏盾是云盾中创新性的防御DDoS攻击的手段,当攻击流量超过300G时就可以使用游戏盾进行防御,目前游戏盾能够防御的DDoS攻击已经达到了600G左右。除此之外,云盾还提供了针对移动安全和数据风控的解决方案。
游戏安全之一- DDoS高防IP服务
DDoS高防是一项针对海量DDoS攻击的清洗服务,防护能力高达300Gbps。DDoS高防IP服务其实是多线的,有电信线路、联通线路还有BGP线路,其通过CName解析或者将VIP贴到高防中心上去的方式将流量引过去再将流量还原给用户,但是DDoS高防服务的上线却只能达到300G,300G以上就会受限于机房带宽的能力了。
游戏安全之二- 游戏盾服务
游戏盾服务采取的对抗手段再也不是进行安全攻防的“军备竞赛”这样依靠带宽去对抗带宽的手法了,而是采用流量拆分和智能调度方式去防护DDoS攻击。其原理其实非常简单,就是黑客在同一时间只能够找到几十台服务器中的一个IP地址,最多将这个IP地址的服务器打挂掉,但是无法将整个服务打挂掉,所以游戏将能够保全大部分的客户而只有很少的客户会受到损失,通过这样的方式去防护游戏。针对于CC攻击,游戏盾实现了多层的精细化的CC防护,目前看来其效果也非常好,对于今天大家看到的针对大型游戏公司的CC攻击而言,20万QPS已经非常常见了。而且游戏盾不仅仅是一个产品而是一整套的服务体系,其也在不断地对于攻防能力进行提升。
游戏安全之三-移动端安全
对于移动端安全而言,主要进行的是应用加固,通过安全组件将移动端应用的协议加密,并进行安全存储和加密防止黑客破解。
游戏安全之三-业务风控
对于业务风控而言,如果应用是一个Web客户端,黑客就可能进行垃圾注册等进行攻击,这样采用业务风控的手段就可以防止黑客刷应用的接口。
实际案例分析
接下来为大家介绍一些使用小蚁网络云盾所提供的安全解决方案的实际案例。
案例一
在2018年,小蚁网络第一次将自己的DDoS服务进行商业化,也是在这一年,小蚁网络的一个游戏客户遭遇了史上最大规模的DDoS攻击,攻击流量达到了1.6T,并且持续攻击了大约2个小时。而小蚁网络当时也帮助客户成功地防御住了这长达2个小时的DDoS攻击,当时采用了全国多个高防机房近源清洗加立体式防御帮助客户进行防御,为了不影响用户体验,防御机房中使用了单线、双线、BGP高防但是其实BGP带宽的防御成本是所有防御带宽中最高的。
案例二
第二个案例则是大家比较熟悉的,就是闲来互娱的实际案例。闲来互娱是2016年4月份成立的游戏公司,其主要游戏业务是地方棋牌游戏,它刚开始时发展非常迅速,但是却在5月和6月份时被DDoS攻击打击得非常惨烈,使得其业务基本上无法开展并且接近倒闭边缘。这时小蚁网络向闲来互娱提供了安全防护解决方案,并且小蚁网络和闲来互娱合作将安全解决方案应用到了其整个游戏攻防体系中去。而在4月份到11月份被昆仑万维以20亿的价格收购之间的4、5个月的时间内其经历了2次大型的攻击对抗。第一次对抗发生在安全解决方案部署完成之后,黑客很快发现仅靠大流量攻击完全打不下来,于是黑客开始破解游戏客户端,将游戏客户端破解之后就发现了游戏客户端中对于流量调度的原理,这样就能够把所有的IP防护节点全部找出来,之后对于找出的节点进行逐个打死。所以小蚁网络帮助闲来互娱在第一轮对抗中做的就是将应用进行加密,并将逻辑进行混淆,这样就使得黑客难以在同一时间发现更多的节点的IP地址,而最多一次只能获取一个节点的IP。在第二轮攻防中,黑客发现使用大流量攻击无法打下来,但是使用CC攻击却非常有效,于是他们使用CC攻击的手法去攻击登录服务,而大家都知道登陆服务相当于应用的入口,当登陆服务受到攻击时就发现防御能力急剧下降,即便其他的游戏节点都正常也是无济于事,不能起到任何作用了,所以小蚁网络此时推出了NGCC防护能力,使用NGCC防护之后即便是50万QPS也能够轻松防御,基本上就保护住了闲来互娱的第二轮攻击,一直到其被收购之前都保证游戏运行非常平稳。
案例三
还有一个案例是2016年2月的另外一个游戏公司在一个月的时间内连续被攻击了多次,并且攻击流量超过了400G,而这个流量在2016年初时是非常高的,这个公司同样也快被打挂了,此时小蚁网络帮助其启用了高防+游戏盾的安全解决方案,同时帮助该公司实现了态势感知和溯源,也帮其找到了在背后进行攻击的黑客并通过游戏公司报警,小蚁网络提供证据最后将犯罪嫌疑人捉拿归案,这也是反击能力的体现。大家知道很多游戏公司被攻击之后往往是打不还手的,其实并不是因为游戏公司脾气好,而是往往通常情况下游戏公司并不知道到底谁在发起攻击,所以如果客户拥有了溯源的能力就可以找到在背后对自己发起攻击的那个人并将其绳之以法,同时也将会为自己的业务赢得一定时间的安全发展时机。
案例四客户的案例
2015年应该是互联网金融行业受黑客攻击最多的一年吧,各互金公司都深受其害,当时我记得*贷之家有一段时间被黑客攻击的太厉害,连续几天网站都无法打开。当然我们也未能幸免,DDoS 攻击、SQL 注入、漏洞渗透等等,几乎都经历过,有的黑客比较仁慈,应该是出于善意或者展示自己,将漏洞放到乌云上面或者漏洞盒子里面让厂商来修复。但更多的是一些黑产,完全就是威胁、敲诈、想捞一笔钱,先看看下面这位吧:
这个家伙潜伏到我们公司的客户群里面,冒充我们的客户代表将头像和资料替换成一样,然后给群里所有的客服发消息,让发送我们内部的后台地址给他,想通过这种方式来寻找突破口,当然这是里面的小菜鸟。
那到底如何正确的防止 DDOS 攻击:
1、小蚁盾是一款专门解决 ddos 攻击 cc攻击的安全防护引擎。当您的应用程序与小蚁盾集成后,小蚁盾即刻进入运行状态,我们会为每个用户分配一个不同的ip,千人千面、一人一ip。当黑客发起攻击时,只有他自己受到影响,同时小蚁盾能够精准识别黑客,并直接拉入黑名单。如此一来黑客就无法得到新的ip,只能重新更换手机或电脑。这个原理既能够清除掉黑客,又能无视其攻击,还不影响其它用户。这正是,一次集成,终身受益。此之,网站防护,高防服务器,特价服务器,服务器运维 都是我们的专长, www.xy3000.com ( 小蚁网络技术有限公司 挂牌代码:300800HN )
快快联系我们吧400-901-5608
2、使用我们的立体式防御系统,可隐藏客户真实服务器的IP地址,每个结点都会成为客户服务器的盾机被攻击的只能是结点,而且由于有多个结点做盾机,就算攻击是个强度非常大,而且持续非常久的话,哪怕还有一个结点服务器是活的,那么攻击就打不到客户真实的服务器上,而且还有很多备用节点,一旦哪个节点宕机,宕机监测系统便会马上启动备用节点,这样就保证了游戏和网站不会挂掉。
案例五:
一次dns缓存引发的惨案
时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试。早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我。
分析定位
被客服叫起来之后,一脸懵逼,不知道什么情况,给客服回复,知道了,立刻排查,待会有消息及时沟通。用凉水洗了一把脸清醒了一下,立刻根据经验回忆这两天生产投产的情况:上线了XX模块,不影响、修复了XXbug,应该也不影响、刚给服务器配置了https,看起来好像有点关系,但是app暂时没有投产https,怎么也出现问题,排除之。打开电脑核查了最近的投产记录应该都不至于发生这么严重的问题,随怀疑是不是网络方面有问题,立刻打电话叫起来运维经理以及相关人等一起排查。
一边让网络和运维排除问题,一边再次核查了web服务器、数据库服务器、业务日志、数据库日志,以及其它的一些监控数据,各项皆正常。试着在本机ping了一下域名确实不通,更加怀疑是网络问题,尝试这直接使用外网访问官,可以打开没有问题,可以基本确认服务没有问题,但运维部反馈网络设备什么都正常,肯定是你们投产代码出问题了,各方硬着头皮继续在排查。
9点,群里开始有大规模的用户反馈官网和app都打不开了,更有部分用户煽动,XXX公司跑出了(15年很多p2p公司跑路,导致用户都成了惊弓之鸟,稍微有问题便害怕公司跑路,个个都锻炼成了监控高手,天天看,实时刷,凌晨起来尿尿也都顺便看一下app上的今日收益),客服400热线基本被打爆了。一边继续排查问题,一边上报此问题给总监、公司各高管,给客服建议,给用户解释,IDC机房网络抖动,技术正在紧急解决,资金和数据都没有任何影响,稍安勿躁。
10点,开发和运维反复的检查后,开始怀疑dns解析有问题,但具体是什么问题还不清楚,CTO决定:1、大家都打车往公司走,来公司集体解决 2、在各QQ群、微信群给用户群发解释xxx问题,安抚客户。在车上的时候重新梳理了一下用户的整个访问流程,如下图:
到公司后,根据这个思路大家在一起验证了一下,通过外网IP和内网IP访问公司所有服务都正常,但是通过域名访问不行,另外监控服务器、防火墙、网络设备日志都正常,因此断定是DNS解析出现问题。
攻坚问题
既然确实是DNS解析问题,那么问题又来了?为什么DNS解析会出现问题?如何去解决这个问题?一边给万网提工单,我们也自己测试一下电信、移动、联通在不同的网络运营商下面的访问情况,发现只有在联通网络的环境下DNS解析不了。根据客服得到的反馈也验证了这个情况,电信和移动用户反馈很少,联通用户反馈最多。于是我们又开始给联通打电话,刚开始联通不受理我们的这个请求,于是又开始以用户的身份打电话给联通公司让立刻解决不能上网的问题。
于是就开始了万网和联通的扯皮大战,万网说从他们那边查看DNS解析都正常,一起指标都正常,我们又给联通打电话联通说我们已经知道了,待会由专业的人给我们回复,过了一会联通的网络工程师回复说,像这种情况一般都是域名解析的问题。早上10:30到公司开始短短的6各小时内,我们几个轮流给联通公司合计供打了近50、60通电话,给万网提了N个工单,接了N个电话。
期间领导也开始动用各种关系,联通内部的朋友、网络运维界的大拿帮忙来定位解决,我们也尝试了很多的办法,比如,使用ipconfig/flushdns命令清除本机的DNS缓存、在万网的官网把DNS解析重新更新一边、删除在重新添加等等,也不是完全没有收获。我们一直想找一个可以测试各个地方、运营商网络的办法,终于在各方推荐和搜索的情况下找了17ce 和 360奇云测两个网站,感觉非常实用,在以后的网络定位中,成了我必备使用的工具,可以非常方便的监控各个运营商、各个地区网站的访问是否通不通、访问的速度快不快等问题,截图如下:
我们也发现,公司的其它域名也都访问正常,就是官网的这个域名和相关的子域名不通。期间很多人都问了一个问题就是你们的域名有没有忘了缴费,刚开始大家也都问了运维这边说是没有这个问题,直到中午12:30的时候在我们再三的追问下才说8点多的时候登录上万网的时候显示这个域名是欠费状态,但是他已经立刻把费用补了上去了。哎呀差点把我们气死,问了不是域名到期有提示的吗?才知道因为上一个运维经理走后,他们没有及时的更新万网的电话和邮箱导致提示邮件和短信也没有收到。
通过和万网、联通公司、领导的相关朋友沟通以及我们的测试观察,初步明白了这个事情的原因:域名忘记缴费导致万网的DNS解析被停止,用户本机或者DNS服务器有缓存,所以部分用户可以访问部分用户不能访问;缴费过后万网的DNS已经进行了更新和推送,但是DNS解析有很多的层级需要一级一级的往下面发送更新,有的层级并没有更新到,导致部分没有更新到的DNS服务商下面的用户不能访问官网。
和万网进行了沟通,问最延迟的情况所有的DNS更新到最新的时间,回答是48小时内肯定都会好的,但是我们等不起呀,随着时间的推移越来越多的用户发现问题,QQ群、微信群已经沸腾,董事长也开始关注次问题,有的客户直接在群里面说,你们的技术太不给力了(像这种还是委婉的,有的直接打电话骂人)…
临时解决方案
不断的通过17ce测试发现,大部分地区的网络都已经恢复,就剩北京联通和部分地区联通网络环境下不通,也说明了这几个地区下的DNS解析记录没有被更新。那么既然我们在上面已经定位出了问题,又了解是什么原因,就想着试着换个DNS解析服务器会不会好一点呢,于是我们把本地的DNS地址换成8.8.8.8(谷歌的DNS服务解析)发现好了!于是赶紧先写解决手册发给着急的客户来使用。
官网的用户可以通过更改DNS来解决访问的问题,APP怎么办呢?没有办法我们也不能等,直接找开发人员把客户端调用的地址由域名暂时先改为外网的IP地址打一个版本供用户临时使用。安卓还比较好办,直接让用户下载安装使用还好,但是IOS那时候的审核最少都需要一周黄花菜都凉了。其实iPhone手机可以单独设置DNS的,我们进行了设置和测试后发现也可以实现,于是马上更新到手册中发送给客服发送到群里面给用户使用。
点击下载当时写的DNS更新手册
有人说直接让用户使用外网就行了吗,使用外网首页打开到是没有问题,但是各系统之间调用,相关配置文件里面写的也都是域名的地址,如果硬改的话可能会引发另外的问题。第一天搞完就10点多了,中间就4点吃了一顿饭,打了N个电话大家都非常累,于是当天就先这样了,第二天大家一早到公司继续跟进。
第二天到公司经过17ce测试发现所有的节点都已经通了就剩北京联通的两个接点没响应,但是北京是我们的大本营,绝大部分的用户都是北京的,继续和万网、联通沟通看怎么能彻底的解决这个问题,另一方面做好最坏的打算,如果一直不通怎么办。在生产环境中梳理所有使用域名的配置文件,做好随时可以直接更新为外网地址而不能影响服务,app完整的重新做一个版本,做好随时可以投产让用户强制升级到外网直连的版本。
到第二天晚上10点的时候,北京联通的这两个节点还是不通,和领导进行了商议如果到周一早上8点来的时候这两个网络还是不能通的话,就上线改造好的系统和APP强制升级(因为当时周末还没有标的,周内才有发标计划)。第三天早上起来的第一件事情就是拿起手机,查看自己的联通网络是不是可以登录上官网,结果通了!皆大欢喜。
俗话说真理是愈辩愈明,经过了这次事故,也彻底的让我了解了DNS解析的整个过程。
DNS 解析流程
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。俗话说,DNS就是将网址转化为对外的IP地址。
dns从用户访问到响应的整个流程
第一步:浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。浏览器缓存域名也是有限制的,包括缓存的时间、大小,可以通过TTL属性来设置。
第二步:如果用户的浏览器中缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
第三步:如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
第四步:如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
第五步:如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
第六步:如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找域名域服务器,重复上面的动作,进行查询,直至找到域名对应的主机。
第七步:如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
这个事情发生后给了我们很大的教训:第一、流程管理有漏洞,离职交接不到位;第二、危机处理不成熟,影响公司声誉; 第三、监控机制不完善,像外网不通的这种问题,应该提前设置监控措施。
有时候非常的严重的问题,就是你常常忽略的小不点
总结
古代对将军的要求是,心有万马奔腾,面如湖水平静,在互联网行业,对领导的要求也如此,特别是技术负责人,在面对生产事故的时候,一定是先安抚同事,静下心来找到问题本质,再去解决,而不应该不断去施加压力催促,重压之下很多心里承受能力稍弱的队友,会更加慌乱,不但不利于解决问题,还可能引发二次事故。
在看淘宝双十一视频中,有一段感受特别深,在双十一初期,虽然技术团队做了很多的准备,但是在零点过后流量瞬间涌入,服务被打垮,部分用户投诉刷新不出网页,紧接着隔壁同事也都反馈网站打不开,在大家都在慌乱中,XX一拍桌子大喊一声,大家都别动,三分钟之后再说,过了几分钟之后服务慢慢恢复了正常。后来回忆说,当时虽然服务瘫痪,但是监控到有部分业务成功,说明系统并没有被压垮,而此时的任何操作都有可能引发更大的问题,从此之后此人一战成名,成为阿里大将。
互联网平台发展大抵都会经历三个阶段:
1.上线初期,此阶段问题最为繁多,生产事故不断,系统快速迭代优化。有人说为什么不测试到完全没有问题再投产?说实话在互联网行业这个很难:
第一,小公司很难做到生产环境和测试环境一致,成本太高;
第二,时间紧迫,一般都是很短的时间内要求上线,上线之后再快速迭代;
第三,互联网本就是一个快速试错的行业,错过半年时间可能风口早过;
2.发展期,此阶段主要业务模式已经得到验证,系统出现问题的频度较少,低级错误减少,但此时是用户量和交易量不断爆发的时候,对系统性能、高并发的要求又上来了,所以此时出现的问题大多都是性能的问题;
3.成熟期,发展期过后系统相对比较平稳,用户量和交易量都已经慢慢稳定下来,生产问题越来越少,出现问题几乎都是细小的 bug。这个阶段也是公司最忽略技术的阶段,现在我们公司发展到了这个阶段,在这个阶段需要静下心来,做组织架构升级,补齐在初期和发展期所欠下的技术债务,做好公司进入下一个量级的技术储备。
所有的这些问题几乎都集中在14年底到15年初的这个阶段,15年后半年开始到现在,平台慢慢稳定了下来,到现在几乎没有再出现过类似的问题,也因为几乎都是两年前的事情,有很多记的不是特别清楚了,写的比较粗糙望见谅。