Есть шлюз на linux (iptables + iproute2) и два канала от двух разных провайдеров.Есть FTP сервер за шлюзом. Надо пробрасывать на него соединения снаружи.
Всё без проблем работает, если внешнее соединение приходит на ip адрес, который соответсвует default gateway.
Без проблема работает пассивный режим фтп, тут ip_nat_ftp и ip_conntrack_ftp справляются на ура.
Проблемы возникают, при использовании активного режима, если соединение приходит на второй внешний ip. Тогда соединение устанавливается, можно без проблем авторизоватся, но при любой попытке передачи данных наступает затык, т.к. фтп-сервер для данных устанавливает соединение и оно через нат оказывается на ip адресе маршрута по-умолчанию.
Каким образом можно отлавливать эти соединения (ftp_server:20 -> client:random_port) и роутить их через тот канал, через который соединился клиент?