Я ищу в Linux такую же функциональность, как Mikrotik per-connection-classifier
. Мой случай - использовать динамический CGNAT с сохранением общедоступного IP-адреса для каждого пользователя (а не случайного общедоступного IP-адреса для каждого соединения).
Спасибо, Блажей
Вы можете сделать это, комбинируя iptables с ipset, но я считаю, что вы захотите использовать для этого nftables. Это можно сделать с помощью jhash, vmap и update. Общий пример создания cgnat с nftables можно увидеть по адресу: https://github.com/diorgesl/php-cgnat
Посмотрел бы на: https://wiki.nftables.org/wiki-nftables/index.php/Load_balancing
Я почти уверен, что это: https://habr.com/ru/post/501234/
это то, что вы искали.
Я также написал пример использования jhash с балансировкой нагрузки на основе 4/5 кортежей. Вы можете просто изменить jhash, чтобы вычислить хеш с помощью srcip, а затем добавить его в набор или таблицу потоков.