SMTP,使用CNAME还是实名作为服务器地址?

Jim*_*hen 2 email smtp cname-record

问题描述:

我正在为 xxx@nlscan.com 管理 nlscan.com 的公司电子邮件服务器。但是,由于历史原因,我们仍然支持 xxx@mail.nlscan.com。也就是说,foo@nlscan.com 和 foo@mail.nlscan.com 指的是完全相同的邮箱和邮件帐户。我们最近发现一些像@corp.url.com.tw 这样的外来域无法向我们发送电子邮件;我们的 SMTP 日志显示@corp.url.com.tw 的 SMTP 服务器发出 SMTP 命令

RCPT TO:<xxx@nlsgate.nlscan.com>
Run Code Online (Sandbox Code Playgroud)

我们不将 nlsgate.nlscan.com 识别为收件人地址,因此它失败了。我们只允许 'RCPT TO:?xxx@mail.nlscan.com?' .

@nlsgate.nlscan.com 来自哪里?事实上,在我们的 DNS 上,mail.nlscan.com 被定义为 nlsgate.nlscan.com 的 CNAME。

如果从 Gmail 或 Hotmail 发送,我们会看到正确的

RCPT TO:<xxx@mail.nlscan.com>
Run Code Online (Sandbox Code Playgroud)

那么,我想问一下,corp.url.com.tw 的 SMTP 服务器的行为是否符合 RFC?如果它符合要求,我们必须将 mail.nlscan.com 设为 A 记录而不是 CNAME 记录,对吗?请告诉我是哪个 RFC?

Mad*_*ter 7

我不知道这是导致潜在问题的原因,但要回答您的具体问题,不,MX 记录不能是 CNAME。根据RFC2181 s10.3

用作 NS 资源记录值或 MX 资源记录值的一部分的域名不能是别名。规范不仅在这一点上很清楚,而且在这两个位置中的任何一个中使用别名既不能像预期的那样有效,也不能很好地实现可能导致这种方法的雄心。该域名必须具有一个或多个地址记录作为其值。目前,这些将是 A 记录,但将来可能会接受其他提供寻址信息的记录类型。它也可以有其他 RR,但绝不能有 CNAME RR。

在实践中,它通常有效,但如果您遇到问题,那么首先要做的是让自己符合 RFC,然后调查超出此范围的问题。