我正在通过 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
答案3
我们想出的解决方案是使用通配符 DNS 条目。所以现在我有一个条目:
*.mysite.io -> 10.XX.XX.XX
这意味着我们创建的任何子域都可以立即解析,因为 DNS 已经存在。然后我们根据主机标头进行内部路由。