时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈能够打开,客服爬起来本身用电脑试了一下没有问题,就给客户反馈说,多是本身网络的问题,请过会在试试。早点8点,愈来愈多的用户反馈官网没法打开,而且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我。web
被客服叫起来以后,一脸懵逼,不知道什么状况,给客服回复,知道了,马上排查,待会有消息及时沟通。用凉水洗了一把脸清醒了一下,马上根据经验回忆这两天生产投产的状况:上线了XX模块,不影响、修复了XXbug,应该也不影响、刚给服务器配置了https,看起来好像有点关系,可是app暂时没有投产https,怎么也出现问题,排除之。打开电脑核查了最近的投产记录应该都不至于发生这么严重的问题,随怀疑是否是网络方面有问题,马上打电话叫起来运维经理以及相关人等一块儿排查。数据库
一边让网络和运维排除问题,一边再次核查了web服务器、数据库服务器、业务日志、数据库日志,以及其它的一些监控数据,各项皆正常。试着在本机ping了一下域名确实不通,更加怀疑是网络问题,尝试这直接使用外网访问官,能够打开没有问题,能够基本确认服务没有问题,但运维部反馈网络设备什么都正常,确定是大家投产代码出问题了,各方硬着头皮继续在排查。浏览器
9点,群里开始有大规模的用户反馈官网和app都打不开了,更有部分用户煽动,XXX公司跑出了(15年不少p2p公司跑路,致使用户都成了惊弓之鸟,稍微有问题便惧怕公司跑路,个个都锻炼成了监控高手,每天看,实时刷,凌晨起来尿尿也都顺便看一下app上的今日收益),客服400热线基本被打爆了。一边继续排查问题,一边上报此问题给总监、公司各高管,给客服建议,给用户解释,IDC机房网络抖动,技术正在紧急解决,资金和数据都没有任何影响,稍安勿躁。缓存
10点,开发和运维反复的检查后,开始怀疑dns解析有问题,但具体是什么问题还不清楚,CTO决定:一、你们都打车往公司走,来公司集体解决 二、在各QQ群、微信群给用户群发解释xxx问题,安抚客户。在车上的时候从新梳理了一下用户的整个访问流程,以下图:服务器
到公司后,根据这个思路你们在一块儿验证了一下,经过外网IP和内网IP访问公司全部服务都正常,可是经过域名访问不行,另外监控服务器、防火墙、网络设备日志都正常,所以判定是DNS解析出现问题。微信
既然确实是DNS解析问题,那么问题又来了?为何DNS解析会出现问题?如何去解决这个问题?一边给万网提工单,咱们也本身测试一下电信、移动、联通在不一样的网络运营商下面的访问状况,发现只有在联通网络的环境下DNS解析不了。根据客服获得的反馈也验证了这个状况,电信和移动用户反馈不多,联通用户反馈最多。因而咱们又开始给联通打电话,刚开始联通不受理咱们的这个请求,因而又开始以用户的身份打电话给联通公司让马上解决不能上网的问题。网络
因而就开始了万网和联通的扯皮大战,万网说从他们那边查看DNS解析都正常,一块儿指标都正常,咱们又给联通打电话联通说咱们已经知道了,待会由专业的人给咱们回复,过了一会联通的网络工程师回复说,像这种状况通常都是域名解析的问题。早上10:30到公司开始短短的6各小时内,咱们几个轮流给联通公司合计供打了近50、60通电话,给万网提了N个工单,接了N个电话。app
期间领导也开始动用各类关系,联通内部的朋友、网络运维界的大拿帮忙来定位解决,咱们也尝试了不少的办法,好比,使用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的,咱们进行了设置和测试后发现也能够实现,因而立刻更新到手册中发送给客服发送到群里面给用户使用。
有人说直接让用户使用外网就好了吗,使用外网首页打开到是没有问题,可是各系统之间调用,相关配置文件里面写的也都是域名的地址,若是硬改的话可能会引起另外的问题。第一天搞完就10点多了,中间就4点吃了一顿饭,打了N个电话你们都很是累,因而当天就先这样了,次日你们一早到公司继续跟进。
次日到公司通过17ce测试发现全部的节点都已经通了就剩北京联通的两个接点没响应,可是北京是咱们的大本营,绝大部分的用户都是北京的,继续和万网、联通沟通看怎么能完全的解决这个问题,另外一方面作好最坏的打算,若是一直不通怎么办。在生产环境中梳理全部使用域名的配置文件,作好随时能够直接更新为外网地址而不能影响服务,app完整的从新作一个版本,作好随时能够投产让用户强制升级到外网直连的版本。
到次日晚上10点的时候,北京联通的这两个节点仍是不通,和领导进行了商议若是到周一早上8点来的时候这两个网络仍是不能通的话,就上线改造好的系统和APP强制升级(由于当时周末尚未标的,周内才有发标计划)。第三天早上起来的第一件事情就是拿起手机,查看本身的联通网络是否是能够登陆上官网,结果通了!皆大欢喜。
俗话说真理是愈辩愈明,通过了此次事故,也完全的让我了解了DNS解析的整个过程。
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工做。俗话说,DNS就是将网址转化为对外的IP地址。
dns从用户访问到响应的整个流程
这个事情发生后给了咱们很大的教训:
第1、流程管理有漏洞,离职交接不到位;
第2、危机处理不成熟,影响公司声誉;
第3、监控机制不完善,像外网不通的这种问题,应该提早设置监控措施。
有时候很是的严重的问题,就是你经常忽略的小不点
喜欢个人文章,请关注个人公众号