SMTP smarthost круговая балансировка

Наш поставщик SMTP требует равномерного распределения электронной почты между четырьмя различными хостами. Я понимаю, что стандартным способом распределения нагрузки такого типа является использование функции циклического перебора DNS, но проблема заключается в том, что почтовые серверы провайдера должны быть адресованы с использованием символических имен, а не IP-адресов. Каков наилучший способ справиться с этим? Будет ли работать настройка нескольких записей CNAME или я должен использовать какие-либо внутренние возможности балансировки Sendmail/Postfix/Exim/etc (о которых я сейчас не знаю)?

3 ответа

Решение

Твой провайдер идиот. Они должны дать вам одно имя сервера, чтобы подключить его к MTA и выполнить собственную балансировку нагрузки. Я был бы склонен просто бросить одно имя в мой relayhost директива и покончим с этим. Вы можете определить локальное имя с помощью записей A всех компьютеров вашего провайдера (взятых из разрешения имен, которые они вам дали), но нет смысла делать это, потому что каждый раз, когда ваш провайдер решает добавить больше серверов к их кластер вы должны внести изменения в конфигурации.

+1 за "Ваш провайдер идиот".

Тем не менее, вы можете решить эту проблему, настроив локальный балансировщик нагрузки (например, HAProxy), который использует smarthosts вашего провайдера в качестве бэкэнда. Затем ваши серверы будут направлять свою почту на этот балансировщик нагрузки. Он не будет строго балансировать по электронной почте, но по TCP-соединениям. Но я думаю, что это должно быть достаточно хорошо, так как довольно трудно решить, сколько отдельных писем будет сгенерировано в конце (из-за нескольких получателей, списков рассылки, псевдонимов,...)

Также, когда серверы вашего провайдера меняются, вам просто нужно адаптировать конфигурацию loadbalancer и не нужно прикасаться к каким-либо другим серверам.

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

Что ж, BIND 9.x не поддерживает несколько записей CNAME, поскольку это нарушает RFC, какой сюрприз! Но я нашел возможное решение здесь: http://marc.info/?l=postfix-users&m=118849453519781&w=2 Я собираюсь реализовать это, предоставлю здесь отчет только для записи.

Другие вопросы по тегам