同一件事,在这台机器上问是一个结果,换一台又是另一个结果。这种不一致让很多人以为其中一方查错了。实际情况是,参与查询的角色有好几类,各自手里留的副本新旧不同,回答自然不一样。弄清楚哪一类角色给的是最终答案、哪些只是转述,判断的时候就知道该信谁。这套顺序在代理IP环境下也适用。
参与的角色有哪几类
本机只负责发起,自己不掌握任何答案。接手的服务器分两种:一种负责替使用者一路问到底,再把结果带回来;另一种只掌握自己管着的那一部分,别的不清楚。日常配置里写的那台通常是前者,手里有副本就快,没有就慢。运维方在调整域名时直接找的是后者,因为只有它那里的答案是最终的。
- 本机只负责发起,自己不掌握答案
- 一类替使用者一路问到底,带回结果
- 另一类只管自己那部分,答案是最新的
为什么答案会不一样
差别来自副本的新旧。前一种手里留的是过去某个时刻的答案,后一种永远是最新的。所以改了配置之后,去问后者能立刻看到新结果,去问前者可能要等一段时间。判断是不是副本问题时,两边各问一次对照一下就清楚了。代理IP环境下如果中间多了一层转发,这条链还会更长一些。
管着这个域名的服务器给的是最终答案,其余都是转述。
还有一种情况是不同地区接手的服务器拿到的结果不同,因为它们各自留副本的时刻不一样,或者被按来源分配了不同的结果。这类差异会随着有效期到期逐步收敛,不会一直存在。代理IP的地区设定如果要求区域一致,最好等传播完成之后再验证,否则测出来的差别可能只是副本造成的。
向管这个域名的那台服务器问一次,就能拿到当前的最终结果。
分清谁在转述、谁在定案,结果不一致就不难解释。排查时两边各问一次,结论立刻清楚。
