SMTP 的 DNS 和 PTR:共享 IP 和子域

SMTP 的 DNS 和 PTR:共享 IP 和子域

这个问题与其他关于 SMTP 的 PTR 和 DNS 的问题类似,但有一个具体方面没有得到回答:如果一台机器在同一个 IP 地址上执行 SMTP 和 HTTP,会怎么样?例如:

mail.example.com 上的 SMTP,也是 HELO。(1.2.3.4)www.example.com 上的 HTTP(1.2.3.4)example.com 上的常规访问,如 ssh(1.2.3.4)

垃圾邮件过滤器接受地址 1.2.3.4 上的 PTR 记录需要满足哪些要求?1.2.3.4 的“主”主机名是 example.com,但如果反向 DNS 查找需要精确匹配,我必须将其设置为 mail.example.com。这很愚蠢。我的意思是,反向查找 66.102.13.106 不会得到 mail.google.com。

或者,如果反向查找发现 example.com 和 mail.example.com 作为 MX 记录就足够了吗?换句话说,我应该将 PTR 设置为 example.com 吗?

有人可能会说我应该建立 SMTP 访问和 HELO example.com,但是这会导致缺乏灵活性,因为那样我就无法通过简单地更改 A 记录将 SMTP 移动到另一台机器。

编辑:我的意思似乎不清楚,所以让我澄清一下:

有问题的服务器托管 DNS、SMTP、WWW 等。它执行自己的所有 DNS。Example.com 指向该机器,例如 1.2.3.4。因为邮件不是它的主要功能,所以我不希望 1.2.3.4 反向解析为 mail.example.com

服务器运行 postfix,其 HELO 为 mail.example.com,也指向 1.2.3.4。要使 PTR 匹配,1.2.3.4 应该反向解析为 mail.example.com,但正如我所说,我希望它解析为 example.com,因为邮件不是服务器的主要任务。

这是否意味着我必须将邮件名称更改为 example.com,并且将其放在 mail.example.com 会导致一些垃圾邮件过滤器拒绝它,即使邮件是 example.com 的 mx 记录?

答案1

  • 您可以让任意数量的 A RR 指向 1.2.3.4。
  • 您必须有一个 PTR 点回到某个名称。
  • 因此,您只需确保 PTR 指向您想要的名称,并且该名称指向 1.2.3.4。

这意味着您可以拥有:

example.com. 在 1.2.3.4 中

example.com。IN MX 10 mail.example.com。

server.example.com。在 1.2.3.4 中

www.example.com。在 1.2.3.4

mail.example.com。在 1.2.3.4 中

和:

4.3.2.1.in-addr.arpa.IN PTR server.example.com。

为什么有这个要求?因为当您的 SMTP 服务器连接到远程 SMTP 服务器以传递邮件时,SMTP 服务器只知道您的服务器的地址,而不知道名称。有了手头的地址 (1.2.3.4),它会查询 DNS 并获取 PTR 响应 (server.example.com)。远程服务器现在将再次询问 DNS“server.example.com 的地址是什么”,并且它期望答案是 1.2.3.4。

你在 HELO 字符串中发送的内容不应该吓到你。你可以阅读SMTP HELO 的用途并根据 HELO 字符串中给出的内容查找允许阻止的异常。

答案2

HTTP 服务不需要有相应的PTR记录。SMTP 有,并且它应该始终对应于正向解析响应。

您的A域名记录不必与 MX 记录匹配,例如:

@     IN A   1.2.3.4
      IN MX  10 mail
mail  IN A   1.2.3.5

完全有效。

根据设计,应用程序会尝试查找您的MX记录,但如果未设置,它们将返回到您的A记录。这就是灵活性发挥作用的地方。MX如果您是有效的 SMTP,则不设置您的记录是错误的。

PTR如果您的邮件与外发 smtp 服务器的主机名不匹配,垃圾邮件过滤器通常会丢弃您的邮件(或分配一个高值/标签) 。如果您的MX邮件指的是 mail.example.com,则应将其设置为 mail.example.com。

通常你的 helo 也应该引用你的PTR/,MX因为这是另一个测试,让你的服务器在垃圾邮件过滤器中获得低分,并且不会被标记为垃圾邮件。

編輯:

根据您的编辑,它的主要目的是什么并不重要。重要的是您需要做什么才能避免在您的 MX 上获得高垃圾邮件分数。

也就是说,您的 MX 不必指向 mail.example.com,您可以说:

@ IN A 1.2.3.4 IN MX example.com。

这是 Bind 语法,请注意 example.com 末尾有一个点。如果您迫切需要将您的 PTR 注册为 example.com 并与 HELO 保持一致,您可以尝试此方法。

答案3

通常,您将 HTT 与 SMTP / 网络分离。

  • HTTP 的域是根据需要添加的。它们所做的只是指向服务器或 CNAME 服务器名称,并为 IIS 设置相应的主机标头。
  • 服务器有自己的主机名,主要位于主机域中(server1.thehoster.com)。与第一个答案一样,www.customerdomain.com 可以是 server1.thehoster.com 的 CNAME
  • 对于 SMTP,前向和后向指针相同非常重要。因此,在 SMTP 连接上,服务器将标识为 server1.thehoster.com(可能只有一个名称),并且 PTR 记录将解析为 server1.thehoster.com。用于 Web 访问的域根本不会在此处输入。

答案4

您无需为您的域提供 MX 记录。如果没有 MX 记录,则 MTA 应该使用您域的 A 记录来递送邮件。

但是,这会导致大量垃圾邮件过滤器将来自您的域的邮件标记为可能的垃圾邮件。

因此,即使邮件不是您的“主要任务”,您可能仍希望让垃圾邮件过滤器满意。要实现这一点,您的区域必须如下所示:

@                      IN A     1.2.3.4
                       IN MX 10 mail
mail                   IN A     1.2.3.4
1.2.3.4.in-addr.arpa.  IN PTR   mail

相关内容