我正在寻找 Linux 中与 Mikrotik 等效的功能per-connection-classifier
。我的情况是使用动态 CGNAT,为每个用户保留公共 IP(而不是为每个连接保留随机公共 IP)。
谢谢,Blažej
答案1
您可以将 iptables 与 ipset 结合起来,但我相信您会希望使用 nftables 来实现这一点。使用 jhash 和 vmap 以及 update 就可以做到这一点。使用 nftables 创建 cgnat 的一般示例如下: 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 计算哈希值,然后将其添加到集合或流表中。