一次dns缓存引发的惨案51CTO博客 - 牛牛娱乐

一次dns缓存引发的惨案51CTO博客

2019-01-03 10:40:32 | 作者: 慕卉 | 标签: 缓存,问题,效劳 | 浏览: 435

时刻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效劳器再回来给客户机。


这个作业发作后给了咱们很大的经验:
榜首、流程办理有缝隙,离任交代不到位;
第二、危机处理不成熟,影响公司名誉;
第三、监控机制不完善,像外网不通的这种问题,应该提早设置监控办法。


有时分十分的严峻的问题,就是你常常疏忽的小不点



作者:纯真的浅笑
出处:http://www.ityouknow.com/ 
版权归作者一切,转载请注明出处



版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章