Postfix:使用发送方相关传输图实现冗余和负载平衡

Postfix:使用发送方相关传输图实现冗余和负载平衡

我有一个 Postfix 服务器,并且我正尝试在两个不同的连接/ISP 中使用两个不同的 IP 来发送电子邮件。

该地址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 将随机选择两种传输方式之一发送电子邮件。它非常适合负载平衡- 使用具有正确主机名和所有内容的两个地址发送电子邮件。

现在假设我删除eth1Postfix 仍然能够通过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。似乎如果我重新启动服务器,它会执行此操作,但不会自行执行。

为什么除非重新启动,否则它总是使用相同的传输重试?这种行为可以改变吗?还有其他方法可以实现这种冗余/负载平衡吗?

相关内容