У меня есть сервер Postfix, и я пытаюсь использовать два разных IP-адреса в двух разных подключениях / ISP для отправки электронной почты.
Адрес 89.xxx.xxx.2
системный шлюз по умолчанию в eth0
И 188.xxx.xxx.2
это адрес в eth1
со специальной таблицей маршрутизации и настраиваемой ip
правила (ip rule add from 188.xxx.xxx.2 table SECONDARY
среди прочего), чтобы сделать возможной маршрутизацию. Оба могут подключаться ко всему Интернету, ping
, wget
и postfix
могут использовать оба соединения для исходящего трафика.
В master.cf
Я определил следующее:
out-one unix - - n - - smtp
-o smtp_bind_address=89.xxx.xxx.2
-o inet_interfaces=89.xxx.xxx.2
-o myhostname=outone.example.org
-o smtp_helo_name=outone.example.org
-o syslog_name=smtp-out-one
out-two unix - - n - - smtp
-o smtp_bind_address=188.xxx.xxx.2
-o inet_interfaces=188.xxx.xxx.2
-o myhostname=outtwo.example.org
-o smtp_helo_name=outtwo.example.org
-o syslog_name=smtp-out-two
Сейчас в main.cf
Я добавил:
sender_dependent_default_transport_maps = randmap:{out-one,out-two}
smtp_connection_cache_on_demand=no
Когда отправлено электронное письмо Postfix случайным образом выберет один из двух транспортов и отправит электронное письмо. Он отлично работает для балансировки нагрузки - Электронные письма отправляются с использованием обоих адресов с правильными именами хостов и всем остальным.
Теперь скажем, я снимаю eth1
. Postfix по-прежнему сможет отправлять «половину» писем через eth0
/89.xxx.xxx.2
а вот другая «половина» будет стоять в очереди:
postfix/smtp: fatal: parameter inet_interfaces: no local interface found for 188.xxx.xxx.2
Есть ли способ для Postfix повторить попытку с другой транспортной картой, если ранее выбранная не работает??
Если out-two
не удается, снова вызовите randmap> в конечном итоге отправьте электронное письмо, используя out-one
. Похоже, если я перезапущу сервер, он это сделает, но не сам.
Почему он всегда повторяет попытки с тем же транспортом, если не перезапускается? Можно ли изменить это поведение? Есть ли другой способ выполнить такое резервирование / балансировку нагрузки?