如何正确配置两台服务器的 DNS:一台用于网络,另一台用于邮件?

如何正确配置两台服务器的 DNS:一台用于网络,另一台用于邮件?

对于电子邮件服务器,我使用iredmail。我的电子邮件服务器具有以下设置:

# /etc/hostname
mail

# /etc/hosts
127.0.1.1 mail.mydomain.com mail
127.0.0.1 localhost

所以 FQDN 是mail.mydomain.com

这里我找到了我使用过的示例,但是通过这些示例,我的服务器可以发送电子邮件,但无法接收:

Type     Name                Value                                  TTL
A         @                  195.201.40.1                           1 hour  # Web server
A         mail               195.201.40.2                           1 hour  # Mail server
MX        @                  mail.mydomain.com (Priority: 10)       1 hour
TXT       @                  v=spf1 ip4:195.201.40.2 -all           1 hour
TXT       @                  v=DMARC1; p=reject; sp=reject;...      1 hour
TXT       _adsp._domainkey   dkim=all
TXT       dkim._domainkey    v=DKIM1; k=rsa; p=MIGfMA0GCSq...

然后我改变了:

MX        @   mail.mydomain.com (Priority: 10)  1 hour

MX        mail    mail.mydomain.com (Priority: 10)  1 hour

并且邮件服务器开始接收电子邮件。

我有两大类问题:

1) 据我了解,外部电子邮件服务(例如 gmail)将邮件发送到mydomain.com,而不是mail.mydomain.com,因为我的电子邮件地址看起来像[email protected],而不像[email protected]。为什么更改@为 可以mail解决接收电子邮件的问题?

我理解的记录MX @ mail.mydomain.com是:“外部电子邮件服务,如果您发送电子邮件至[电子邮件保护](@=mydomain.com),然后向具有 FQDN mail.mydomain.com 的服务器发送电子邮件”,但我的逻辑似乎不起作用。为什么?

这里我们可以看到主机名可以@与不同的 FQDN 一起使用。为什么在我的情况下它不起作用?

2) 对于 TXT 记录,我应该提供什么名称?@mail,即域名或主机名? 如果mail,是否意味着如果我有 10 个邮件服务器,我需要为所有邮件服务器创建自己的 TXT 记录?

答案1

我已将您的 DNS 记录转换为绑定格式。除非您要更改条目,否则您不需要为条目指定 TTL。

我已将 SPF 记录转换为最简单的形式。A该记录的规则mail用于 SPF-helo检查。规则www表示不应从www子域发送电子邮件。

您的域名条目,后面跟着子域名。(请注意 MX 记录末尾的点。如果没有,则应使用mail)。

 @       IN  A    195.201.40.1
         IN  MX   mail.mydomain.com.
         IN  TXT  "v=spf1 mx -all"

标准服务邮件和 www(即使条目中未提供 www,某些浏览器也会尝试 www)。

 mail    IN  A    195.201.40.2 
         IN  TXT  "v=spf1 a -all"
 www     IN  A    195.201.40.1 
         IN  TXT  "v=spf1 -all"

带报告的 DMARC 配置。除非报告表明您没有问题,否则我不会使用策略reject。您可能希望将其none作为您的策略开始。

 _dmarc  IN  TXT  "v=DMARC1; p=reject; sp=reject;..."
 *._report.dmarc  IN TXT "v=DMARC1"

DKIM 的配置。_adsp似乎不再符合标准。请将其替换dkim为您在签名时使用的密钥名称。

 _adsp._domainkey IN  TXT dkim=all
 dkim._domainkey  IN  TXT  v=DKIM1; k=rsa; p=MIGfMA0GCSq...

答案2

1) 邮件将发送到电子邮件地址主机名部分的 MX 记录中指定的主机名。例如,当邮件发送到[电子邮件保护],将发生以下情况:

其中一条配置的 MX 记录适用于 gmail.com:

# dig mx gmail.com +short | head -n 1
5 gmail-smtp-in.l.google.com.

电子邮件被发送到相应邮件服务器的IP地址:

# dig gmail-smtp-in.l.google.com +short
173.194.221.27

就您而言,由于初始配置看起来不错,因此不清楚问题是如何解决的。尝试使用公共 DNS 检查哪个 MX 服务器负责您的域名以及它指向哪个 IP 地址:

# dig mx mydomain.com @8.8.8.8 +short
mail.mydomain.com
# dig mail.mydomain.com @8.8.8.8 +short

2)SPF 记录需要提供域名(不带mail.部分)。对于 DKIM 和 DMARC,域名(不带mail.部分)也需要添加前缀,例如:

TXT       _dmarc             v=DMARC1; p=reject; sp=reject;...
TXT       dkim._domainkey    v=DKIM1; k=rsa; p=MIGfMA0GCSq...

相关内容