Istruzioni per configurare una rete con un server

centrale e dei terminali di basse prestazioni in Linux

(in particolare usando Knoppix)

oppure...

Un modo per sfruttare fino in fondo

il potere d'uso dei computer obsoleti

Carlo Pirastru (sciccapira AT yahoo DOT it)

Gruppo Trashware - Ingegneria Senza Frontiere Genova

(http://diamunige.altervista.org/isf/progetti/ict/ict.php)

INTRODUZIONE

Questo tutorial è stato scritto per permettere a chiunque abbia in casa dei computer di scarse prestazioni (oltre ad avere una certa dimestichezza con Linux), di poterli usare ancora per un po' e allungarne la vita senza buttarli prima del tempo (come spesso accade con gli apparecchi elettronici costantemente soggetti ad obsolescenza).

Questo tutorial inoltre potrebbe essere uno strumento da parte di gruppi che si occupano di Trashware (recupero di computer dismessi altrimenti destinati anzitempo alla discarica e installazione di SW libero- http://trashware.linux.it) per recuperare insiemi di computer vecchi e installarli presso scuole, associazioni e, direi, anche aziende; in generale chiunque abbia spesso a che fare con magazzini pieni di computer vecchi

Io stesso mi occupo di Trashware e questa mi sembra una soluzione molto valida.

Prima di procedere alla lettura di questo documento vorrei sottolineare che esso è stato scritto principalmente per promuovere la diffusione di questa pratica, cioè il recupero e riuso di computer obsoleti o in fase di dismissione.

Non mi sono preoccupato per tanto di essere preciso nelle definizioni e nel linguaggio utilizzato e se avevo dei dubbi non ho esitato a scriverli.

Inoltre se dovessero esserci delle correzioni da fare chiunque può dirmelo tranquillamente, sarei felice di lavorare con lui alla correzione del documento.

Spero comunque di essere stato chiaro nella spiegazione dei passaggi.

1 LO SCENARIO

Una rete di computer in cui c'è una macchina molto potente che fungerà da server e una serie di client che si limiteranno a indirizzare le richieste dell'utente al server il quale processerà tutte le applicazioni inviate dai client mettendoci processore, RAM e dischi propri. I client per questa ragione, potrebbero essere di bassissime prestazioni, non avere persino dischi o bootare da rete.

Quest'ultima opzione non l'ho potuta sperimentare per mancanza di schede di rete con supporto PXE (boot da rete) e altri problemi. In fondo al documento, al capitolo 4, sono indicate le caratteristiche dei computer con cui ho svolto gli esperimenti e le distribuzioni diverse da knoppix che ho provato.

L'idea è quella di avere dei client che si avviano normalmente da soli attraverso dei dischi propri dove c'è installato Linux, ma la schermata di login che compare all'avvio di X è quella del server remoto, il quale da quel momento in poi si sostituirà completamente al client nello svolgimento delle applicazioni.

N.B. Da adesso in poi supporrò che Knoppix sia installata correttamente nel server, mentre nei client supporrò che ci sia installata una qualsiasi distribuzione Linux fra quelle testate (descr. capitolo 4).

2 CONFIGURAZIONE DEL SERVER

2.1 Modificare il file /etc/kde3/kdm/kdmrc

Alla sezione contrassegnata da [Xdmcp] andare alla riga dove c'è scritto Enable=false e metterci Enable=true. Questo cambio di valore avvierà il demone kdm (dopo avere riavviato la macchina) che raccoglie le richieste di login dei client all'avvio.

Da adesso in poi il demone verrà caricato all'avvio del server.

2.2 Modificare il file /etc/kde3/kdm/Xaccess

Alla riga:

#* #any host can get a login window

togliere il cancelletto di commento all'inizio della riga.

Cosi diventa:

* #any host can get a login window

Stessa cosa per la riga:

#* CHOOSER BROADCAST #any indirect host can get a chooser

Permette a chiunque di richiedere una login window oltre a diffondere la voce sui server che offrono questo tipo di servizio.

2.3 Configurare la rete in modo che all'avvio sia configurata automaticamente.

modificare il file /etc/network/interfaces in questo modo:

#/etc/network/interfaces

auto lo eth0

iface lo inet loopback

iface eth0 inet static

address 192.168.0.1

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

gateway 192.168.0.1

non sono sicuro se è opportuno modificare anche il file ifstate nella stessa directory.

Diventerebbe:

#/etc/network/ifstate

lo=lo

eth0=eth0

2.4 Modifica del file /etc/hosts

Bisogna aggiungere tutti i nomi dei computer che vengono configurati e aggiunti alla rete.

Esempio di file:

#/etc/hosts

127.0.0.1 topolino localhost

192.168.0.1 topolino

192.168.0.2 pippo

192.168.0.3 pluto

192.168.0.4 paperino

192.168.0.5 gastone

2.5 Modifica del file /etc/hosts.allow

Questo non so se è proprio necessario nel server, comunque non cambia niente.

Bisogna aggiungere alla fine del file questa riga:

#/etc/hosts.allow

ALL : 127.0.0.1 LOCAL 192.168.0.0/255.255.255.0 : ALLOW

questa riga consente a tutti i computer della sottorete di potersi collegare al server

2.6 Modifica del file /etc/hostname

Dove viene memorizzato il nome del computer (in questo caso “topolino”).

In alcune distribuzioni diverse da Knoppix questo file si trova in

/proc/sys/kernel/hostname

2.7 Riavviare il server

3 CONFIGURAZIONE DEL CLIENT

Se non si è riusciti a installare knoppix sul client perché il computer ha prestazioni troppo basse, allora provare con un altra distribuzione fra quelle testate (ved. Cap. 4).

3.1 Modifica dei file del client

Alcuni passi del server si ripetono anche qui nella configurazione del client: Per esempio i passi 2.3, 2.4, 2.5 e 2.6 sono gli stessi, tenendo conto che la configurazione della rete deve essere diversa nel client da quella del server.

Anche i nomi dei computer nel file /etc/hosts ovviamente devono essere cambiati:

es file /etc/hosts del computer pippo.

#/etc/hosts

127.0.0.1 pippo localhost

192.168.0.1 topolino

192.168.0.2 pippo

192.168.0.3 pluto

192.168.0.4 paperino

192.168.0.5 gastone

N.B. Controllare di riuscire a pingare tutti i computer della rete coi comandi ping nome_host e ping ip_addr.

3.2 Login remota nel server

Una volta completati questi passi si può provare a lanciare il comando:

X -query topolino

che lancia la finestra di login remota del server (quello che vogliamo noi).

Se il display 0 è già in uso perché avete lanciato il suddetto comando nel computer client dove era già in funzione il server X (e lo si legge nello standard error), allora usate il display 1, il comando cambierà di poco:

X :1 -query topolino

Se tutto funziona possiamo andare al passo successivo, altrimenti bisogna ricontrollare attentamente tutto; per la risoluzione dei problemi si rimanda al paragrafo 3.4.

Supponiamo che tutto sia andato liscio e andiamo all'ultimo passo.

3.3 Avvio della finestra di login automaticamente al boot

Se la finestra di login remota è ancora attiva (risultato del passo precedente), schiacciare sulla tastiera la combinazione di tasti ctrl-alt-backspace per ritornare in possesso del computer client. A questo punto bisogna fare in modo che all'avvio del client sia possibile lanciare automaticamente la login remota.

Fare una copia di backup del file /etc/init.d/kdm e chiamarla ad esempio /etc/init.d/kdm.B. Poi prendere in mano il file /etc/init.d/kdm , svuotarlo e inserire questo contenuto:

#!/bin/sh

/etc/X11/X -query topolino

Adesso riavviare il client e vedere se parte la login remota.

3.4 Risoluzione dei problemi

Se nel computer Client non c'è installato KDE perchè è troppo scarso per supportarlo e quindi neanche kdm allora c'è un altro modo per avviare la finestra di login remota senza modificare il file /etc/init.d/kdm (che in tal caso non esisterebbe).

Aprire il file /etc/inittab

andare alla riga che inizia così

x:5:respawn:

sostituirla con

x:5:respawn:/etc/X11/X -query topolino

A proposito: ricordarsi di impostare il runlevel di default a 5.

# The default runlevel.

id:5:initdefault:

Dovrebbe essere già impostato ma non si sa mai. A questo punto riavviare.

/---------------/

Quando lancio il comando:

X -query topolino

X: command not found

Mi è successa la stessa cosa quando ho provato a installare Linux in un client in forma ultra minimale, circa 100Mbyte di spazio occupato nel disco. Avevo dimenticato di installare il server X.

/---------------/

Quando lancio il comando:

X -query topolino

non appare la finestra di login (schermo grigio e cursore a X):

Controllare che il demone kdm nel sever sia in ascolto alla porta xdmcp. Lanciare il comando:

netstat -pa | grep kdm

dovrebbe dare questo output:

udp 0 0 *:xdmcp *:* 1438/kdm

se non compare niente allora il demone non è attivo; rifare il passo 2.1 e riavviare il server.

se invece il demone è in ascolto ricontrollare tutti il file /etc/hosts di tutti i computer e verificare che non ci siano degli errori. Controllare anche i file /etc/hosts.allow di tutti i client.

Se ancora non funziona potrebbero esserci delle regole di ipchains o iptables impostate per cui non è possibile per il client connettersi al server o viceversa.

Dare i comandi:

iptables -F

ipchains -F

Sia nel server che nei client.

Non funziona ancora? Scrivimi a questo indirizzo email: sciccapira AT yahoo DOT it .

4 TEST SVOLTI

Ho effettuato dei test su diversi computer che alternativamente venivano configurati come server o come client. Gli episodi più interessanti sono stati i seguenti:

Un server da 1,2 Ghz con processore C3 e 256 di RAM che gestiva altri due computer. In tutti e tre i computer (compreso quindi il server) ho lanciato due applicativi fra OpenOffice, Mozilla e konqueror. Quando ho lanciato anche il terzo applicativo su tutti e tre, in uno dei computer client si è bloccato lo schermo.

Per quanto riguarda le prestazioni dei computer client, il “peggiore” che ho usato è stato un pentium 100MHz con 32Mbyte di RAM. Rispetto a qualsiasi altro computer con prestazioni maggiori che ho utilizzato non ho riscontrato alcuna differenza.
NB Non sono riuscito ad installare Knoppix perché avevo a disposizione soltanto 1.4 Gbyte di HD; ho provato con Mandrake 8.1 ed ha funzionato.

Per quanto riguarda le schede di rete utilizzate non ho riscontrato differenze in particolare fra una scheda 3c509 ISA a 10Mbps e una scheda 8139 PCI a 100Mbps.

L'esperimento funziona anche senza l'hd avviando knoppix o slax soltanto da CD con la differenza che ad ogni avvio bisogna configurare tutto daccapo (rete, hosts).

Le distribuzioni Linux che ho usato sono state: Slax (senza installarla soltanto nella versione live), RedHat 7.2 (installata nell'hd), Mandrake 8.1 (nell'hd installazione minimale circa 120 Mbyte di spazio occupato), knoppix 3.6 (sia in versione live che installata). Sono distribuzioni che però ho installato nei client, il server ha lavorato sempre su knoppix 3.6.

5 CONCLUSIONI

Penso che sia possibile configurare il server e i client con distribuzioni diverse da quelle che ho usato. Sinceramente non ho provato con altre distribuzioni per mancanza di tempo, comunque dovrebbero cambiare giusto i path dei file che vengono modificati e non i nomi; inoltre è sicuramente possibile utilizzare gdm o xdm come desktop manager, al posto di kdm.

Infine è opportuna una considerazione riguardo alle caratteristiche che dovrà avere il server. E' importante sicuramente che esso abbia una abbondante dose di RAM.

Se una scuola o un'associazione o persino un'azienda intendessero allestire un laboratorio di computer potrebbero certamente valutare l'ipotesi di farlo in questo modo. Invece che acquistare tutti i computer se ne potrebbe semplicemente comprare uno solo molto potente e recuperare i vecchi computer che probabilmente già possiede per usarli come terminali. La spesa sarebbe senz'altro inferiore.

Anche semplicemente accoppiando ciascun nuovo computer (configurato come server) con ciascun vecchio computer (configurato come client) basterebbe per limitare notevolmente il problema dei rifiuti tecnologici.

2005-05-30T18:46:07