我有多个发送电子邮件的 IP。情况如下:
IP1、IP2、IP3、IP4 IP1 -> 发送邮件1、发送邮件2、发送邮件3 IP2 -> sendmail4、sendmail5、sendmail6、sendmail7、... IP3 -> sendmail8,sendmail9,sendmail10,... IP4…
我想在发送一封邮件后切换到下一个 IP:
IP1->sendmail1 IP2 -> sendmail2 IP3 -> sendmail3 ...
我尝试编写一个脚本,该脚本将继续 grep 日志文件的最后一行并搜索“sent”,如果找到,则终止具有端口 25 的进程并强制其通过下一个 IP,但这需要重新启动 postfix。 有没有方法可以终止连接足够长的时间以切换到下一个 IP?
答案1
让 iptables 处理 nat 平衡:
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 2 --packet 0 -j SNAT --to x.x.x.1
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 2 --packet 1 -j SNAT --to x.x.x.2
这个例子是在 2 个 IP 之间进行平衡,您可以轻松扩展它以获得更多。
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 0 -j SNAT --to x.x.x.1
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 1 -j SNAT --to x.x.x.2
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 2 -j SNAT --to x.x.x.3
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 3 -j SNAT --to x.x.x.4