|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2010
Messaggi: 210
|
Load balancing su porte
Ciao a tutti!
Lo scenario in cui devo lavorare è il seguente: c'è un server che risponde su 4 porte diverse, la 5000, 5001, 5002 e 5003, ogni porta ha il medesimo servizio (sono 4 socket identici). Necessito di creare una sorta di router con un'unica porta pubblica per esempio la 8000 dove arrivano le varie richieste dai client e vengono routate sulle porte libere del server che dovrà elaborare la richiesta e rispondere. Come si può fare? Grazieeee |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2001
Città: Gorizia/Trieste/Slovenia
Messaggi: 4338
|
mettigli davanti iptables, che faccia round robin verso le porte di destinazione.
__________________
Dio ha fatto il cavo, il diavolo il wireless. "CCIE-level challenges should stay in CCIE labs." (cit I.Pepelnjak) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 7494
|
se hai un router di cui hai il controllo, per dire un router linux messo su da te, allora cerca su internet "iptables load balancing"
se lo vuoi fare su un router domestico, non ci riuscirai (almeno a mente non mi sembra che le interfacce grafiche permettano l'inserimento di porte o ip differenti di destinazione) se vuoi mettere immediatamente su qualcosa, punta a zeroshell che lo ha di suo ma, sarò non propriamente sveglio stamane, di solito il load balancing del nat si fa verso server differenti, non tanto verso porte differenti su cui è in ascolto lo stesso server sullo stesso host, cioè "a che serve fatto così?" tanto sempre un'istanza di quel server sullo stesso host hai, ad occupare banda e cpu... |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jun 2010
Messaggi: 210
|
Ciao intanto grazie per le risposte,
allora i server hanno 4 socket ogni uno, ogni socket una porta, questi socket vengono aperti da un client remoto, invia dei dati al server, questo li processa e li restituisce. e qui capite che ogni client che chiama deve essere mandato su una porta libera e tenuta aperta la connessione finche finisce il ciclo. ![]() |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jun 2010
Messaggi: 210
|
Uppete!
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 7494
|
dovresti fornire almeno qualche informazione
- che router hai? puoi cambiarlo nel caso? - hai i sorgenti di questo fantomatico server? è scritto davvero in maniera stramba, se puoi modificarlo, fallo; al minimo minimo, lo fai lanciare da inetd e risolvi d'incanto otgni problema nessun router casalingo ti permetterà (a memoria) di fare questa cosa; se si tratta di "lavoro", se proprio non puoi modificare il server, allora devi mettere su un router che ti permetta di fare questa cosa; almeno un routerino con openwrt, per dire, e provare a mano a farla con regole iptables; anche se non ci giurerei che le cose vadano senza problemi; la soluzione scelta è un pò strana |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jun 2010
Messaggi: 210
|
il router sarà un computer con due schede di rete con installata una versione per ipotesi di linux, solo che non so quale!
i server sono dei microprocessori con una scheda di rete non configurabili liberamente, a loro arriva un pacchetto tcp, lo elaborano e lo rispediscono al client. si con iptables, ma a me servirebbe un esempio non avendo mai avuto a che fare con queste cose, mettiamo caso di avere un server 10.0.0.2 con 4 socket sulle porte 5000,5001,5002,5003 e arrivano due chiamate contemporanee da 172.0.0.22 e 172.0.0.23 sulla porta 5000, qui deve entrare in azione iptables che controllerà quale socket è libero e routerà 172.0.0.23 sulla 5001 in quanto la 5000 è gia occupata dal primo. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 7494
|
no iptables non sa se un server è libero
ad iptables puoi solo dire qualcosa del genere per le connessioni tcp alla porta P ogni 2 pacchetti va al server A per le connessioni tcp alla porta P ogni 2 pacchetti va al server B e così via cerca nat load balancing per dire https://www.webair.com/community/sim...ables-and-nat/ poi se esiste qualche soluzione con programmi esterni non lo so, mi dispiace |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:01.