Добрый день. В общем нужно мне автоматизировать процесс генерации правил iptables для маркировки пакетов, маркировать пакеты нужно так чтобы трафик уходил равномерно через все имеющиеся интерфейсы. Заворачивать пакет в нужную таблицу маршрутизации будут правила вида:
ip rule add fwmark 1/1 table 1
ip rule add fwmark 2/2 table 2
ip rule add fwmark 3/3 table 3
В каждой таблице есть интерфейс и маршрут по умолчанию через него. Маркировку пакетов предполагается делать следующим образом:
iptables -A PREROUTING -t nat -i eth0 -m statistic --mode random --probability 0.25 -j MARK --set-mark 1
iptables -A PREROUTING -t nat -i eth0 -m statistic --mode random --probability 0.25 -j MARK --set-mark 2
iptables -A PREROUTING -t nat -i eth0 -m statistic --mode random --probability 0.25 -j MARK --set-mark 3
И вот тут важно рассчитать коэффициент который во всех трех правилах сейчас 0.25, это не правильно, дожно быть так:
Взято отсюда https://www.linux.org.ru/forum/admin/1937519?ysclid=laowarcsp8771799131
Если я понял правильно, то --probability 0.25 это вероятность? Тогда конечно здесь ошибка, тк вероятность попадания пакета только в 1-ю точку будет 0.25
во вторую точку будет уже 0.25*(1-0.25) = 0.1875
а в третью 0.25*(1-0.25 -0.1875)) = 0.140625
соответственно все остальное попадет в четвертую точку 1 - 0.25 - 0.185 - 0.140625 = 0,424375
Поскольку с математикой у меня чуть похуже чем с русским языком, без посторонней помощи придумывать методику рассчёта этих коэффициентов в зависимости от нужного количества правил, которое зависит от количества имеющихся интерфейсов, я буду долго.. Помогите пожалуйста.