如何正確配置兩台伺服器的 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記錄規則用於mailSPF-helo檢查。的規則表示不應從子網域www發送任何電子郵件。www

您的網域、子網域的條目如下。 (請注意 MX 記錄末尾的點。如果缺少,您應該使用mail)。

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

標準服務郵件和 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 記錄中指定的主機名稱。例如,當郵件發送至[電子郵件受保護],會發生以下情況:

為 gmail.com 取得配置的 MX 記錄之一:

# 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

mail.2)應提供網域名稱(不含部分)用於SPF記錄。對於 DKIM 和 DMARC,也應在網域名稱中添加前綴(不含mail.部分),例如:

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

相關內容