LINUX.ORG.RU
ФорумAdmin

Несколько MX (один домен, несколько серверов)

 , , , ,


1

1

Здравствуйте, есть домен пускай будет example.com, и 3-и сервера, на каждом поднят почтовый сервер с обслуживанием такого домена, прописал MX записи:

mx1 MX 10 server1 mx2 MX 20 server2 mx3 MX 30 server3

На server1 есть учетки: vasya@example.com dima@example.com

На server2: ass@example.com foo@example.com

На server3: bar@example.com beer@example.com

Вопрос, реально ли, чтобы письма всем доходили т.е. отправляем письмо на ass@example.com, оно сперва естественно уходит на server1, но там ящика нет и пошло по MX дальше на server2, а там уже принялось?

P/S: сейчас конечно нифига не пашет.

Спасибо.


я бы сказал, что нет, потому что первый сервер ответит, что такого ящика не существует. но если заставить первый сервер ответить , что извините временный технический сбой, то да. но это костыль, проще прописать на первом сервере, чтобы он переслал письмо сам дальше.

constin ★★★★
()
Ответ на: Спасибо за ответ от dirsex

не совсем релей. например, на первом сервере должно быть прописано, что ящик ass@example.com должен быть отфорварден на smtp:[ip_server_2] . Такие записи быть на всех серверах соответственно их ящикам и ящикам других серверов. Потому что если у вас стоит mx 10 , mx 20 , mx 30 , то это еще не значит, что все будут коннектиться именно на mx 10, всякое бывает.

constin ★★★★
()
Ответ на: комментарий от constin

Спасибо за ответ

Не подскажете где это прописывается, скрипт я написать смогу на все сервера, а вот в администрировании слаб очень ;(

Спасибо за ответ.

dirsex
() автор топика
Ответ на: Спасибо за ответ от dirsex

подскажу, но мне надо знать, где и как вы прописываете ящики. база данных или файл или что? конфиг бы постфикса

cat /etc/postfix/main.cf

constin ★★★★
()
Ответ на: комментарий от AS

это тоже верно, я обычно отвечаю по факту на вопрос. но явно можно сделать красивее.

constin ★★★★
()
Ответ на: комментарий от constin

Спасибо за ответ

Вот конфиг server1 (так сказать)

queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all inet_protocols = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases

debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.6.6/samples readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES myhostname = web.example.com mydomain = example.com myorigin = $myhostname mailbox_size_limit = 0 mailbox_command = /usr/bin/procmail local_recipient_maps = unix:passwd.byname $alias_maps virtual_alias_domains = /etc/mail/local-host-names virtual_alias_maps = hash:/etc/mail/virtusertable smtp_generic_maps = hash:/etc/mail/generic smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/sslsmtpd.key smtpd_tls_cert_file = /etc/postfix/sslsmtpd.crt smtpd_tls_received_header = yes smtpd_tls_loglevel = 1 smtpd_sender_restrictions = permit_sasl_authenticated, check_sender_access hash:/etc/mail/access smtpd_client_restrictions = permit_sasl_authenticated, check_client_access hash:/etc/mail/access smtpd_recipient_restrictions = permit_sasl_authenticated, check_sender_access hash:/etc/mail/access, check_client_access hash:/etc/mail/access, check_recipient_access hash:/etc/mail/access, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, reject_unverified_recipient smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = inet:127.0.0.1:8891

dirsex
() автор топика
Ответ на: комментарий от constin

Спасибо за ответ

Извиняюсь) вот:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases


debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
myhostname = web.example.com
mydomain = example.com
myorigin = $myhostname
mailbox_size_limit = 0
mailbox_command = /usr/bin/procmail
local_recipient_maps = unix:passwd.byname $alias_maps
virtual_alias_domains = /etc/mail/local-host-names
virtual_alias_maps = hash:/etc/mail/virtusertable
smtp_generic_maps = hash:/etc/mail/generic
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/sslsmtpd.key
smtpd_tls_cert_file = /etc/postfix/sslsmtpd.crt
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
smtpd_sender_restrictions = permit_sasl_authenticated, check_sender_access hash:/etc/mail/access
smtpd_client_restrictions = permit_sasl_authenticated, check_client_access hash:/etc/mail/access
smtpd_recipient_restrictions = permit_sasl_authenticated, check_sender_access hash:/etc/mail/access, check_client_access hash:/etc/mail/access, check_recipient_access hash:/etc/mail/access, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, reject_unverified_recipient
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891

dirsex
() автор топика
Ответ на: Спасибо за ответ от dirsex

Это конфиг курильщика, какая-нибудь cpanel?

реальные пользователи... я смогу ответить завтра или еще кто подскажет сейчас. у меня было 5 минут и нет времени, чтобы сейчас думать , про то, вставлять ли сюда transport_maps или тут нужно без нее. если никто не поможет, я все напишу завтра.

constin ★★★★
()
Ответ на: комментарий от constin

Спасибо за ответ

Да, на всех серверах разные конфы. на 2-х хостинг панели, на 3-м нормальный почтовый сервер. Это полотно из самого убогово).

Спасибо

dirsex
() автор топика
Ответ на: Спасибо за ответ от dirsex

ок, в общих чертах в main.cf

transport_maps = hash:/etc/postfix/transport

затем

touch /etc/postfix/transport

и там типа user1@ersgreg.com smtp:[ip_server2]:25

и потом

postmap /etc/postfix/transport

надеюсь, не ошибся из-за спешки

constin ★★★★
()
Ответ на: комментарий от constin

Спасибо за ответ

От души! Буду тестить, спасибо.

dirsex
() автор топика
Ответ на: комментарий от constin

Спасибо за ответ

Прописал я на server1 (это mx1) и server2 (это mx2) в transport

beer@example.com smtp:[x.x.x.x]:25

добавил в main.cf каждого в конец: transport_maps = hash:/etc/postfix/transport

сделал postmap /etc/postfix/transport на каждом

отправляю мессагу с гугла, получаю: 550 5.1.1 <beer@example.com>: Recipient address rejected: User unknown in virtual alias table

Этот ящик находится на server3 (это mx3), если зайти на него по ssh и написать echo Test | mailx -s Test beer@example.com то сообщение моментально приходит

dirsex
() автор топика
Ответ на: Спасибо за ответ от dirsex

Ящик beer@example.com должен быть прописан как ящик в том числе и на сервере 1. Логика у сервера 1 такая: да, у меня есть этот ящик и у него стоит перенапраравление на другой сервер.

constin ★★★★
()
Ответ на: комментарий от constin

Спасибо

Да, получилось. Спасибо. Директор попросил в одной организации, я такое никда не делал т.к. никогда такое не требовалось. Хозяин - барин. Вопрос решен. Спасибо.

dirsex
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.