我有一个后缀邮件服务器配置为出站电子邮件,在一个双重堆栈(IPv4 + IPv6)服务器。
IPv4地址是私有的,因为它与同一连接上的其他服务共享(SNATed到公共IPv4),而IPv6地址是公共的和唯一的(全局范围,因特网路由)。
在这种情况下,公共IPv4和IPv6地址具有不同的反向DNS记录是很常见的,因此我希望后缀在其SMTP客户端中使用HELO来匹配反向DNS。进行这种匹配是很好的做法,因为在设置这种不对称的邮件时会触发积极的邮件过滤。
我的处境:
srv1.example.com,A of srv1.example.com指向212.XX.XX.22)srv1.example.com,AAAA of srv1.example.com指向2001:XX:XX:1)srv1-postfix.example.com,AAAA of srv1-postfix.example.com指向2001年:XX:XX::12)使用的HELO主机名必须取决于SMTP客户端用于设置连接的地址家族。如果是通过IPv4发送,则HELO必须是srv1.example.com,如果客户端通过IPv6发送HELO,则HELO必须是srv1-postfix.example.com才能符合SMTP最佳实践。
怎么做呢?我想避免任何形式的NATing在IPv6上。
我见过这个:修复多个IP SMTP横幅。在这里它不是很有用,因为它解释了如何在侦听套接字(smtpd)而不是SMTP客户端(smtp)上设置特定于域的横幅。
发布于 2019-12-12 19:22:22
您的问题本质上是,对于邮件来说,对主机名和IP地址对齐的正向和反向查找是很重要的。(请注意,对于大多数其他服务来说,这并不重要。)
目前,您的邮件服务器将在IPv4上显示的主机名与它在IPv6上使用的主机名不同。
最简单的解决方案是简单地对齐您的服务器名,以便在IPv4和IPv6上使用相同的主机名来知道邮件服务器。
换句话说:给主机一个新的名称,并将后缀使用的主机名从srv1-postfix更改为srv1,并相应地更新IPv6记录。
然后,您得到的通常情况是,您的后缀主机只有一个主机名srv1.example.com、一个IPv4地址(192.0.2.1)和一个IPv6 2001:db8:0:0:0:0:0:1地址,并且所有正向和反向映射都解析到同一个srv1.example.com。
接收和发送邮件所需的DNS记录将是
example.com. IN MX 1 srv1.example.com.
srv1.example.com. IN A 192.0.2.1
srv1.example.com. IN AAAA 2001:db8:0:0:0:0:0:1而相应的反向记录是
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. IN PTR srv1.example.com.
1.2.0.192.in-addr.arpa. IN PTR srv1.example.com. 然后,在您的后缀中,您可以简单地使用myhostname = srv1.example.com,在需要主机名的任何地方(比如在EHLO横幅中),主机名将被正确地使用和对齐。
https://serverfault.com/questions/881323
复制相似问题