为什么我的 Google Cloud DNS 中的 A 记录在创建后不能立即解析?

为什么我的 Google Cloud DNS 中的 A 记录在创建后不能立即解析?

我正在通过 Google Cloud API 创建 DNS A 记录,最终得到:

  • DNS 名称:some-subdomain.mysite.io
  • 类型:A
  • TTL: 1
  • IP: 35.XXX.XXX.XX

确认条目已创建并可在 API 中查看后,我尝试使用 nslookup 解决它,但得到以下结果:

$ nslookup some-subdomain.mysite.io
 Server:        192.168.178.1
 Address:   192.168.178.1#53

** server can't find some-subdomain.mysite.io: NXDOMAIN

它会持续这种状态几分钟,直到最终解决。

因为第一次查找是在创建之后进行的,所以我希望它不会丢失(因此不会丢失缓存)。我能做些什么让查找更快地成功吗?

答案1

如果您在创建记录之前执行查询,则会用记录的 NXDOMAIN 返回代码污染缓存,从而产生称为负 TTL 的延迟,该延迟在 SOA 记录(最后一项)中指定。

此外,您不应该使用它nslookup进行 DNS 诊断,但是dig您应该始终指定查询的名称服务器,以确保将来自权威名称服务器的结果与缓存在递归名称服务器中某处的结果分开。

答案2

您通过 Google Cloud API 创建 A 记录并开始解析它。但您不知道 Google 更新其 DNS 配置的频率,可能需要几分钟才能更新区域配置,这就是它几分钟内无法解析的原因。

如果你想了解有关 DNS 工作的更多信息,你可以阅读本文或检查这个漫画, 例如。

答案3

我们想出的解决方案是使用通配符 DNS 条目。所以现在我有一个条目:

*.mysite.io -> 10.XX.XX.XX

这意味着我们创建的任何子域都可以立即解析,因为 DNS 已经存在。然后我们根据主机标头进行内部路由。

相关内容