Presmerovani paketu v PREROUTING chainu

Dalibor Straka dast na panelnet.cz
Pondělí Květen 10 19:15:21 CEST 2004


On Sun, May 09, 2004 at 10:05:49PM +0200, Dalibor Straka wrote:
> Dobry den,
> 
> kdyz napisu toto pravidlo
> iptables -t nat -A PREROUTING -s 62.24.173.31 -p tcp --dport 12345 -j
> DNAT --to-destination 177.132.201.21
> 
> perfektne funguje. V tcpdumpu -n tcp port 12345 vidim jak paket prosel
> na cilovy stroj a na cilovem stroji opet tcpdump zahlasi paket na 12345.
> 21:55:35.565137 62.24.173.31.46971 > 177.132.201.26.12345: S
> 21:55:36.566288 62.24.173.31.46971 > 177.132.201.21.12345: S
> 
> Kdyz ve stejnem pravidle zmenim "-p tcp" na "-p udp" tak mi to
> nefunguje. Vypis iptables -L -v -t nat (zkraceno). Evidentne neprojde
> ani jeden paket.
> 
> Chain PREROUTING (policy ACCEPT 564 packets, 84591 bytes)
>  pkts bytes target     prot opt in     out     source
>     0     0 DNAT       udp  --  any    any     pocitac.domena.cz
>     2   120 DNAT       tcp  --  any    any     pocitac.domena.cz
> 
> Kernel mam 2.4.25, config lezi na www.panelnet.cz/linux/config25.
> System mam debian stable se vsemi update.
> 
> Diky,
> -- Dalibor Straka
> 

Po vycisteni vsech pravidel a odebrani modulu a opetovneho zapsani uplne
stejnych prikazu vse funguje. V iptables jsou zajimave race conditions.
Ale divim se, ze se nikdo ani nezeptal, jestli jsem zapnul forwardovani.
Dale je opravdu divne, ze i ted, kdyz pakety chodi spravne, ukazuje PRER
chain 2 pakety (pkts 2, bytes 81). Jinak FORWARD je pocita uz spravne.
Zrejme si kernel udela nejake nakesovane pravidlo, kterym to leze.

-- Dalibor Straka


Další informace o konferenci Linux