>>>>> On Thu, 13 Mar 2003 14:40:08 +0200 >>>>> "S" == Sergey <[EMAIL PROTECTED]> wrote: S> S> Привет всем ! S> Как с помощью iptables сделать такую переадресацию: S> a.b.c.d:XXXX -> e.f.g.h:YYYY S> Все мои попытки закончились тем, что позволяет или изменить порт, или S> же получателя. Вместе - никак. Подскажите плс, в какую сторону копать.
У нас роутер. Получает пакет (TCP?) на a.b.c.d:XXXX. Хотим его завернуть на e.f.g.h:YYYY. Это делается DNAT'ом: iptables -t nat -A PREROUTING -p tcp -d a.b.c.d --destination-port XXXX \ -j DNAT --to-destination e.f.g.h:YYYY Но это не все. Если оставить так, то ответы (в частности, <SYN,ACK> на инициирующий SYN) пойдут на source адрес. Но пойдут они с source address'ом e.f.g.h, а ждут-то с a.b.c.d. Решить это можно так: в POSTROUTING поменяем source address пакета, который изначально был послан на a.b.c.d на адрес router'а. iptables -t nat -A POSTROUTING -p tcp -d e.f.g.h --destination-port YYYY\ -j SNAT --to-source <local> С UDP последнее правило может быть излишним. А может и не быть. -- Alexander Kotelnikov Saint-Petersburg, Russia