我不得不手动调整我的DNS服务提供商的BIND文件。
BIND文件,由专业托pipe公司创build,之前:
$ORIGIN mycoolsite.com. $TTL 300 @ SOA ns1.cheapreg.com. registry.cheapreg.com. ( ... ) @ IN 3600 NS ns1.cheapreg.com. @ IN 3600 NS ns2.cheapreg.com. @ IN 3600 A 199.9.99.85 @ IN 3600 A 199.9.99.86 * IN 3600 A 199.9.99.85 * IN 3600 A 199.9.99.86 www IN 3600 A 199.9.99.85 www IN 3600 A 199.9.99.86
BIND文件,由layman创build,之后:
$ORIGIN mycoolsite.com. $TTL 300 @ SOA ns1.cheapreg.com. registry.cheapreg.com. ( ... ) @ IN 3600 NS ns1.cheapreg.com. @ IN 3600 NS ns2.cheapreg.com. * IN 3600 A 219.94.116.50 * IN 3600 A 219.94.116.51 * IN 3600 A 219.94.116.52
不同之处在于“pro”文件重复了名称服务器条目,一次为@,一次为*,
而我没有。
任何理由我也应该重复名称服务器条目(@和*)?
根据第一个绑定文件,我相信当您查询mycoolsite.com的Alogging时,以下内容将发送两个IP:
@ IN 3600 A 199.9.99.85 @ IN 3600 A 199.9.99.86
以下logging是通配符logging:
* IN 3600 A 199.9.99.85 * IN 3600 A 199.9.99.86
因此,当您查询可能存在的网站couldthispossiblyexist.mycoolsite.com或blah1290eu.mycoolsite.com作为Alogging时,您将收到两个IP。
@代表主域本身的logging(即没有任何前缀)
*是通配符logging,表示主域的所有可能的子域,但不包括域本身。
因此,在这种情况下,您的新的区域文件在查询域本身时不会提供任何“Alogging”(即IP地址),而只是为其子域。
[你说这是名称服务器条目是重复的,但事实并非如此 – 这显然是与A而不是NS的行重复,但现在不是]
有两个主要区别:
第一个示例显式复制子域www的A条目,即使它们将被* (通配符)子域A条目覆盖。 这应该不会影响查询www子域的结果。
这只是为了维护区域文件的人的利益:通知他们实际上使用了www 。 通常最好列出您使用的实际子域名,而不是仅使用通配符,因为它有助于自我提醒未来谁可能pipe理该区域,哪些子域实际上正在使用。 如果你想迁移一天,这可能会有所帮助。
至于你是否应该这样做 – 这不是强制性的。
第二个示例删除域本身的Alogging。
这是一个问题,因为这意味着mycoolsite.com单独(没有任何子域)不再映射到任何东西。 当前区域(也称为@ )的顶部不包含通配符子域名条目 – 通配符子域名条目仅适用于子域名。
这可能被认为是一个错误 – 除非出于某种原因,您希望mycoolsite.com不要映射到任何内容,并且仅在指定子域时才可用。