记一次惊心动魄的 DNS 缓存引发的惨案
临时解决方案不断的通过 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 解析流程DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统。 它用于 TCP/IP 网络,它所提供的服务是用来将主机名和域名转换为 IP 地址的工作。俗话说,DNS 就是将网址转化为对外的 IP 地址。 DNS 从用户访问到响应的整个流程,如下图: 第一步 浏览器将会检查缓存中有没有这个域名对应的解析过的 IP 地址,如果有,该解析过程将会结束。浏览器缓存域名也是有限制的,包括缓存的时间、大小,可以通过 TTL 属性来设置。 第二步 如果用户的浏览器缓存中没有,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。 第三步 如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 第四步 (编辑:宿州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |