PDA

View Full Version : routing


uMoR
01-09-2003, 20:11
devo fare una cosa perversa e non ci sono ancora riuscito


devo conf. iptables in maniera che a seconda delle richieste che riceve fa qualcosa .. ad esempio

il server di routing ha 2 indirizzi ip:
10.0.0.1 -> locale
80.80.80.80 -> pubblico

ogni richiesta sulla porta 80 deve essere inviata a 10.0.0.2
sempre sulla porta 80

è possibile ? se si come ?


è possibile inoltre fare una roba tipo che a seconda del dominio richiesto rigiro la richiesa a diversi server ? tipo:

www.a.it -> lo giro su 10.0.0.2
www.b.it -> lo giro su 10.0.0.3
ecc ecc ?

#!/bin/sh
02-09-2003, 07:35
Originariamente inviato da uMoR
devo fare una cosa perversa e non ci sono ancora riuscito


devo conf. iptables in maniera che a seconda delle richieste che riceve fa qualcosa .. ad esempio

il server di routing ha 2 indirizzi ip:
10.0.0.1 -> locale
80.80.80.80 -> pubblico

ogni richiesta sulla porta 80 deve essere inviata a 10.0.0.2
sempre sulla porta 80

è possibile ? se si come ?


è possibile inoltre fare una roba tipo che a seconda del dominio richiesto rigiro la richiesa a diversi server ? tipo:

www.a.it -> lo giro su 10.0.0.2
www.b.it -> lo giro su 10.0.0.3
ecc ecc ?

Per quanto riguarda la prima domanda devi semplicemente redirezionare il traffico:

iptables -t nat -A PREROUTING --dport 80 -i <interfaccia> -j DNAT --to <ip>

Fai una traduzione degli indirizzi sul prerouting. Mi raccomando PREROUTING e non POSTROUTINGì: devi tradurre le destinazione prima dell routing se no non funziona.
Per maggiori informazioni guarda su: netfilter.org (http://www.netfilter.org)

Per la seconda domanda, per quanto ne so non lo puoi fare con iptables. Iptables agisce a livello di ip e non a livello di applicazione. Purtroppo iptables non riesce a capire che www.a.it deve andare su 10.0.0.2 e www.b.it deve andare su 10.0.0.3. Penso che una roba simile tu la debba fare con apache, ma di apache ne capisco molto poco.

HollowMan
02-09-2003, 10:51
Originariamente inviato da uMoR
è possibile inoltre fare una roba tipo che a seconda del dominio richiesto rigiro la richiesa a diversi server ? tipo:

www.a.it -> lo giro su 10.0.0.2
www.b.it -> lo giro su 10.0.0.3
ecc ecc ?

Come già detto questo non lo può fare iptables .... però:

se i due server girano sulla stessa macchina puoi lavorare a livello di virtual host (che qualunque software ormai permette di configurare)

se i due server girano su due macchine diverse dovresti mappare i due domini su IP diversi e quindi, visto che si torna a lavorare a livello IP, impostare il routing con iptables.

uMoR
02-09-2003, 12:49
se no con apache non si può mettere una documentroot remota ?

HollowMan
02-09-2003, 13:38
Cosa intendi per document root remota ?

uMoR
02-09-2003, 15:36
cioè ho dei virtual host..
e voglio che apache si vada a leggere una cartella remota dove stanno i file di un determinato sito

capito ?

cioè invece che /home/utente/html
192.168.0.3/qualcosa


capito ?

HollowMan
02-09-2003, 15:58
Adesso si ... :)

La DocumentRoot deve essere fisicamente presente sul file system su cui gira il web server. Puoi però montare la directory remota via samba o nfs sul server in modo che risulti a tutti gli effetti come una parte del file system locale.

uMoR
02-09-2003, 16:24
una roba incasinata insomma... =)

HollowMan
02-09-2003, 16:30
Molto più incasinata a parlarne che non a farlo :)

se spieghi bene e in dettaglio il tuo problema vedrai che si trova la soluzione migliore ;)