Назад | Перейти на главную страницу

Как настроить записи MX так, чтобы почта в мой домен шла в одно место, а почта во все поддомены - в другое место?

У меня есть доменное имя example.com, для которого я бы хотел, чтобы почта направлялась на разные серверы в зависимости от обстоятельств.

Почта, отправленная на адрес @ example.com, должна идти на сервер mail.server1.com, а почта на любой поддомен @ *. Example.com должна идти на mail.server2.com

Есть ли способ настроить записи MX для этого (или любой другой способ сделать это в этом отношении)? Могу ли я использовать записи DNS с подстановочными знаками для записей MX?

Запись MX с подстановочными знаками вполне допустима, нет необходимости в дополнительном CNAME.

Вы могли бы просто ...

example.com    IN MX 10 mail.server1.com
*.example.com  IN MX 10 mail.server2.com

Ваш CNAME просто вызывает дополнительный поиск DNS

Все зависит от DNS-сервера, который вы используете.

В привязке из этого пример:

; zone fragment for 'zone name' example.com
; name servers in the same zone
$TTL 2d ; zone default TT = 2 days
$ORIGIN example.com.
@              IN      SOA   ns1.example.com. hostmaster.example.com. (
               2003080800 ; serial number
               2h         ; refresh =  2 hours 
               15M        ; update retry = 15 minutes
               3W12h      ; expiry = 3 weeks + 12 hours
               2h20M      ; minimum = 2 hours + 20 minutes
               )
; main domain name servers
              IN      NS     ns1.example.com.
              IN      NS     ns2.example.com.
; mail servers for main domain
              IN      MX 10  mail.example.com.
; A records for name servers above 
ns1           IN      A      192.168.0.3
ns2           IN      A      192.168.0.4
; A record for mail servers above 
mail          IN      A      192.168.0.5
; other domain level hosts and services
bill          IN      A      192.168.0.6
....
; sub-domain definitions
$ORIGIN us.example.com.
              IN      MX 10  mail
; record above uses blank substituition 
; and could have been written as 
; us.example.com.   IN  MX 10 mail.us.example.com.
; OR (using @ substitution)
; @ IN MX 10 mail
; A record for subdomain mail server
mail          IN      A      10.10.0.28
; the record above could have been written as 
; mail.us.example.com. A 10.10.0.28 if it's less confusing
ftp           IN      A      10.10.0.29 
; the record above could have been written as 
; ftp.us.example.com. A 10.10.0.29 if it's less confusing
....
; other subdomain definitions as required 

Additional sub-domains could be defined in the same file using the same strategy. For administrative convenience you could use $INCLUDE directives e.g.

; snippet from file above showing use of $INCLUDE
....
; other domain level hosts and services
bill          IN      A      192.168.0.5
....
; sub-domain definitions
$INCLUDE us-subdomain.sub
; other subdomain definitions as required

Я нашел ответ на этот вопрос почти сразу после публикации :)

Установите для записей MX для example.com значение mail.server1.com, как ожидалось.

Затем, чтобы установить подстановочный знак, вы можете создать подстановочный знак CNAME * .example.com, который указывает на некоторый общий поддомен sub.example.com, а затем создать запись MX для sub.example.com, которая указывает на mail.server2.com.