iptables умный loadblancer с geoip
Я пытаюсь настроить балансировщик нагрузки через 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 но не нашел ответа на этот вопрос... любая помощь или идеи будут оценены!