我正在尝试使用iptable来实现负载平衡。
我的规则如下:
iptables -t nat -A PREROUTING -p tcp -dport 5000 -m统计量模式nth每6包0 -j重定向到端口5890
iptables -t nat -A PREROUTING -p tcp -dport 5000 -m统计量模式nth每5包0 -j重定向到端口5891
。
。
。
iptables -t nat -A PREROUTING -p tcp -dport 5000 -m统计量模式nth每1-包0 -j重定向到端口5896
我是否可以使用多端口选项将六个规则合并为一个规则?
发布于 2018-01-19 07:39:26
多端口匹配用作选择器。目标重定向没有多端口选项。如果尝试在重定向的--to-ports选项中放置端口范围,将只选择该范围中的第一个端口。如果您(设法)使用-j DNAT --to-destination规则而不是重定向,也是一样的。就不会有循环使用了。
您目前在iptables中使用的方法无疑是可行的。我看到的唯一小的优化是,在最后一个规则上不需要-m statistic --mode nth --every 1 --packet 0,因为它总是匹配的,而且--packet默认为0,所以可以在任何地方省略。
注意:另一种可能的方法是使用ipvs (也称为lvs),但如果这种情况完全可能的话,这肯定是过分的,特别是对于本地重定向。
https://serverfault.com/questions/892604
复制相似问题