IPv4 地址上的邮件服务器需要 AAAA 记录吗?

IPv4 地址上的邮件服务器需要 AAAA 记录吗?

我很惊讶地收到一封通过 Outlook 从我自己的域的 SMTP/IMAP 服务器发送的电子邮件,它被 Gmail 意外退回(详细信息匿名):

您发送的邮件无法递送给一个或多个收件人。这是一个永久性错误。以下地址失败:

  [email protected]
    SMTP error from remote mail server after end of data:
    host gmail-smtp-in.l.google.com [1234:a1b2:4321:a12::1a]:
    550-5.7.1 [1234:1234:1234:a12::12a1] Our system has detected that this message
    550-5.7.1 does not meet IPv6 sending guidelines regarding PTR records and
    550-5.7.1 authentication. Please review
    550-5.7.1  https://support.google.com/mail/?p=IPv6AuthError for more information
    550 5.7.1 . 123ab123456abc.123 - gsmtp

我不明白为什么这是IPv6Auth错误但经过检查反向 IP 查询使用我的 PTR 确实有效,并且我的 DKIM 和 SPF 记录没有问题,我做了DNS IPV6 查找测试这引发了一个简单的“未找到”错误:

aaaa:我的域名.com

查找问题 aaaa

测试:DNS 记录已发布 结果:未找到 DNS 记录

这并不奇怪:我的域名位于 IPV4 IP 地址上,因此我从未设置任何 aaaa 记录,认为(也许是天真?)除非我使用仅限 IPV6 的 IP 地址,否则我不需要它们。

从同一个 my-domain.com 地址向同一个 GMail 地址发送的其他电子邮件没有出现相同的错误,所以这是一个间歇性问题。我添加了 AAAA @mailwww记录,指向我的 IPV4 IP 地址的自动转换 IPV6 版本,到目前为止看起来还不错,但很难说它是否解决了间歇性问题。

我的电子邮件使用 Exim 发送一些动态配置,为邮件服务器上的每个域分配一个 IPv4 地址据我所知,我的 Exim 配置中没有任何内容可以分配 IPv6 地址,但netstat -tulpn | grep :25确实显示 Exim 监听 IPv6 地址:

netstat -tulpn | grep :25
tcp        0      0 0.0.0.0:2525           0.0.0.0:*             LISTEN      2788/exim   
tcp        0      0 0.0.0.0:25             0.0.0.0:*             LISTEN      2788/exim   
tcp        0      0 :::2525                :::*                  LISTEN      2788/exim   
tcp        0      0 :::25                  :::*                  LISTEN      2788/exim 

所以我的问题是:在什么情况下配置为使用 IPV4 IP 地址的邮件服务器需要 AAAA 记录来发送和接收邮件?

答案1

显然,您的电子邮件服务器通过 IPv6 连接到 Google。这很好,因为互联网需要更多人支持 IPv6!

您所查看的内容(A、AAAA 记录等)是指向您的入站连接。Google 看到的是您的出站连接。即使您的 DNS 中没有 AAAA 记录,您的服务器仍可能能够通过 IPv6 进行通信,而且显然确实如此。

第一的:不要使用某些转换技巧将 IPv4 地址放入 AAAA 记录中!这会严重损害你的可达性。看看我们在 RIPE 74 上的演讲恐怖故事。IPv4 和 IPv6 是不同的协议,您不能直接转换地址。请使用您的真实 IPv6 地址。您的服务器显然有这些地址,否则它就无法通过 IPv6 连接到 Google。

当 Google 收到通过 IPv6 传入的连接时,它会对该地址进行反向查找(PTR 记录),以查看该地址的规范主机名。然后,它会对该名称进行查找,以查看该名称是否确实具有该地址(AAAA 记录),以检查反向记录是否没有撒谎。然后,它会根据 SPF 记录检查源 IPv6 地址,以查看该地址是否应该从该域发送邮件。

基本上,这些检查与 Google(和许多其他人)对 IPv4 所做的检查相同。由于 IPv6 是一种较新的协议,Google 决定对检查进行更严格的处理。他们希望人们从一开始就正确处理,这样我们就不会像 IPv4 那样遇到遗留问题。这可能就是为什么您在通过 IPv6 进行通信时会更早注意到它的原因。

希望这对你有帮助。首先要做的是找出邮件服务器的 IPv6 地址。如果你没有刻意配置它们,你可能还需要检查你的 IPv6 防火墙设置并将它们与你的 IPv4 设置对齐。支持 IPv6 很棒,但一定要确保你安全地进行 :)

相关内容