您现在的位置: 破洛洛 >> 建站学院 >> 建站指南 >> 建站经验 >> 正文

记一次惊心动魄的 DNS 缓存引发的惨案

作者:佚名 来源:chinaz 更新时间:2017-9-23
分享到

时间 2015 年的某个周六凌晨 5 点,公司官方的 QQ 群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试。

640.jpg

但是到了早上点 8 点,越来越多的用户反馈官网无法打开,并且有部分用户开始反馈 App 也打不开了,客服打电话叫起了还在梦乡中的我。

分析定位

被客服叫起来之后,我一脸懵逼,不知道什么情况。然后给客服回复,知道了,立刻排查,待会有消息及时沟通。

用凉水洗了一把脸清醒了一下,立刻根据经验回忆这两天生产投产的情况:上线了 XX 模块,不影响;修复了 XXBug,应该也不影响;刚给服务器配置了 https,看起来好像有点关系,但是 App 暂时没有投产 https,不会出现问题,排除之。

打开电脑核查了最近的投产记录应该都不至于发生这么严重的问题,随之怀疑是不是网络方面有问题,立刻打电话叫起来运维经理以及相关人等一起排查。

一边让网络和运维排除问题,一边再次核查了 Web 服务器、数据库服务器、业务日志、数据库日志,以及其它的一些监控数据,各项皆正常。

试着在本机 ping 了一下域名确实不通,更加怀疑是网络问题,尝试着直接使用外网访问,可以打开没有问题,可以基本确认服务没有问题,但运维部反馈网络设备什么都正常,肯定是你们投产代码出问题了,各方硬着头皮继续在排查。

9 点,群里开始有大规模的用户反馈官网和 App 都打不开了,更有部分用户煽动,XXX 公司跑路了(2015 年很多 P2P 公司跑路,导致用户都成了惊弓之鸟,稍微有问题便害怕公司跑路,个个都锻炼成了监控高手,天天看,实时刷,凌晨起来尿尿也都顺便看一下 App 上的今日收益),客服 400 热线基本被打爆了。

一边继续排查问题,一边上报此问题给总监、公司各高管,给客服建议,给用户解释,IDC 机房网络抖动,技术正在紧急解决,资金和数据都没有任何影响,稍安勿躁。

10 点,开发和运维反复的检查后,开始怀疑 DNS 解析有问题,但具体是什么问题还不清楚。

于是 CTO 决定:

  • 大家都打车往公司走,来公司集体解决。

  • 在各 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 群、微信群已经沸腾,董事长也开始关注此问题,有的客户直接在群里面说,你们的技术太不给力了(像这种还是委婉的,有的直接打电话骂人)…

转载请注明:破洛洛(谢谢合作)
网友评论: