* multiple exclusive DNAT does not work [not found] <S1751268AbYLZSRi/20081226181738Z+155@vger.kernel.org> @ 2008-12-26 18:45 ` Aleksei Bebinov 2008-12-26 18:57 ` Leonardo Rodrigues Magalhães 0 siblings, 1 reply; 3+ messages in thread From: Aleksei Bebinov @ 2008-12-26 18:45 UTC (permalink / raw) To: netfilter Hi all, tinkering with OpenWRT router ( Kamikaze 7.09) and need so finctionality : 1. all the web traffic thet flow throw router and masquerading have to be forwarded to external proxy 2.but i have 22 subnets of my local ISPs that have to flow directly without proxyng. I do so : --------------- cat /etc/config/kg-nets | while read LINE do #iptables -t nat -A PREROUTING -i br-lan -d ! $LINE -p tcp -m multiport --dports 80 -j DNAT --to-destination pr.oxy.ip:3128 done -------------------------------------------- My script cat the file line by line and add excluding rules ( with ! ) of nets that i dont need to redirect. BUT! if only one rule ( for one subnet) persist in table - it works fine, and if i ll add second - with second net - all the traffic redirecting to proxy - without any exclusions. i cant understand why ? Could somebody help me please ? Thanks in advance, Aleksei ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: multiple exclusive DNAT does not work 2008-12-26 18:45 ` multiple exclusive DNAT does not work Aleksei Bebinov @ 2008-12-26 18:57 ` Leonardo Rodrigues Magalhães 2008-12-27 8:19 ` Aleksei Bebinov 0 siblings, 1 reply; 3+ messages in thread From: Leonardo Rodrigues Magalhães @ 2008-12-26 18:57 UTC (permalink / raw) To: Aleksei Bebinov; +Cc: netfilter Aleksei Bebinov escreveu: > I do so : > --------------- > cat /etc/config/kg-nets | while read LINE > do > #iptables -t nat -A PREROUTING -i br-lan -d ! $LINE -p tcp -m > multiport --dports 80 -j DNAT --to-destination pr.oxy.ip:3128 > > done > -------------------------------------------- > > My script cat the file line by line and add excluding rules ( with ! ) > of nets that i dont need to redirect. > BUT! > if only one rule ( for one subnet) persist in table - it works fine, and > if i ll add second - with second net - all the traffic redirecting to > proxy - without any exclusions. > > wrong rule for your needs. Maybe: for LINE in `cat /etc/config/kg-nets`; do iptables -t nat -A PREROUTING -i br-lan -d $LINE -p tcp --dport 80 -j ACCEPT done iptables -t nat -A PREROUTING -i br-lan -p tcp --dport 80 -j DNAT --to-destination pr.oxy.ip:3128 will do it. if someone asks me ONE single tip for making iptables easier, i would say "do NOT use negation rules, those with !" ..... they work just fine, but people rarely understands that it wont allow multiple exclusions and will keep fighting with that. Anyway, anything done with negation rules can be written in other single (and easier to understood) rules. -- Atenciosamente / Sincerily, Leonardo Rodrigues Solutti Tecnologia http://www.solutti.com.br Minha armadilha de SPAM, N√ÉO mandem email gertrudes@solutti.com.br My SPAMTRAP, do not email it ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: multiple exclusive DNAT does not work 2008-12-26 18:57 ` Leonardo Rodrigues Magalhães @ 2008-12-27 8:19 ` Aleksei Bebinov 0 siblings, 0 replies; 3+ messages in thread From: Aleksei Bebinov @ 2008-12-27 8:19 UTC (permalink / raw) To: Leonardo Rodrigues Magalhães; +Cc: netfilter Thanks Leonardo. It works fine, and its some different than OBSD PF :-) Leonardo Rodrigues Magalhães пишет: > > > Aleksei Bebinov escreveu: >> I do so : >> --------------- >> cat /etc/config/kg-nets | while read LINE >> do >> #iptables -t nat -A PREROUTING -i br-lan -d ! $LINE -p tcp -m >> multiport --dports 80 -j DNAT --to-destination pr.oxy.ip:3128 >> >> done >> -------------------------------------------- >> >> My script cat the file line by line and add excluding rules ( with ! ) >> of nets that i dont need to redirect. >> BUT! >> if only one rule ( for one subnet) persist in table - it works fine, and >> if i ll add second - with second net - all the traffic redirecting to >> proxy - without any exclusions. >> >> > > wrong rule for your needs. Maybe: > > for LINE in `cat /etc/config/kg-nets`; do > iptables -t nat -A PREROUTING -i br-lan -d $LINE -p tcp --dport 80 > -j ACCEPT > done > iptables -t nat -A PREROUTING -i br-lan -p tcp --dport 80 -j DNAT > --to-destination pr.oxy.ip:3128 > > will do it. > > if someone asks me ONE single tip for making iptables easier, i > would say "do NOT use negation rules, those with !" ..... they work > just fine, but people rarely understands that it wont allow multiple > exclusions and will keep fighting with that. Anyway, anything done > with negation rules can be written in other single (and easier to > understood) rules. > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-12-27 8:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <S1751268AbYLZSRi/20081226181738Z+155@vger.kernel.org>
2008-12-26 18:45 ` multiple exclusive DNAT does not work Aleksei Bebinov
2008-12-26 18:57 ` Leonardo Rodrigues Magalhães
2008-12-27 8:19 ` Aleksei Bebinov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox