我尝试使用它iptables
来实现负载平衡。我设置的规则如下,其中我想将发送到我的服务器的 IP 地址的请求路由10.x.x.4
到服务器的内部 IP 10.x.x.1:1010
,10.x.x.2:1010
并且10.x.x.3: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 个数据包被正确地路由到每个 IP 地址。第 5 个数据包没有被路由并且被丢弃。
我该如何调试这个问题?我应该增加传递给的值吗--packet
?正确的规则应该是什么?
答案1
我从来没有尝试过,但是从文档中我确信你应该增加--packet
。