Добрый день! Есть VPN сервер, и требуется всех торрент качеров отправлять на другой гейт. Делать я буду это следующим образом: 1)Добавляем 2 адреса гейтов в таблицу
ip route add default via x.x.x.x table 101
3)Маркирую траффик торрентов
iptables -t mangle -A PREROUTING -m string --algo bm --string "peer_id=" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string ".torrent" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string "announce.php?passkey=" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string "torrent" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string "announce" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string "info_hash" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --algo bm --string "tracker" -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --string "get_peers" --algo bm -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --string "announce_peer" --algo bm -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m string --string "find_node" --algo bm -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -m ndpi --bittorrent -j MARK --set-mark 101
5)Роутить по метке на адрес выходного тунеля.
ip rule add fwmark 101 table 101
Помогите пожалуйста разобраться, как можно промаркировать все соединения c адресса, который начал качать торрент?
Была идея вместо маркировки соединений кидать их в LOG
-j LOG --log-prefix "Iptables: torrent detected"
cat /var/log/iptables.log | awk '{print $11}' | awk -F '=' '{print $2}'
Думаю можно как-то грамотно сделать --restore-mark, но не могу никак сам додуматься