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