|
Torna alla pagina dei progetti:
PROGETTI
Progetto di Impianti di Elaborazione
Descrizione del Progetto
Realizzazione, usando netkit, di un'Architettura web distribuita contenente almeno tre web server distribuiti geograficamente
Soluzione del Progetto
Architettura della rete (cfr. SchemaHomework.jpeg ):
La rete è composta da 6 LAN distribuite geograficamente:
-
LAN 100.0.0.0/24: corrisponde al dominio .COM, e vi sono collegate le seguenti macchine: un host
(PC1), un DNS locale (DNS1) ed un router (R1).
-
LAN 192.100.11.0/24: corrisponde al dominio .NET, e vi sono collegate le seguenti macchine: un
host (PC2), un DNS locale (DNS2) ed un router (R2).
-
LAN 115.12.10.0/24: corrisponde al dominio .IT, e vi sono collegate le seguenti macchine: un webserver
(WS1), un DNS (DNS3, che funge da autorità per l'intero dominio .IT) ed un router (R3).
-
LAN 180.15.1.0/24: corrisponde al dominio .IT, e vi sono collegate le seguenti macchine: un webserver
(WS2) ed un router (R4).
-
LAN 102.10.2.0/24: corrisponde al dominio .IT, e vi sono collegate le seguenti macchine: 3 webserver
(WS3, WS4 e WS5) ed un router (R5).
-
LAN 154.116.80.0/24: su questa LAN è localizzato il DNS di livello superiore (DNSROOT) e vi
sono collegate le altre interfacce dei 5 router.
I 5 web-server forniscono lo stesso servizio, e sono tutti raggiungibili attraverso lo stesso URL (ws.it).
Il DNS3 conosce gli indirizzi dei vari server (distribuiti geograficamente), e si occupa della distribuzione
di carico tramite l'algoritmo di scheduling round-robin (RRDNS).
- Esempio di richiesta di una pagina:
-
L'host PC1 richiede la pagina http://ws.it/index.php e per risolvere tale URL fa una richiesta al DNS
del suo dominio (DNS1). Quest'ultimo per soddisfare la richiesta di PC1 effettua la stessa query al
DNSROOT, il quale, sapendo che il DNS autorità per il dominio .IT è il DNS3, reindirizza il DNS1
verso il DNS3. A questo punto il DNS1 rivolge la query al DNS3 che risolve l'indirizzo e risponde
fornendogli l'ip di uno dei 5 web-server. L'host riceve tale informazione dal suo DNS locale e può
richiedere la pagina html al server.
- Cosa fa lo script:
-
Lo script avvia e configura in modo sequenziale le 16 macchine virtuali che compongono l’architettura.
Sui server viene avviato Apache (comando apache). Le ultime due macchine avviate sono PC1 e PC2.
Entrambi gli host, dopo la configurazione, richiedono la pagina html tramite il comando wget
http://ws.it/index.php per 5 volte (a distanza di 7 secondi l’una dall’altra), in modo da verificare che la
risposta arrivi effettivamente da server diversi. Sul terminale degli host infatti viene visualizzato l'ip del
server che ha soddisfatto la richiesta, ed inoltre è mostrata la risoluzione dell’URL.
Il comando wget salva all’interno della directory homework una copia della pagina html richiesta.
Esecuzione dello script:
Per avviare lo script bisogna portarsi all’interno della cartella homework e digitare dalla shell il
comando homework1.sh start.
Per terminare le macchine virtuali digitare, sempre all’interno della cartella homework, il comando
homework1_crash.sh crash.
Un altro modo per eseguire richieste http al server è quello di digitare, all’interno dei terminali degli host
(PC1 o PC2), il comando lynx ws.it/index.php. Tale comando restituisce come output il contenuto
testuale della pagina richiesta. Ogni pagina index.php viene modificata dallo script in modo da visualizzare al proprio interno l'indirizzo ip del server che ha soddisfatto la richiesta (ciò solo per una
verifica immediata della distribuzione del carico effettuata dal DNS).
- Organizzazione del lavoro svolto:
-
Il lavoro è stato svolto per iterazioni successive, partendo da un’architettura essenziale fino ad arrivare
alla struttura definitiva. Il primo passo è stata la modellazione di una rete costituita soltanto da tre lan (con
due DNS locali e il DNSROOT ): una volta appurata la connettività della rete (ping tra le macchine
virtuali attraverso gli ip, es. ping 192.100.11.1), abbiamo verificato il corretto funzionamento dei DNS
(ping tramite i nomi delle macchine virtuali, es. ping pc2.net).
A questo punto abbiamo aggiunto altre tre lan sulle quali sono localizzati i web server distribuiti
geograficamente. Queste tre lan fanno parte dello stesso dominio .IT: il DNS autorità di tale dominio si
trova su una di queste tre lan ed è quello che si occupa del load-balancing.
Note:
-
Il lavoro è stato svolto su un computer con sistema Linux Mandrake 9.2; la versione di Netkit
utilizzata è la 1.4.2.
-
Un possibile sviluppo dell'architettura sarebbe quello di inserire un web-switch sulla LAN
102.10.2.0/24 in modo da eseguire una ulteriore distribuzione del carico sulla batteria dei server della
sottorete.
|
|