Как правильно настроить DNS для 2 серверов: один для веба, другой для почты?

Как правильно настроить DNS для 2 серверов: один для веба, другой для почты?

Для почтового сервера я использую iredmail. У меня есть почтовый сервер со следующими настройками:

# /etc/hostname
mail

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

поэтому полное доменное имя — 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как: «внешняя служба электронной почты, если вы отправляете электронное письмо на[email protected](@ = mydomain.com), затем отправить письмо на сервер с полным доменным именем mail.mydomain.com", но моя логика, похоже, не работает. Почему?

Здесьмы видим, что имя хоста может быть @с разным FQDN. Почему в моем случае это не работает?

2) Для записей TXT, какое Имя мне следует указать? @или mail, например, доменное имя или имя хоста? Если mail, значит ли это, что если у меня 10 почтовых серверов, для всех них мне нужно создать свои собственные записи TXT?

решение1

Я перевел ваши записи DNS в формат bind. Если вы не меняете запись, вам не нужно указывать TTL для записи.

Я преобразовал записи SPF в простейшую форму. AПравило для mailзаписи предназначено для -heloпроверок SPF. Правило для указывает, что с поддомена wwwне следует отправлять электронные письма .www

Далее следуют записи для вашего домена и поддоменов. (Обратите внимание на точку в конце записи MX. Если она отсутствует, просто используйте mail).

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

Стандартные сервисы mail и 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 для части имени хоста адреса электронной почты. Например, когда почта отправляется на[email protected], происходит следующее:

Одна из настроенных записей 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

В вашем случае неясно, как была решена проблема, так как первоначальная конфигурация выглядит хорошо. Попробуйте проверить, какой MX-сервер отвечает за ваше доменное имя и к какому IP-адресу он относится, используя публичный DNS:

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

2) mail.Для записи SPF необходимо указать доменное имя (без части). Что касается DKIM и DMARC, то к доменному имени (без mail.части) также следует добавить префиксы, например:

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

Связанный контент