Laboratorio

Modulo 7 - Sistemi operativi di rete

Esperienza su Linux Terminal Server (LTSP)

Per la realizzazione di questo modulo useremo Netkit4TIC con la connettività con la rete reale (leggere il file README). Inoltre occorre procurarsi un hub e un paio di vecchi pc con una scheda di rete ciascuno.

La rete con il relativo schema di numerazione assume l'esistenza di una rete reale con numerazione 192.168.100.0/24 come illustrato nella mappa (pdf, xml). L'esperienza (tarball) è limitata alla messa in funzione di un "fat" client con la sola interfaccia a caratteri attraverso l'utilizzazione della versione 3.0 del progetto LTSP.
Nella vm sono stati già installati ltsp-core-i386 e ltsp-kernel-2.4.22-i386 scaricati dal sito termserv.berlios.de e installati tramite apt.
Nel caso volessimo attivare la modalità grafica e perciò X occorrerà installare ltsp-x-core-i386, ltsp-x-fonts-i386 e, ad esempio, nel caso di scheda grafica Mach64 x-xserver-mach64-3.3.6-i386.

Dopo aver settato correttamente l'ambiente Netkit lancia lo script:

user@realHost$ ./lab start

che attiva e configura un macchina virtuale di nome lts con i seguenti servizi:

Verifica funzionamento DHCP

Per verificare il corretto funzionamento del server DHCP almeno sulla rete 192.168.77.0/24 possiamo provare l'applicativo pump. Per prima cosa assegniamo un particolare MAC (00:00:00:00:00:01) address all'interfaccia tap0. Prima facciamo lo shutdown dell'interfaccia e poi, dopo aver cambiato il MAC, ritiriamo su l'interfaccia :

root@realHost# ifconfig tap0 down; \
               ifconfig tap0 hw ether  00:00:00:00:00:01; \
               ifconfig tap0 192.168.77.1

Configuriamo il servizio DHCP in modo tale che assegni a tale MAC address l'ip 192.168.77.1:

# /etc/dhcp3/dhcpd.conf
[...]
host test {
  hardware ethernet     00:00:00:00:00:01;
  fixed-address         192.168.77.1;
}

e ora possiamo sperimentare rispettivamente il leasing, il rinnovo (-R) e il rilascio (-r) di IP Address. Poichè non vogliamo cambiare la configurazione del default gateway e del name server del nodo specificheremo questa volontà nelle opzioni del comando:

root@realHost# export PARMS=--no-gateway --no-dns --no-gateway --no-resolvconf; \
               pump -i tap0 $PARMS; \
               pump -R -i tap0 $PARMS; \
               pump -r -i tap0 $PARMS

Abbiamo registrato la cattura (File ACP) del traffico effettuata con il comando:

root@realHost# tcpdump -i any -n -s 1524 -w LTSP-dhcp udp

Verifica funzionamento TFTP

Per verificare il funzionamento del trivial FTP ci poniamo nel realHost e diamo il comando get:

user@realHost$ tftp 192.168.77.2
tftp> get lts/vmlinuz-2.4.22-ltsp-2
Received 1731429 bytes in 6.2 seconds
tftp> quit

Considerazioni sulla rete reale

Nel caso assai probabile di utilizzo in una rete di laboratorio con una numerazione diversa da 192.168.100.0/24 occorre apportare delle modifiche ai file /etc/exports, /etc/hosts.allow e /etc/dhcp3/dhcpd.conf segnalate di seguito in colore:

# /etc/hosts.allow
[...]
in.tftpd:  192.168.100.
portmap:   192.168.100.
mountd:    192.168.100.
# /etc/exports
/opt/ltsp/i386  192.168.100.0/255.255.255.0(ro,no_root_squash)
# /etc/dhcp3/dhcpd.conf
[...]

option broadcast-address      192.168.100.255;
option routers                192.168.100.100;
option domain-name-servers    192.168.100.100;

[...]

shared-network WORKSTATIONS {
    subnet 192.168.100.0 netmask 255.255.255.0 {
    }
}

group {
    use-host-decl-names       on;
    option log-servers        192.168.100.100;
    # The following is _NOT_ a MAC address!
    option option-128         e4:45:74:68:00:00;

    host ws002 {
        hardware ethernet     00:10:a7:17:30:a5;
        fixed-address         192.168.100.2;
        filename              "/tftpboot/lts/vmlinuz-2.4.22-ltsp-2";
    }
    host ws102 {
        hardware ethernet     00:60:97:51:20:7e;
        fixed-address         192.168.100.3;
        filename              "/tftpboot/lts/vmlinuz-2.4.22-ltsp-2";
        # this is mandatory for ISA card:
        option option-129     "NIC=3c509";
    }
}

Esperienza

La rete reale dove stanno le workstation è distinta dalla rete virtuale dove è installato il servizio Terminal con il server dhcp e quindi occorre attivare il servizio di dhcp relay nel "router" in modo che avvenga il forward verso il server:

root@realHost# dhcrelay3 192.168.77.2

Ora per ogni vecchio pc a disposizione occorre identificare la marca e il modello della scheda di rete e quindi punta il tuo browser sull'URL:

user@realHost$ firefox http://www.rom-o-matic.net/5.2.2/

e seleziona la scheda di rete appropriata, poi premi "Get ROM" e costruisci il dischetto di boot per il vecchio pc:

root@realHost# cat eb-5.2.2-tuaScheda.zdsk > /dev/fd0

Prendi un hub e collegalo al pc su cui è installato Netkit4TIC e ora collega anche il vecchio pc all'hub.
Ora puoi inserire il floppy nel vecchio pc e accenderlo. La prima cosa da fare è scoprire il MAC address della scheda di rete. Per far questo basta visualizzare il file di log del server (virtuale):

root@lts# tail -f /var/log/syslog
[...] DHCPDISCOVER from 00:60:97:51:20:7e via 192.168.100.100

ma lo visualizza anche la stessa workstation al momento del boot da floppy. Inserisci il MAC nel file /etc/dhcpd.conf e fai ripartire il server dhcp:

root@lts# /etc/init.d/dhcp3-server restart

A questo punto resettiamo il vecchio pc e poco dopo lo vedremo accettare il leasing dell'IP address, poi chiederà, attraverso tftp, il download del kernel che poi caricherà in memoria. In seguito, dopo aver identificato la scheda di rete lo script di inizializzazione compierà una seconda richiesta di leasing dhcp. Come ultimo passo verrà montato via NFS una parte del filesystem e al termine apparirà il prompt della shell.

Ecco uno screenshot del desktop della macchina reale con il file di log e lo schema della rete.

Il live-{CD,USB} contiene una configurazione di Terminal Server che puoi provare in Knoppix Terminal server.

Creative Commons License FREE THE MOUSE Valid HTML! Sandro Doro (email me)
Ultima modifica: $Date: 2007-02-10 08:07:40 $