改完解析,网站却不是马上通。原因是答案被一层层缓存了,到期之前问到的还是旧的;等多久,由记录自己的有效期决定。
域名解析不是每次从头问一遍。第 25 期讲过,为了省时间,浏览器、操作系统、家里的路由器,以及替用户查询的解析器,都会把拿到的答案存一段时间。这段时间叫存活时间,也就是第 34 期讲的 TTL,由域名持有者在配置里设定。
改一条记录,只改了权威服务器上的答案。各级缓存里那份旧答案还活着,要等它自己的存活时间走完,才会有人回来问新的。所以生效快慢取决于旧记录原先设了多长,跟解析商处理得快不快没关系。
查不到的名字也会被记住。如果一个域名此前根本不存在,解析器会把"不存在"这个结果也缓存一段时间,时长取这个域名起始授权记录里的字段。这就是为什么刚配好的新域名,有时仍然查不到。
常见做法是分三步:计划迁移前先把存活时间调短,等旧值过期后再改目标地址,改完再把时间调回去。否则,同一个域名在不同网络里会同时存在新旧两个答案,访问结果不一致。