Возможно ли завернуть разные протоколы (www, ftp, mail) развести по двум разным провайдерам?
Схема примерно ясна - маркируем (iptables-ами) пакеты на разные dest-порты
iptables -t mangle ... --set-mark 0x2
#все остальные - на второго провайдера
iptables -t mangle ... --dport 80 ... --set-mark 0x1
iptables -t mangle ... --dport 21 ... --set-mark 0x1
и далее по ip rule направляем их в разные таблицы (в которых прописаны
разные default gw)
ip rule add fwmark 1 table provider1
ip rule add fwmark 2 table provider2
Но. Как быть с протоколом FTP (и другими, которые открывают более одного соединения для своей работы) - первый коннект (на порт 21)
у него пометится как "1", но ftp-data уже пометится как "2" и в результате пакеты уйдут к разным провайдерам (т.е. ничего не заработает). Это для пассивного фтп конечно.
Есть варианты решения этой проблемы?
пассивный режим - ничего не поделаешь, и другие подобные протоколы, можешь в правилах их сделать "все остальные" если подходит или смотри содержимое пакетов (тоже метод не универсальный)