0

我正在尝试使用 iptable 进行负载平衡。我设置的规则如下,其中我想将来自 ipaddress 10.xx4 的请求路由到服务器的内部 ips 10.xx1:1010 、 10.xx2:1010 和 10.xx3:1010

iptables -t nat -A PREROUTING -p udp -d 10.x.x.4 --dport 1010 -m state --state NEW -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 10.x.x.1:1010

iptables -t nat -A PREROUTING -p udp -d 10.x.x.4 --dport 1010 -m state --state NEW -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 10.x.x.2:1010

iptables -t nat -A PREROUTING -p udp -d 10.x.x.4 --dport 1010 -m state --state NEW -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 10.x.x.3:1010

当我执行时,前 4 个数据包被正确路由到每个 ipaddress。第 5 个数据包没有被路由并被丢弃。

我该如何调试这个问题。我应该增加给 --packet 的值吗?正确的规则应该是什么?

4

1 回答 1

2

您应该在每个命令行中将 --packet 从 0 增加到 n-1。其中 n 是作为 --every 的参数给出的数字。

于 2013-10-30T00:12:18.950 回答