我正在尝试通过 iptables 设置负载均衡器,它将新连接转发到最近的(地理)节点。我见过按国家/地区阻止流量的示例,并且能够设置传统的负载均衡器,将连接用户分配到几个节点之间,如下所示:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport PORTNUM -m state --state NEW -m statistic --mode nth --every 4 --packet 1 -j DNAT --to-destination x.x.x.x:PORTNUM
我想要做的是对用户的位置进行地理编码,并选择距离他们最近的服务器以减少延迟。正确的做法是什么?
我知道,我总是可以编写小代理来连接到正确的服务器并充当真正的代理,但我真的希望在 iptables 级别实现这一点。
如果这有任何意义的话,我的目标是 Ubuntu 16.04
我确实看到了http://ipset.netfilter.org/iptables-extensions.man.html但没有找到这个问题的答案...任何帮助或想法都将不胜感激!