Вопрос или проблема
Postfix пересылает несколько доменов на фиксированный IP-адрес или его резервный адрес.
1.2.3.4 и 11.12.13.14 (резервный)
Эти два IP-адреса — это место, где должно происходить пересылка.
В настоящее время, transport_map
exemple1.com relay:[1.2.3.4]:587
exemple2.com relay:[1.2.3.4]:587
Есть ли способ, в случае если [1.2.3.4] истечет, автоматически использовать резервный, например
exemple1.com relay:[1.2.3.4]:587
exemple2.com relay:[1.2.3.4]:587
exemple1.com relay:[11.12.13.14]:587
exemple2.com relay:[11.12.13.14]:587
Это будет работать?
(Существует этот вопрос, который немного отличается. Добавление нескольких IP-адресов в /etc/hosts (или DNS, если это было бы возможно) использовало бы любой IP. В моем случае резервный должен использоваться только если основной истекает)
Выдержка из примечаний к версии Postfix 3.5
[Функция 20200111] клиент Postfix SMTP и LMTP поддерживает список
конечных точек nexthop, разделенных запятыми или пробелами. Эти
конечные точки будут проверяться в указанном порядке.
Форма списка может быть указана в relayhost, transport_maps,
default_transport и sender_dependent_default_transport_maps.
Примеры:
/etc/postfix/main.cf:
relayhost = foo.example, bar.example
default_transport = smtp:foo.example, bar.example.
ПРИМЕЧАНИЕ: это функция клиента SMTP и LMTP. Она не работает для
других агентов доставки Postfix.
Если у вас нет Postfix 3.5, вы можете указать конечный пункт как доменное имя без скобок – postfix выполнит MX-запросы для этого доменного имени и использует MX для отправки электронной почты.
Эта функция была добавлена в Postfix 3.5.
Синтаксис для транспорта следующий-
example.com relay:[10.0.0.1],[10.0.0.2]
Предпочтение пересылки равно определенному порядку.
Ответ или решение
Для настройки Postfix с учетом автоматического переключения на резервный адрес при сбое основного, мы можем использовать новую функциональность, введенную в версии Postfix 3.5. Эта версия позволяет задавать список целевых адресов, которые будут проверяться в указанном порядке. Если основное соединение не удается установить, Postfix автоматически попытается соединиться с последующим адресом в списке.
Шаги по настройке транспортной карты с резервными адресами
-
Проверка версии Postfix:
Убедитесь, что у вас установлена версия Postfix 3.5 или новее. Проверить версию можно с помощью команды:postconf mail_version
-
Настройка transport_maps:
Для определения маршрутизации электронных писем добавьте в файлtransport_maps
следующие записи, где в качестве адресов вы укажете основной и резервный IP-адреса:exemple1.com relay:[1.2.3.4],[11.12.13.14] exemple2.com relay:[1.2.3.4],[11.12.13.14]
Такая запись указывает Postfix, что он должен сначала пытаться отправить письма на IP 1.2.3.4, и только в случае неудачи переключиться на IP 11.12.13.14.
-
Обновление конфигурации:
После изменения файла транспортной карты, не забудьте обновить базу данных, чтобы Postfix мог использовать новые настройки. Выполните следующие команды:postmap /etc/postfix/transport systemctl restart postfix
-
Дополнительные настройки:
Убедитесь, что у вас правильно настроены другие файлы конфигурации, такие какmain.cf
, чтобы использовать созданную вами transport map. Добавьте или убедитесь, что следующая строка присутствует:transport_maps = hash:/etc/postfix/transport
-
Тестирование настройки:
Проверьте корректность выполнения настроек и работоспособность почтовых отправлений. Можно отправить тестовое сообщение и посмотреть, как Postfix обрабатывает его, в случае если основной адрес недоступен.
Резюме
Используя указанную выше конфигурацию, вы сможете эффективно настроить Postfix для автоматического переключения на резервный адрес, при этом соблюдая порядок приоритетов. Таким образом, ваша система будет более устойчивой к сбоям, что является критически важным для поддержания надежной почтовой системы. Оптимизированный подход гарантирует, что письма будут отправляться без задержек, даже если основной маршрут будет недоступен.