最近在使用 Digitalocean 的 DNS 服务时发现了一个其他 DNS 提供商不存在的奇怪问题。
当记录中带有下划线时,除非删除该记录,否则对该区域的所有后续更新都不会生效。
这意味着区域文件已更新,但外部 DNS 查询只会从以前的记录中获得答案。
我可以排除 DNS 缓存导致的问题,因为新记录将始终获得 NXDOMAIN,并且我尝试查询我的域的根 DNS 服务器。我甚至尝试在 TTL 之后进行查询,但结果与旧区域文件相同。
我很好奇这是什么问题?什么情况下会出现这种情况?
我曾质疑 Digitalocean 的支持,但他们似乎很忙,对这个问题不感兴趣。
因此我在这里发布这个问题,希望有人能给我找到答案。
答案1
如果问题仅出在 Digitalocean 的 DNS 服务上,那么他们几乎是唯一可以为您提供帮助的地方。如果他们拒绝帮助您(支持人员似乎很忙),您应该寻找其他服务。
答案2
这是 Windows 和基于 Unix 的 DNS 服务器之间的区别之一。Windows 服务器将下划线视为有效字符。基于 Unix 的服务器(特别是 BIND)则不然。对于后者,有一个解决方法:创建一个有效的 A 记录(不带下划线),然后创建一个指向 A 记录中主机名的 CNAME(带下划线)。这有点麻烦,但在与坚持在主机名中使用下划线的客户打交道时很有用。
答案3
按照 Digital Ocean 中的建议,我创建了一个名为 domainkey.mydomain.com 的子域名。然后我可以创建一个 CNAME _domainkey.mydomain.com,然后您可以为 Sendgrid 创建 s1._domainkey.mydomain.com 或 s2.domainkey.mydomain.com。