Poate ca nu m-am facut inteles , asa ca o sa incerc sa ma exprim mai clar ,
dar mai intai cred ca e cazul pentru o mica precizare : in documentul pe
care ni l-a indicat Wolfy exista urmatorul paragraf :
"
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
This set of commands makes sure all answers to traffic coming in on a
particular interface get answered from that interface. "
Din cate imi dau eu seama, asta inseamna ca traficul catre $IP1 se va
intoarce prin $IF1 si traficul care vine catre $IP2 se intoarce prin $IF2 .
Pina aici toate bune si frumoase, numai ca pe mine nu asta ma intereseaza .
In primul mesaj am spus ca prin toate interfetele de pe masina mea vine
trafic catre ACEEASI adresa ip ( sa zicem $IP1 ) . Evident ca solutia de
mai sus va face ca traficul generat de $IP1 ca raspuns la cererile venite de
oriunde vor pleca urma regula "ip rule add from $IP1 table T1" si vor iesi
prin gateway-ul specificat in tabela T1 .
Iata si exemplul meu :
Am un server de DNS si un server Web . Serverul DNS este modificat , astfel
incat pentru zona www.domeniu.com va raspunde diferit in functie de tara
careaia apartine IP-ul care face requestul .
Daca tara=RO , DNS-ul raspunde (sa zicem) cu adresa 192.168.100.1
Daca tara!=RO, DNS-ul raspunde (sa zicem) cu adresa 192.168.200.1
IP-ul 192.168.100.1 este asignat interfetei eth0 pe masina care este si
server de web ( sa-i zicem A ) .
IP-ul 192.168.200.1 este asignat interfetei eth0 pe o masina care nu are
server de web pe el ( sa-i zicem B ).
Odata aflat acest IP, browserul utilizatorului va trimite cererea HTTP catre
unul din cele doua IP-uri .
Intre cele doua masini exista un tunel IPIP , cu capetele 10.0.0.1 pe masina
A si 10.0.0.2 pe masina B.
Pe masina B exista o ruta statica catre IP-ul 192.168.100.1 :
"ip route add 192.168.100.1/32 via 1.1.1.1 dev my_tunnel proto static"
si o regula de DNAT :
"iptables -A PREROUTING -t nat -p tcp --d 192.168.200.1 --dport 80 -j
DNAT --to-destination 192.168.100.1 "
In aceste conditii, un packet cu sursa (sa zicem) 3.3.3.3 care ajunge in
192.168.200.1 pe portul 80 este redirectat prin tunelul my_tunnel catre
192.168.100.1 cu sursa nemodificata ( e foarte important acest aspect - daca
as fi putut ignora acest aspect as fi folosit un proxy transparent , dar
aceasta solutie nu poate intra in calcul )
Problema este ca masina A raspunde intotdeauna urmand ruta default , deci
packetele nu se intorc pe acolo pe unde au venit . Mai mult decat atat,
pachetele vor ajunge la 3.3.3.3 ca venind de la 192.168.200.1 , si nu de la
192.168.100.1 . Evident conexiunea TCP nu poate fi stabilita in aceste
conditii .
Pe de alta parte, daca sursa 3.3.3.3 trimite un paket direct catre
192.168.100.1 , conexiunea poate fi stabilita la nivel TCP si poate fi
initiata sesiunea HTTP .
Cu speranta ca m-am facut cat de cat inteles si ca nu am spus prea multe
tampenii^H^H^Hmesaje, asa cum le place unora sa afirme astept o sugestie de
la voi .
Alex
P.S. Intre timp am gasit o solutie, care nu-mi place insa deloc si care
nu-mi ofera posibilitatea generalizarii acestei aplicatii .
----- Original Message -----
From: "lonely wolf" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 15, 2004 10:39 AM
Subject: [rlug] Re: Reverse Path Filtering versus dynamic source routing
> Mihai Rusu wrote:
>
>>On Wed, 15 Dec 2004, Alex Sirbu wrote:
>>
>>
>>
>>>Sa zicem serverul respectiv are adresa IP 1.1.1.1 si asculta pe portul
>>>80 .
>>>Prin toate interfetele de pe masina respectiva pot veni cereri catre
>>>1.1.1.1
>>>, dar neavand reguli statice e clar ca raspunsurile se vor duce prin ruta
>>>default .
>>>
>>>
>>
>>Si ai default gateway pe ambele interfete ? (adica un ruter pe fiecare din
>>interfete in stare sa iti poata ruta trafic oriunde in afara?)
>>
>>In caz afirmativ citesti documentatia iproute si configurezi policy
>>routing sa trimiti catre gateway-ul de pe eth0 ce vine prin eth0 si catre
>>gateway-ul de pe eth1 ce vine prin eth1.
>>
>>Asta ca sa raspund direct la intrebare. Otherwise eu tare ma indoiesc ca
>>tu chiar ai nevoie de asa ceva si de fapt e rezultatul unei greseli mai
>>mari care o faci si pe care nu ai expus-o aici.
>>
>>
>>
> lasa-l dizzy, ca el stie ca nu merge dinainte sa citeasca documentatia.
> daca s-ar fi uitat pe linkul dat de mine, nu raspundea cu timpenia^H^H^H
> mesajul cu care a raspuns.
>
> --
> Brain:The apparatus with which we think that we think.
>
>
>
> ---
> Detalii despre listele noastre de mail: http://www.lug.ro/
>
---
Detalii despre listele noastre de mail: http://www.lug.ro/