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. > > >
