Laboratorio
di Amministrazione di Sistemi L-A
Prova pratica - 11 aprile 2007
Due
router Linux
permettono la connessione ad Internet
della rete 172.20.2.0/24,
occupando su tale rete gli indirizzi 172.20.2.252 e 172.20.2.253. La
loro configurazione è fatta in modo da garantire il
bilanciamento del traffico (in condizioni normali) e la
disponibilità del servizio in caso di guasto di uno dei due.
La
configurazione di default è memorizzata in una directory
LDAP,
realizzata anch'essa sotto forma di servizio ad elevata
disponibilità: il router 172.20.2.252 svolge
normalmente il ruolo di server LDAP, ma il processo server gira anche
sul router 172.20.2.253. Ogni operazione LDAP deve quindi essere
tentata sul primo router, ed in caso di mancata risposta sul secondo
(parte dell'esercizio consiste nello sperimentare come distinguere le
diverse situazioni di errore derivanti da una tentata query).
Ogni
workstation
- All'avvio deduce da LDAP, o in assenza di informazioni
dalla situazione di carico, quale router deve utilizzare.
- Tiene costantemente sotto controllo i messaggi d'errore che
possono indicare un guasto al router selezionato, e nel caso commuta
sull'altro.
Ogni router
- All'avvio interroga la directory per sapere quali
workstation lo utilizzano, e configura di conseguenza il proprio packet
filter.
- Tiene costantemente sotto controllo l'altro router, per
prenderne il posto in caso di guasto.
Dettagli
e file da
consegnare:
- resource.schema (2) - Definisce la classe percorsoScelto
che contiene due attributi di tipo stringa IPworkstation e
IProuter
- rt-ldapsync.sh (4) - Questo script, invocato su di un router, aggiorna
il contenuto del server LDAP presente sul medesimo con il contenuto del server LDAP dell'altro.
- rt-workstations.sh (6) - Questo script, invocato su di un router, interroga il
server LDAP dell'altro router e stampa su standard output un elenco di indirizzi IP di workstation:
- Se il parametro con cui viene invocato è mine stampa gli indirizzi delle workstation che fanno capo a lui
- Se il parametro con cui viene invocato è others stampa gli indirizzi delle workstation che fanno capo all'altro
- Se il parametro con cui viene invocato è all stampa gli indirizzi di tutte le workstation
- rt-netconf.sh
(6) - Questo script, invocato su di un router ed utilizzando rt-workstations.sh
- deduce quali workstation fanno capo a lui
- configura il packet filter di conseguenza
perchè il traffico proveniente da tali workstation (si noti
che hanno IP privati) possa essere instradato verso Internet.
- impone l'assenza nel proprio packet filter di regole che riguardino workstation gestite dall'altro router
- ha.txt (6) - Descrivere discorsivamente come si utilizzerebbero gli script ldapsync.sh e rt-netconf.sh per ottenere:
- in condizioni normali la sincronizzazione periodica dei dati tra server LDAP principale e server LDAP secondario
- dopo un guasto occorso ad uno dei due router il ripristino
della normalità in termini di configurazione della rete e di
contenuto dei server LDAP
- molto sinteticamente, come si potrebbe modificare rt-netconf.sh perchè
possa essere usato, a seconda di un parametro, per svolgere il suo
ruolo standard oppure per per configurare il router in modo che
gestisca tutte le workstation
- ws-findrouter.sh (6) - Questo script
ricerca su LDAP un'entry che associ all'IP della workstation su cui
viene lanciato quello di uno dei due router. Nel caso non ottenga
risultati, individua quale dei due router è stato
mediamente meno
carico negli ultimi 15 minuti, e registra su LDAP la propria
preferenza per quello. Al termine della procedura stampa su standard
output l'indirizzo IP del router selezionato.
- ws-netconf.sh (6) - Questo
script va eseguito al boot della workstation (indicare nei commenti come si può ottenere questo):
- utilizza findrouter.sh
per calcolare l'indirizzo del router da utilizzare
- configura la rete di conseguenza (tenendo conto di
eventuali regole di instradamento già presenti, da eliminare
o da mantenere)
- predispone un'azione di monitoraggio che consenta
successivamente di rilevare se il traffico inoltrato attraverso il
router prescelto origina errori (suggerimento: se un router non funziona, i messaggi d'errore sono
prodotti dallo stack TCP/IP locale, ovviamente non dal router o da
macchine che stanno ancora oltre)
- ws-failover.sh (4) - Controlla ogni secondo i dati prodotti dall'azione di monitoraggio impostata dallo script ws-netconf.sh e
se rileva errori riutilizza tale script per scegliere di passare
attraverso l'altro router (senza modificare la preferenza memorizzata
su LDAP). Indicare nei come si può garantire che questo script
sia continuamente in esecuzione.