最近玩Digitalocean的DNS服务,发现一个奇怪的问题,不存在其他DNS提供商。
当logging中带有下划线时,除非该logging被删除,否则对该区域的所有后续更新都不会生效。
这意味着区域文件已更新,但外部DNS查询将只能从以前的logging中得到答案。
我可以排除导致问题的DNScaching,因为新logging总是会得到一个NXDOMAIN,我试图查询我的域的根DNS服务器。 我甚至尝试在TTL后查询,但结果与旧的区域文件相同。
我很好奇,是什么样的问题呢? 在什么情况下会发生?
我质疑Digitalocean的支持,但他们似乎很忙,对这个问题不感兴趣。
所以我在这里提出这个问题希望有人能指出我的答案。
如果问题只在于Digitalocean的DNS服务,他们几乎是唯一可以帮助您的地方。 如果他们拒绝帮助你(支持似乎很忙),你应该寻找另一种服务。
这是Windows和基于Unix的DNS服务器之间的区别之一。 Windows服务器认为下划线是有效的字符。 基于Unix的服务器(特别是BIND)没有。 对于后者,有一个解决方法:创build一个有效的Alogging(不带下划线),然后创build一个CNAME(带下划线),指向Alogging中的主机名。 这有点难以理解,但在处理坚持使用主机名下划线的客户时很有价值。