如何优雅的进行网站DNS切换(失败教训记录)

如何优雅的进行网站DNS切换(失败教训记录)

今天公司一个网站进行服务器切换。本来以为是再简单不过的事情,结果没想到过程很凄惨。新旧网站数据同步、功能测试、切换步骤都是准备了的。想着就是到点了,IT更新一下DNS记录,浏览到达新的服务器就完事了。

结果实际过程是这样的。先是事先联系好的IT到点了找不到人,折腾了大概近1个小时,大家都很郁闷。

然后人找到了,很快就告诉我们DNS记录更新了。但是我们从Google DNS服务器(8.8.8.8)获得的地址开始是旧的。过了一会dig回来的记录里有新服务器的IP地址了,但是顺带着还另外奉送了4个不知哪里来的地址。现在想想,应该是IT输入我们提供的IP地址之外,另外还不小心输入了一个域名,然后又很快改过来了。所以我们在DNS的管理界面里看不到,但是在谷歌DNS服务器里留下了记录。而由于TTL设置的问题,这些地址被缓存在了Google DNS的服务器上。

再过了一会更好笑了,DNS记录居然一会是新的地址,一会是旧的地址。如此反复始终找不到原因。回头再看应该是8.8.8.8后面的集群机器不少,各个服务器保存的DNS records由于TTL时间设置过长,有些更新了,有些没更新。

再后来有机会登录到DNS管理界面(DNSMadeEasy),也看不出什么问题。反正就是DNS缓存的问题了,里面的记录大部分TTL都是设置成86400秒(24小时)的。应该是这个原因造成了DNS更新的复杂。

随着时间的流逝,四五个小时候后,状况总算好了些。80%左右的流量看起来是到达了新服务器,但是老服务器上还是有一些流量。大概也只能等1天了,等过了86400秒,所有的DNS记录都过期了才能好。

教训是:看起来最简单的事情,还真是容易忽视。
那么如何优雅的进行DNS切换呢?DNSMadeEasy给出的建议基本上可靠,大致如下:

  1. 准备工作:提前一两天更新现有DNS记录的TTL,设成一个比较短的数值。300秒,5分钟,差不多了。
  2. DNS切换:切换时,新的记录也设置成比较短的TTL,也300秒吧,这样有问题更新也快,最多也就是等个5分钟。
  3. 新的DNS生效后:观察一段时间,也许1-2天,一周也可以,为了减轻DNS服务器的压力,可以把TTL设置成一个相对比较高的值。86400?

leon

每天进步一点点
Close Menu