我知道当邮件服务器收到电子邮件时,它会执行“DNS 3 向检查”(我认为这有时也称为域名解析服务) 作为针对垃圾邮件发送者的简单测试。我理解它的工作原理如下:
从传入邮件的源 IP 开始(取自实际 IP 数据包):
- 反向查找源 IP 的 PTR——这将得到一个域名
- 从 #1 正向查找域名 - 这将得到一个 IP 地址
- 收到的邮件的 SourceIP 必须与 #2 中得到的 IP 地址相匹配。
有时还会对 SMTP Helo Banner 进行额外检查,其格式为域名。对域名进行正向查找,结果为 IP 地址。然后对 IP 地址的 PTR 进行反向查找,结果应解析回上述 SMTP DNS 记录中设置的相同域名。
但是,如果您有 30 台邮件服务器,并且全部共享 3 个不同的 IP,该怎么办?如何设置 SMTP 横幅、A 记录和 PTR 记录以通过上述所有测试? 假设 30 台邮件服务器无法知道它们在外部获得的 IP 地址。理论上,每个新的 TCP 连接可能来自不同的公共 IP。
我最好的猜测是你必须进行如下设置:
mailer.eddie.com IN A 1.1.1.1
mailer.eddie.com IN A 1.1.1.2
mailer.eddie.com IN A 1.1.1.3
3.1.1.1.in-addr.arpa. IN PTR mailer.eddie.com
2.1.1.1.in-addr.arpa. IN PTR mailer.eddie.com
1.1.1.1.in-addr.arpa. IN PTR mailer.eddie.com
SMTP Banner for each server: mailer.eddie.com
但是,如果 30 个邮件服务器共享完全相同的 SMTP 标语,这会导致其他问题吗?如果查找域返回 3 个不同的 IP 地址,正向查找(上述 3 步中的第 2 步)会受到怎样的影响?
总而言之,这实际上是一个有三个主要方面需要讨论的问题:
(1)确认 DNS/SMTP 三向检查的操作。
(2)确认一个公共 IP 后面的多个服务器的解决方案功能。
(3)确认并详细说明多个非静态公共 IP 地址后面的多个服务器的功能。
答案1
您的 NAT 场景“假设这 30 台邮件服务器无法知道它们在外部获得的 IP 地址是什么”在可靠的 SMTP 传送环境下出现故障。
这很简单。反向 DNS 记录只能可靠地映射回一个主机名。即2.1.168.192.in-addr.arpa.
只会映射到smtp1.example.com
。
A 记录同样如此:smtp1.example.com.
应该只指向一个 IP 地址,192.168.1.2
否则您将得到一个循环 DNS,其中一次查找将显示与第二次查找不同的 IP 地址。
(收件人从 192.168.1.3 获取标识为 smtp1.example.com 的传入连接,并执行 DNS 查找,返回 A 记录 192.168.1.2 --> 不匹配,从而返回额外的垃圾邮件分数。)
这制定了一个简单的规则:邮件服务器应该只使用一个 IP 地址作为主要 IP 地址。