Назад | Перейти на главную страницу

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