Bug 4045 - REDIRECT target in OUTPUT chain not worked
: REDIRECT target in OUTPUT chain not worked
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/kernel-image-std-up)
: unstable
: all Linux
: P2 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2004-04-27 20:16 by
Modified: 2005-08-31 03:06 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-04-27 20:16:21
После обновления с 2.4.22-std-smp-alt15 до 2.4.25-std-up-alt6 перестал работать
таржет REDIRECT iptables в цепочке OUTPUT таблицы nat, при этом в цепочке
PREROUTING он продолжает нормально работать. iptables при этом использовался в
обоих случаях 1.2.9-alt4.

Применявшиеся правила:
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -d $local_ip -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 7999
-A OUTPUT -d $local_ip -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 7999

Попытка изваять воркэраунд на DNAT тоже привела к провалу в этой-же цепочке как
на этом ядре, так и на шлаке, :( в результате  пришлось откатиться на старое
ядро. Необходимость работы в OUTPUT объясняется тем, что нужно перебрасывать
порты для локального трафика, например с реального адреса на фэйковый в
пределах
одной машины.
------- Comment #1 From 2004-06-06 19:36:59 -------
Исправлено в kernel-image-std-{up,smp}-alt2.

Проблема была в отсутствии в конфигурации ядра поддержки NAT для локальных
соединений (CONFIG_IP_NF_NAT_LOCAL=y). На самом деле в 2.4.22 поддержка
CONFIG_IP_NF_NAT_LOCAL тоже не была включена, но REDIRECT делал вид, что
работает (хотя это могло приводить к странным проблемам). В последующих версиях
ядра код netfilter в этом месте исправили, и теперь без CONFIG_IP_NF_NAT_LOCAL
NAT в OUTPUT не работает.