使用 IPTables 将 SMTP 连接路由到不同的 IP 集

使用 IPTables 将 SMTP 连接路由到不同的 IP 集

我正在尝试为 SMTP 设置两个不同的 IP,每个 IP 都会路由到两组不同的 IP,两组之间没有共享的 IP。我正在尝试这样做,但它会混合两组 IP,因此与 xxx.xxx.xxx.100 和 xxx.xxx.xxx.101 的连接只会循环通过所有六个 .20x 目标 IP。

iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.100 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.201
iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.100 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.202
iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.100 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.203

iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.101 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.204
iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.101 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.205
iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.101 --dport 25 -m statistic --mode nth --every 3 --packet 0 -j SNAT --to xxx.xxx.xxx.206

如果我仅使用一个 IP 连接到我的服务器,那么这可以正常工作,但是如何使用两个 IP 并保持它们的重定向分开?

答案1

首先,您需要修改分发规则以符合以下内容。看看这个邮政

--mode nth --every 3 --packet 0
--mode nth --every 2 --packet 0
--mode nth --every 1 --packet 0

如上所述,计数器不是全局的。因此,您需要更改规则以匹配剩余的数据包。

其次,您需要确保在第二种情况下您确实使用了不同的 IP。您可以使用iptables -t nat -L -n -v点击计数器来确认。

相关内容