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

Балансировщик нагрузки Postfix SMTP

Я хочу сбалансировать загрузку исходящих писем между 3 шлюзами post-fix для отправки писем, единственная причина - использовать несколько разных исходных IP-адресов для увеличения пропускной способности и доставки в почтовый ящик. Каждый шлюз должен получать примерно одинаковое количество исходящих сообщений.

Как это возможно, подскажите пожалуйста.

                    +----------> smtp A ---------> Internet
                    |                                  
clients --------> smtp lb -----> smtp B ---------> Internet
                    |                                  
                    +----------> smtp C ---------> Internet

Интересно, что ты делаешь?

Тем не менее, типичный способ сделать это - использовать циклический DNS для вашего SMTP-сервера (определить несколько записей A для некоторого DNS-имени и указать это как исходящий SMTP-сервер для всех исходящих писем, например, для почтового клиента).

Вы также можете сделать балансировщик нагрузки из другого постфиксного сервера, потому что SMTP-серверы обычно отправляют друг другу электронные письма для пересылки. Вы можете сделать это, просто настроив для него несколько серверов пересылки. Если ваши электронные письма поступают из единого источника, который кэширует ответы DNS, это будет более вероятным решением.

То, как вы это делаете, похоже на взлом: вы настраиваете локальное DNS-имя, которое вы настраиваете как relayhost в main.cf. Затем для этого DNS-имени настройте несколько записей MX с одинаковым приоритетом:

smtp-out IN MX 10 smtp-a.example.com.
smtp-out IN MX 10 smtp-b.example.com.
smtp-a.example.com. IN A 0.0.0.0
smtp-b.example.com. IN A 0.0.0.0