Trebuie sa stergi ruta default din tabela main, sa o pui in tabela 
default + sa pui

/sbin/ip rule add from EXTERNAL_IP1 table provider1 prio 32766
/sbin/ip rule add from EXTERNAL_IP2 table provider2 prio 32766
/sbin/ip route add default via GW1 dev eth0 table provider1
/sbin/ip route add default via GW2 dev eth2 table provider2


Prio e f. important, trebuie ca regulile astfel generate sa fie intre 
main si default

lonely wolf wrote:

>Se da un router/firewall cu 2 conexiuni la net, via Provider1 respectiv 
>Provider2. Fiecare conexiune pe cite o interfata. Se mai da un server de 
>mail cu ip public, primit de la Provider1, conectat la o a treia 
>interfata a router-ului.
>
>Se doreste ca serverul de mail sa devina accesibil si cu ip-ul (unic) 
>primit de la Provider2 si asignat interfetei externe a ruterului.
>
>Ce am facut:
>
>EXTERNAL_INTERFACE1 = eth0 (interfata spre provider1)
>INTERNAL_INTERFACE = eth1 (interfata spre reteaua interna)
>EXTERNAL_INTERFACE2 = eth2 (interfata spre provider2)
>EXTERNAL_IP1=ip1 (primit de la provider1)
>EXTERNAL_IP2=ip2 (primit de la provider2)
>INTERNAL_IP=ip3 (primit de la provider1)
>IP_MAIL=ip4 (primit tot de la provider1)
>
>adaugat in firewall:
>$IPT -t nat -A PREROUTING -p tcp -i $EXTERNAL_INTERFACE2 -d
>$EXTERNAL_IP2 --dport 25 -j DNAT --to $INTERNAL_IP:25
>
>
>/sbin/ip rule add from EXTERNAL_IP1 table provider1
>/sbin/ip rule add from EXTERNAL_IP2 table provider2
>/sbin/ip route add default via GW1 dev eth0 table provider1
>/sbin/ip route add default via GW2 dev eth2 table provider2
>
>nu exista nici o regula de SNAT sau ip nat.
>
>problema: pachetele de raspuns la conexiuni initiate catre EXTERNAL_IP2 
>pleaca folosind ca sursa EXTERNAL_IP2 (desi pina la trecerea prin 
>router, pachetele de la serverul de mail au adresa sursa a acestuia 
>(IP_MAIL), care, repet, e publica si primita de la provider1) dar prin 
>interfata de iesire unde se afla ruta default (uzual eth0), ignorind 
>regulile ip rule/route.
>
>1. (partea de metafizica).ce anume rescrie IP-ul sursa al pachetelor 
>(transformind din IP_MAIL in  EXTERNAL_IP2 )? iptables -j DNAT e asa 
>destept incit daca pachetele sint raspunsuri la o conexiune DNAT-ata, sa 
>rescrie sursa ?? asta deja miroase a SNAT ! si repet, nu exista nici un 
>SNAT in scriptul de firewall
>2. ce am gresit? de ce raspunsurile pleaca pe interfata default si nu 
>prin interfata specificata de ip route? daca decizia de rutare e luata 
>pe baza adresei serverului de mail (ceea ce ar justifica modul de 
>comportare observat), de ce pachetele ies prin eth0 cu IP-ul interfetei 
>eth2 (ceea ce se intimpla numai la conexiunei initiate via EXTERNAL_IP2 ) ?
>
>
>
>PS: am incercat si sa folosesc -j mark ($IPT -t mangle -A PREROUTING -p 
>tcp -i $EXTERNAL_INTERFACE2 -d $EXTERNAL_IP2 --dport 25 -j MARK 
>--set-mark 5 ) si o regula de genul ip rule add fwmark 5 table provider2.
>intrucit pachetele [de raspuns] dinspre serverul de mail nu sint 
>mark-ate, nu a mers.
>
>  
>



Raspunde prin e-mail lui