У нас есть 3 SMTP-сервера на 3 отдельных публичных статических ip. У нас есть вторичное резервное соединение на одном статическом ip. Я хотел бы разместить все 3 SMTP-сервера за маршрутизатором и отключить общедоступные IP-адреса, использовать postfix для приема почты как при основном подключении к Интернету, так и при отказе, а затем перенаправить всю электронную почту на теперь внутренние SMTP-серверы. Это 3 разных домена электронной почты. Как мне настроить Postfix cnfg для этого? Я погуглил и не нашел подходящего решения. У меня есть существующая система Ubuntu 16.04, которая в настоящее время действует как шлюз SSH, и я бы хотел использовать эту же машину для smtp-gateway / smarthost.
Маршрутизация входящей почты через основное и резервное интернет-соединение так же просто, как установка правильных записей приоритета MX в DNS:
example.com. 86400 IN MX 10 mx1.example.com.
example.com. 86400 IN MX 20 mx2.example.com.
mx1.example.com. 86400 IN A <ip-on-primary-internet-connection>
mx1.example.com. 86400 IN A <ip-on-secondary-internet-connection>
То же самое и для других ваших доменов:
example.net. 86400 IN MX 10 mx1.example.com.
example.net. 86400 IN MX 20 mx2.example.com.
В Postfix вам нужна конфигурация, которая будет принимать входящую почту для example.com и example.net для ретрансляции, а не для локальной доставки, и которая будет направлять ее на правильный внутренний сервер. Примерно следующее:
добавить example.com и example.net в relay_domains
параметр:
[...]
relay_domains = $mydestination, example.com, example.net
[...]
Настройте транспортную карту, также в /etc/postfix/main.cf
:
[...]
transport_maps = hash:/etc/postfix/transport
[...]
И карта /etc/postfix/transport
будет направлять почту для каждого домена на определенный SMTP-сервер:
example.com smtp:[internalhost1.example.com]
example.net smtp:[internalhost2.example.com]