如何正确设定您的 DNS

07.22.2020  - 作者  在 域名

很多时候,DNS 语法都被当作某种深奥的知识来看待,这些知识从头开始,由一个精心挑选的机密团队保护着。出于充分的理由 – 通常会认为一个错误的举动可能就会破坏您的区域文件档,而使您的网站离线,然后阻止电子邮件到达。

然而实际上,您的 DNS 区域并不是什麽神秘的事。任何人都可以学习如何编辑其 DNS 区域和管理其 DNS 的设定。

但这并不是说就完全没有陷阱。我们今天要告诉您如何去解决一些常见的 DNS 错误,并协助您在未来能够避免这些错误。

语法问题

如果您是电脑科学或语言方面的专家,那麽您可能知道什麽是语法,但如果您没有这方面的知识也没关係,您就把语法看作是 DNS 的文法。DNS 系统是最极端的语法,基本上它不会接受任何不正确的内容。

这就是大多数陷阱的来源 – 错误的 DNS 语法。您以为您在叙述一件事,但 DNS 文法否决它或误解了您的本意。

DNS 记录解析

让我们快速地地分解 DNS 记录中的内容。

每个 DNS 记录都是上方的基本部分所组成。

名称 (Name) 指的是您在该 DNS 记录中所定义的名称。TTL 是 “生存时间”。基本上,这个就是在控制 DNS 伺服器检查该记录是否有变更的频率,以秒为单位。类型指的则是纪录类型。每种记录类型都有不同的功能。CNAME 又称作别名,它允许您将一个域名指向另一个域名。 A 记录则允许您将域名指向 IP 位址。MX 记录允许您将域名指向电子邮件的伺服器。

常见的 DNS 错误

看完上述简短的解释,接着让我们一起了解常见的 DNS 错误。

1. 缺少一个点

当您要将一个域名或子域名指向另一个域名时,该域名必须以点号作结尾,否则将不起作用。

相对语法 vs. 绝对语法 或 完全合格 vs. 部分合格

原因如下:根据您的 DNS 供应商或 DNS 介面,您可能必须使用相对语法,或者可能必须使用绝对语法。

差别是什麽呢?

可以将其想像成名字或全名。当您要从现有的每个可能的人选中寻找某个人时,您一定要使用其全名(姓氏+名字),以确保您正在寻找的是正确的人(即使如此,与域名不同,其它还是存在着重複的选项)。

但是,如果您要寻找自己家庭中的某人,那麽您就不需要指定。您可以就直接使用名字。

与 DNS 的原理相同。域名的全名,姓氏和名字皆为 “完全限定域名”(或简称 FQDN)。这表示您必须列出完整的域名。最重要的一点是,这个完整的名称包含点。

为什麽要包含点?它代表的是 “根区域”。这代表我们正在讨论的是 DNS,而不是其它命名系统。实际上,您可以按照从上到下,从右到左的层次结构读取域名。让我们看一下 FQDN news.gandi.net. :

  • . – 这个点把我们放进了域名系统 (DNS)。理论上,域名可以在 DNS 之外,但是这不是我们要讨论的范围
  • .net – 指的是我们在 DNS 系统中的 “.net” 区域
  • gandi – 在 DNS 系统中 “.net” 区域中的 “gandi” 区域
  • news – 这带我们进入 DNS 系统中的 “.net” 区域裡的 “gandi” 区域中的 “news” 区域。

然而,在 DNS 区域中,您只能使用相对语法,意思是您只要使用 “部份符合条件” 的域名即可简化操作。因此,在 gandi.net. 区域中,’news’ 可以是部份符合条件的域名,而 news.gandi.net. 就是完全符合条件的域名。

这裡的陷阱發生在当您将子域名指向另一个域名的时候。通常使用的会是 CNAMEANAME,或是 MX 纪录。如果您不将您的子域名指向完全符合条件的域名,那麽使用相对语法的区域就会认为您指的是您所在区域中的子域名。

所以如果我们创建一个将域名 news.gandi.net. 指向域名 gandi.net 的 CNAME,但是我们忘记在域名结尾加上一个点(gandi.net”.”),则该记录将被读取成将 news.gandi.net. 指向 gandi.net.gandi.net。

2. 因该使用 @

此种错误是上述错误的另一面向。在名称栏中,通常会将您要定义的子域名放在其中,例如如果要在 example.com 区域中定义 www,或者如果该记录是针对 www.example.com,则会将 www 放在其名称栏中。

但是如果您只是想为 example.com 做个指向而不是要定义 www 呢?那您就可以使用符号 @ 去表示您的主域名。

因此,这种错误在于使用主域名当作名称,通常是输入主域名,而忘记使用 @。

3. MX 记录重複

在您的域名上为新邮件服务加上新的 MX 记录之前,请确任您已经删除现有邮件服务中的 MX 记录。否则,您最终将会發生此错误 – 设定指向不同位置的重複的 MX 纪录。

此错误来自于您的 DNS 区域中允许有不同的 MX 记录作为备用,因此,如果最优先使用的邮件伺服器无法使用时,您欲發送的电子邮件仍将会透过备用邮件伺服器寄出,最后您还是会收到电子邮件。

但是,如果您有指向两个不同邮件服务的 MX 记录,那麽最后您将在其中一个电子邮件服务中收到部分电子邮件,然后也会透过另一个电子邮件服务收到另一部份的电子邮件。

当人们想将他们的电子邮件指向另一个邮件服务,并尝试加入新的 MX 纪录以在两个邮件服务中都能收到邮件的情况下,这种错误也会發生。

4. 变更生存时间

这项错误来自于对生存时间 (以下简称 TTL) 的误解,而不是来自于语法错误。

误解是关于 TTL 或保留在记录上的时间,通常情况是在过去的某个时间点上,DNS 记录上的 TTL 被设定成很长的时间,或是比期望的时间更长。

然后,域名管理员希望更改记录并将其迅速传播。

本质上来说,TTL 控制的是记录被缓存多长时间。我们将 DNS 解析器的说明保留在下次的文章中,但现在能够说明的是,网路上的 DNS 伺服器并不会在每次需要的时间点上不间断地检查所有 DNS 记录是否有更新。而是将 DNS 记录缓存一段时间,并且该时间是由 TTL 所控制。

这裡有个窍门:当您在纪录上设定新的 TTL 时,新的 TTL 也必须在网路上传播,或是传播到所有 DNS 伺服器上。而 DNS 伺服器甚至在当前缓存过期前都不会去检查新的 TTL。

这表示人们将使用一个较短的 TTL 去更新带有一个 TTL 的 DNS 记录,并预期该新记录能够因此更快地生效。

而实际上,没有任何事情能够让您的记录传播得更快。如果您的 TTL 较长,那您就只能等待。

到目前为止,这些并不是您可能在 DNS 记录中犯的唯一错误,但它们是一些最常见的错误。

我们希望透过此文章,能帮助您避免最常见的 DNS 陷阱,但是当然,如果您需要 DNS 方面的协助,请随时与我们的客户服务团队联繫