То май сам си го пиша тоя thread, но все пак решението се оказа просто
използва се conntrack match с опция --ctorigdst. нещо такова: iptables -t mangle -A PREROUTING -m conntrack --ctstate DNAT --ctorigdst 1.2.3.4 -j MARK --set-mark 2 ip rule add fwmark 2 lookup 202 :) On Sat, 2005-07-16 at 08:40 +0300, Milen Trifonov wrote: > Малк допълнение, в маил-листа на LARTC, намерих този пост: > http://mailman.ds9a.nl/pipermail/lartc/2005q3/016618.html > Маркира пакети и изпозва маркера за routing decision. > Ще го пробвам и ще кажа какво е станало после. > > > On Fri, 2005-07-15 at 22:33 +0300, Milen Trifonov wrote: > > Здравейте група, > > > > Имам следната ситуация: (Картинката е от lartc.org) > > > > > > ________ > > +------------+ / > > | | | > > +-------------+ Provider 1 +------- > > __ | | | / > > ___/ \_ +------+-------+ +------------+ | > > _/ \__ | if1 | / > > / \ | | | > > | Local network -----+ Linux router | | > > Internet > > \_ __/ | | | > > \__ __/ | if2 | \ > > \___/ +------+-------+ +------------+ | > > | | | \ > > +-------------+ Provider 2 +------- > > | | | > > +------------+ > > \________ > > > > > > от същото място са и настройките за iproute2. > > за порт 80 имам DNAT към 192.168.0.3 > > > > iptables -t nat -A PEROUTING -i if1 -p tcp --dport 80 -j DNAT --to > > 192.168.0.3 > > iptables -t nat -A PEROUTING -i if2 -p tcp --dport 80 -j DNAT --to > > 192.168.0.3 > > > > и SNAT : > > > > iptables -t nat -A POSTROUTING -s localnet -o if1 -j SNAT --to-source > > IP1 > > iptables -t nat -A POSTROUTING -s localnet -o if2 -j SNAT --to-source > > IP2 > > > > ето ги и рутингите: > > > > ip route add IP_NET1 dev if1 src IP1 table 201 > > ip route add default via IP1 table 201 > > > > ip route add IP_NET2 dev if2 src IP2 table 202 > > ip route add default via IP2 table 202 > > > > > > ip route add IP_NET1 dev if1 src IP1 > > ip route add IP_NET2 dev if2 src IP2 > > > > > > > > ip route add default via IP2 > > > > ip rule add from IP1 table 201 > > ip rule add from IP2 table 202 > > > > И проблема е, че когато IP2 e default gw, отговорите на заявките винаги > > излизатат през if2, а не от интерфейса от който са дошли. Това > > предполагам е защото routing decision се взема преди SNAT. > > Някой имал ли е такава ситуация? ако се сещате нещо кажете. -- Milen Trifonov <[EMAIL PROTECTED]>
