Azure与Google DNS记录部署咨询:迁移场景下是否需同步全量A记录?
嗨,我来给你理清楚这个问题的核心逻辑,其实关键要看你当前的域名**权威名称服务器(NS)**配置情况,而不是DNS会不会“自动遍历找记录”——DNS的工作方式可不是你想的那样哦。
分两种核心场景来看:
场景1:已经完成权威NS全量切换到Google
如果你已经把foo.com的权威NS完全改成了Google的服务器,那所有针对foo.com及其子域名(比如bar.foo.com)的查询,都会直接指向Google的DNS服务器。这时候Azure里的bar.foo.com记录根本不会被任何人访问到——递归DNS服务器只会去询问域名配置里指定的权威NS,不会没事跑去Azure查。所以这种情况下,你必须把bar.foo.com的A记录同步到Google的DNS里,否则用户查询这个子域名会得到“不存在”的错误。场景2:正处于迁移过渡阶段,NS同时包含Azure和Google
要是你还在逐步切换,现在foo.com的权威NS列表里既有Azure的也有Google的,那递归DNS会随机选其中一个NS来查询。这就会出现问题:有的用户能查到bar.foo.com(刚好选了Azure的NS),有的用户查不到(选了Google的NS),服务会不稳定。所以这个过渡阶段,强烈建议把所有DNS记录(包括你说的bar.foo.com)同步到两边的DNS服务器上,直到你把权威NS完全切换到Google,之后再把Azure里的记录删掉就行。
澄清一个常见误区
DNS不会“遍历所有可能的NS直到找到记录”。递归DNS服务器只会严格按照域名的权威NS列表来查询,如果选中的权威NS返回“没有这个记录”,它就会直接告诉用户域名不存在,不会去其他非权威的NS碰运气。
回到你的例子:如果foo.com已经完全用Google的NS了,那Azure里的bar.foo.com等于白放,必须加到Google;如果还在过渡,两边都得有,避免用户访问异常。
备注:内容来源于stack exchange,提问作者Rob

