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

Балансировка циклического перебора SMTP smarthost

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

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

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

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

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

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

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