interesanta idee; nu am facut programare la nivel de agatzat apeluri pe 
linux, nu credeam ca se poate face ;)
in cazul meu cred ca mai simplu e sa folosesc iptables

Octavian Purdila wrote:

>On Wednesday 19 January 2005 04:16 pm, Eduard Gheorghiu wrote:
>  
>
>>Revin cu o reformulare a problemei
>>Am un LAN cu:
>>- calculatorul LINUX
>>- 2 routere cu IP-urile GW1 si GW2
>>LINUX are doua IP-uri pe aceeasi placa de retea, IP1 si IP2
>>GW1, GW2, IP1 si IP2 sunt in acelasi subnet.
>>Pe LINUX am definit source-routing cu doua reguli si doua tabele de
>>rutare T1 si T2 pentru aceste reguli. Tabelele contin rute default, astfel:
>>sursa IP1 --- lookup T1 --- default via GW1
>>sursa IP2 --- lookup T2 --- default via GW2
>>Situatia e cumva anormala pentru ca exista o suprapunere de IP-uri in
>>alte subnet-uri, care sunt dincolo de GW1 si GW2.
>>Un client IPCA-IP1 care e dincolo de GW1, ajunge la IP1 prin GW1 iar
>>intoarcerea trebuie sa se faca tot prin GW1; daca se face prin GW2
>>raspunsul ajunge la IPCB-IP1 (da, tot IP1).
>>Intrucat nu pot elimina aceasta suprapunere de adrese, am recurs la
>>varianta cu source-routing pe LINUX. Solutia merge perfect atunci cand
>>sesiunile TCP sunt initiate din afara.
>>Problema e ca source-routing-ul nu functioneaza pentru sesiuni initiate
>>de pe LINUX si pentru care nu specifica in bind() ce adresa sursa sa fie
>>utilizata. Ca sa rezolv sunt nevoit sa pun in MAIN ruta catre GW1 dar
>>asta inseamna ca nu pot initia conexiuni de pe LINUX decat catre IP-uri
>>care sunt dincolo de GW1.
>>Inteleg ca IP-ul sursa implicit este IP1, cel primary. Deci pot pune
>>GW-1 din T1 in MAIN si-mi vor functiona conexiunile cu bind() implicit
>>cu IP1src - via GW-1.
>>Practic pot renunta la T1 si pot face source-routing doar pentru IP-2
>>iar daca vreau sa initiez conexiuni cu IP2 ca sursa, n-am decat sa caut
>>aplicatii la care se poate specifica ip-ul sursa.
>>    
>>
>
>Daca chiar ai nevoie de conexiuni cu IP2 si pentru aplicatii la care nu poti 
>sa specifici sursa, mai exista o posibilitate: o biblioteca care sa 
>incercepteze bind/connect/socket/etc., si in functie de anumiti parametri 
>(variabile de mediu de exemplu) sa forteze bind-ul. Si nu zic asta la modul 
>general, chiar am folosit solutia asta intr-o situatie oarecum similara si 
>merge pentru aplicatii ce folosesc TCP/UDP (lynx de exemplu). E mai complicat 
>un pic la ping/traceroute.
>
>tavi
>
>--- 
>Detalii despre listele noastre de mail: http://www.lug.ro/
>
>
>
>  
>


--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui