У меня есть два подключения к Интернет-провайдеру (Link1 и Link2), я хочу направить весь трафик загрузок, размер которого превышает 1 МБ, через Link2.
Я создал таблицу маршрутизации Link2 и маршрутизирую все пакеты, которые имеют отметку 2.
ip route добавить по умолчанию через 192.168.1.253 table link2 ip rule add fwmark 2 table link2
Он работает, когда я просто использую его, например, с любыми http-пакетами
iptables -t mangle -A PREROUTING -p tcp -s 192.168.1.81 --dport 80 -j MARK --set-mark 2 (работает)
Теперь, когда я пытаюсь отметить, если размер загрузки превышает 1 МБ, он работает не так, как ожидалось.
iptables -t mangle -A PREROUTING -p tcp -s 192.168.1.81 --dport 80 -m connbytes --connbytes 1048576: --connbytes-dir both --connbytes-mode bytes -j MARK --set-mark 2 (not работает)
Может ли кто-нибудь сказать мне, что мне здесь не хватает.
Вы можете сделать это только в том случае, если ваш маршрутизатор является многосетевым и вы можете делать это только с исходящим трафиком. Это означает, что это возможно лишь в некоторых случаях.
Во всех остальных случаях вы нарушите соединение. Или для входящего трафика вы не можете контролировать, где он до вас доходит.
Связанный: Как определить загрузочный трафик с помощью iptables
Короче говоря, то, что вы хотите, невозможно.