Есть сервер, подключенный к локалке провайдера. У сервера есть внутренний ип и "внешний ип", который, как часто бывает с провайдерами подключающих по LAN, реализован как двухсторонний NAT'инг на шлюзе провайдера. Этот шлюз только преобразовывает адреса, но не меняет данные в потоках, что важно для корректного NAT'инга таких протоколов как FTP. И как следствие активное фтп соединение не работает.
Задача: сделать так, чтобы работало активное FTP подключение и по возможности другие протоколы требующие изменения данных в самом соединении.
Проблема: пакеты исходящие от сервера должны иметь локальный исходящий адрес, иначе роутер провайдера их не пропустит.
Т.е. надо сделать так, чтобы conntrack хелперы меняли содержимое потока данных как-будто надо произвести SNAT, но собственно NAT не производить (оно будет осуществлено шлюзом провайдера).
Как такое сделать?
Пока единственный вариант, который я вижу, это написание собственного таргета для iptables. Но честно говоря не хочется этого делать.