URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 64563
[ Назад ]

Исходное сообщение
"Настройка второго mx"

Отправлено pwd , 04-Мрт-06 17:29 
Всех приветствую! Есть задача - настроить второй mx для домена. Freebsd, sendmail.
Схема следующая: Работает первый mx. Вторая машина периодически проверяет, доступна ли первая.
Если первая упала, вторая начинает принимать почту для домена и складывать ее в очередь, чтобы позднее передать на первую.

Хочется осуществить следующее: при приеме почты на mx2 принимать ее только для существующих пользователей и передавать первому по не стандартному порту. (списки пользователей синхронизируются)

Я делаю так: virtusertable:

user1@domain.ru user1@domain.ru
user2@domain.ru user2@domain.ru
@domain.ru error:nouser No such user here

Также использую mailertable
domain.ru esmtp:mx1.domain.ru

где esmtp определен как использующий НЕ 25й порт.

relay-domains:
domain.ru

При такой конфигурации происходит следующее: при отправки письма несуществующему пользователю,
оно успешно принимается mx2 и уже mx1 посылает его подальше со словами, что такого пользователя нет.

Если же я делаю так:

virtusertable:

user1@domain.ru localuser
user2@domain.ru localuser
@domain.ru error:nouser No such user here

где также использую mailertable
domain.ru esmtp:mx1.domain.ru
где esmtp определен как использующий НЕ 25й порт.

local-host-names
domain.ru

При этом почта для несуществующих ящиков не принимается. Отказ идет на этапе rcpt to: (т.е. то, что мне нужно)
Но почта доставляется локально, а не посылается через esmtp:mx1.domain.ru

Как это побороть?


Содержание

Сообщения в этом обсуждении
"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 12:14 
>Всех приветствую! Есть задача - настроить второй mx для домена. Freebsd, sendmail.
>
>Схема следующая: Работает первый mx. Вторая машина периодически проверяет, доступна ли первая.
>
>Если первая упала, вторая начинает принимать почту для домена и складывать ее
>в очередь, чтобы позднее передать на первую.
>
>Хочется осуществить следующее: при приеме почты на mx2 принимать ее только для
>существующих пользователей и передавать первому по не стандартному порту. (списки пользователей
>синхронизируются)
>
>Я делаю так: virtusertable:
>
>user1@domain.ru user1@domain.ru
>user2@domain.ru user2@domain.ru
>@domain.ru error:nouser No such user here
>
>Также использую mailertable
>domain.ru esmtp:mx1.domain.ru
>
>где esmtp определен как использующий НЕ 25й порт.
>
>relay-domains:
>domain.ru
>
>При такой конфигурации происходит следующее: при отправки письма несуществующему пользователю,
>оно успешно принимается mx2 и уже mx1 посылает его подальше со словами,
>что такого пользователя нет.
>
>Если же я делаю так:
>
>virtusertable:
>
>user1@domain.ru localuser
>user2@domain.ru localuser
>@domain.ru error:nouser No such user here
>
>где также использую mailertable
>domain.ru esmtp:mx1.domain.ru
>где esmtp определен как использующий НЕ 25й порт.
>
>local-host-names
>domain.ru
>
>При этом почта для несуществующих ящиков не принимается. Отказ идет на этапе
>rcpt to: (т.е. то, что мне нужно)
>Но почта доставляется локально, а не посылается через esmtp:mx1.domain.ru
>
>Как это побороть?


вообще-то не надо никаких virtusertable, все делается через mailertable
и НИ В КОЕМ СЛУЧА НЕЛЬЗЯ добавлять релейный домен в local-host-names(sendmail.cw) на secondary-mx, так как почта будет
считаться ЛОКАЛЬНОЙ и будет попытка распихать ее по mail-box'ам вместо
хранения в очереди пока не оживет PRIMARY-MX.


"Настройка второго mx"
Отправлено pwd , 06-Мрт-06 12:25 

>вообще-то не надо никаких virtusertable, все делается через mailertable
>и НИ В КОЕМ СЛУЧА НЕЛЬЗЯ добавлять релейный домен в local-host-names(sendmail.cw) на
>secondary-mx, так как почта будет
>считаться ЛОКАЛЬНОЙ и будет попытка распихать ее по mail-box'ам вместо
>хранения в очереди пока не оживет PRIMARY-MX.


Спасибо :)


"Настройка второго mx"
Отправлено YuryD , 06-Мрт-06 13:10 

По моему, смысл 2,3,...-го MX имеет только для высоконагруженных почтовых систем и то в смысле балансировки нагрузки. Попытка применить его для небольшого почтового сервера не ведет ни к чему. Если пользователи на mx1 то они все равно не получат почту, пока mx1 не  поднимется. Какая разница, в какой почтовой очереди лежит сообщение - у отправителя или на mx2 ?
Да и спама поубавится. Настройка secondary mx для нескольких доменов и проверкой существования пользователей в случае еще и их собственных почтовиков не очень рентабельна :-)

"Настройка второго mx"
Отправлено pwd , 06-Мрт-06 13:31 
>
> По моему, смысл 2,3,...-го MX имеет только для высоконагруженных почтовых систем
>и то в смысле балансировки нагрузки. Попытка применить его для небольшого
>почтового сервера не ведет ни к чему. Если пользователи на mx1
>то они все равно не получат почту, пока mx1 не  
>поднимется. Какая разница, в какой почтовой очереди лежит сообщение - у
>отправителя или на mx2 ?
>Да и спама поубавится. Настройка secondary mx для нескольких доменов и проверкой
>существования пользователей в случае еще и их собственных почтовиков не очень
>рентабельна :-)

Это делается на тот случай, если первый mx будет недоступен более 5 дней.
(Мало ли что может случиться..)


"Настройка второго mx"
Отправлено YuryD , 06-Мрт-06 13:43 
>Это делается на тот случай, если первый mx будет недоступен более 5
>дней.
>(Мало ли что может случиться..)


Давайте подумаем, упал mx1 и почта легла на mx2. mx2 держит ее 5 дней, а mx1 так и не поднялся . Вопрос - где будет почта через 5 дней ?


"Настройка второго mx"
Отправлено pwd , 06-Мрт-06 13:29 
>
>>вообще-то не надо никаких virtusertable, все делается через mailertable
>>и НИ В КОЕМ СЛУЧА НЕЛЬЗЯ добавлять релейный домен в local-host-names(sendmail.cw) на
>>secondary-mx, так как почта будет
>>считаться ЛОКАЛЬНОЙ и будет попытка распихать ее по mail-box'ам вместо
>>хранения в очереди пока не оживет PRIMARY-MX.
>
>
>Спасибо :)


define(`MYSMTP_MAILER_ARGS',`TCP $h 26')


mailertable:

user1@domain.ru mysmtp:mx.domain.ru
user2@domain.ru mysmtp:mx.domain.ru
@domain.ru error:nouser No such user here

Все-таки принимает и для всех других пользователей домена :(
Как запретить это с помощью mailertable?



"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 13:41 
>>
>>>вообще-то не надо никаких virtusertable, все делается через mailertable
>>>и НИ В КОЕМ СЛУЧА НЕЛЬЗЯ добавлять релейный домен в local-host-names(sendmail.cw) на
>>>secondary-mx, так как почта будет
>>>считаться ЛОКАЛЬНОЙ и будет попытка распихать ее по mail-box'ам вместо
>>>хранения в очереди пока не оживет PRIMARY-MX.
>>
>>
>>Спасибо :)
>
>
>define(`MYSMTP_MAILER_ARGS',`TCP $h 26')
>
>
>mailertable:
>
>user1@domain.ru mysmtp:mx.domain.ru
>user2@domain.ru mysmtp:mx.domain.ru
>@domain.ru error:nouser No such user here
>
>Все-таки принимает и для всех других пользователей домена :(
>Как запретить это с помощью mailertable?

дык придумать как сделать проверку наличия пользователя


"Настройка второго mx"
Отправлено YuryD , 06-Мрт-06 13:53 
>
>дык придумать как сделать проверку наличия пользователя


Слегка построить кластер высоконадежный, затем слегка переписать sendmail на тему проверки юзера как-нибудь через ldap , только я боюсь что получится нечто типа mail.ru ,yahoo.com ну или gmail.com :-)

Дешевле добиться стабильной работы mx1, авария на 5 дней нереальна.


"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 14:31 
>>
>>дык придумать как сделать проверку наличия пользователя
>
>
> Слегка построить кластер высоконадежный, затем слегка переписать sendmail на тему проверки
>юзера как-нибудь через ldap , только я боюсь что получится нечто
>типа mail.ru ,yahoo.com ну или gmail.com :-)
>
> Дешевле добиться стабильной работы mx1, авария на 5 дней нереальна.

в жизни реально все, убеждаюсь в этом на фоне всяческих трагических
катастроф за последние несколько лет :(

Про фашизм тоже сперва думали НЕРЕАЛЬНО. Про Югославию до сих пор 4/5
мира верит про концлагеря и жестокости которые, якобы славянское
население устроило...
В ОИЯИ к примеру была конкретная ситуация с потерей канала аж на две
недели, чуть DNS не протух и почта все это время на ripe лежала, они
были один из MX'ов.


"Настройка второго mx"
Отправлено YuryD , 06-Мрт-06 15:00 
>в жизни реально все, убеждаюсь в этом на фоне всяческих трагических
>катастроф за последние несколько лет :(

Время восстановления магистралей РТкомм и Транстелеком 4 часа, иначе дают обход.

>недели, чуть DNS не протух и почта все это время на ripe
>лежала, они
>были один из MX'ов.

Круто, и ripe у нее на побегушках :-) Максимум что я могу добиться от верхних провайдеров - это весьма ограниченный обьем спула для моей почтовой очереди, 5 дней туда не войдут :-(

А вообще вопрос не в mx , а в том что sendmail мало пригоден пока для _поставленной задачи_


"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 15:10 
>>в жизни реально все, убеждаюсь в этом на фоне всяческих трагических
>>катастроф за последние несколько лет :(
>
> Время восстановления магистралей РТкомм и Транстелеком 4 часа, иначе дают обход.
>

в жизни всякое бывает...

>>недели, чуть DNS не протух и почта все это время на ripe
>>лежала, они
>>были один из MX'ов.
>
> Круто, и ripe у нее на побегушках :-) Максимум что я

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

>могу добиться от верхних провайдеров - это весьма ограниченный обьем спула
>для моей почтовой очереди, 5 дней туда не войдут :-(

это вопрос договоренности

> А вообще вопрос не в mx , а в том что
>sendmail мало пригоден пока для _поставленной задачи_

на вкус и цвет...


"Настройка второго mx"
Отправлено YuryD , 06-Мрт-06 15:29 
>> А вообще вопрос не в mx , а в том что
>>sendmail мало пригоден пока для _поставленной задачи_
>
>на вкус и цвет...

Вот весьма ограниченный вариант реализации данной схемы -
у нашины 2 интерфейса в разных IP-сетях, подключенных разными каналами,
оба MX смотрят туда. 2 сендмайла слушающих на разных IP. Ну и кому лучше будет при падении машины ? Хотя дешево, удобно и практично.


"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 15:50 
>>> А вообще вопрос не в mx , а в том что
>>>sendmail мало пригоден пока для _поставленной задачи_
>>
>>на вкус и цвет...
>
> Вот весьма ограниченный вариант реализации данной схемы -
> у нашины 2 интерфейса в разных IP-сетях, подключенных разными каналами,
> оба MX смотрят туда. 2 сендмайла слушающих на разных IP. Ну
>и кому лучше будет при падении машины ? Хотя дешево, удобно
>и практично.

незатратно - да, но неудобно и непрактично два почтовика на одной машине,
еще и опасно



"Настройка второго mx"
Отправлено pwd , 06-Мрт-06 15:19 
>дык придумать как сделать проверку наличия пользователя

Так это нереально чтоли средствами самого sendmail? Я думал virtusertable прокатит..


"Настройка второго mx"
Отправлено lavr , 06-Мрт-06 15:27 
>>дык придумать как сделать проверку наличия пользователя
>
>Так это нереально чтоли средствами самого sendmail? Я думал virtusertable прокатит..

а он и прокатит, только если sendmail без ldap или sql, то тебе нужно
ПРИДУМЫВАТЬ как проверять на существование пользователей на secondary-mx.
Иначе каждого несуществующего пользователя каждый раз будешь вносить
в virtusertable


"Настройка второго mx"
Отправлено pwd , 06-Мрт-06 15:30 

>а он и прокатит, только если sendmail без ldap или sql, то
>тебе нужно
>ПРИДУМЫВАТЬ как проверять на существование пользователей на secondary-mx.
> Иначе каждого несуществующего пользователя каждый раз будешь вносить
>в virtusertable

так у меня есть список СУЩЕСТВУЮЩИХ пользователей мх1
всех остальных запретить и все! Только как?

virtusertable
@domain.ru error:nouser no such user here

у меня не работал в связке с mailertable


"Настройка второго mx"
Отправлено K_Sasha , 06-Мрт-06 18:06 
ок прикинем с sendmail-ом

нужно хранить копию пользователей на второй машине, потому что при падение первой определить есть ли такой пользователь или нет не получится
нужно описать какой то механизм который  будет обслуживать очередь при падение первой машины к примеру 2 режима работы:
1) когда mx1 жив все то письмам что не можем доставить делать отлуп
2) сидеть и ждать и нечего не делать с очередью пока mx1 мертв

по мне проще  сделать копию машины mx1 и пускать только тогда когда mx1 умрет, а как только mx1 оживет убивать mx2 и делать синхронизацию директорий с полученной почтой (MailDir очень в этом поможет)

"кластера"  -- это дорого, а тут вроде как 1 скриптом который на ведущую машину просто делает move с ведомой все обоходится....

ЗЫ: сам такого не дела, так что это токма идея.