Avanti Indietro Indice

10. Configurazione della propria macchina Linux come client NCP.

È probabile che gli utenti di reti a tecnologia mista, comprendente protocolli IP ed IPX, prima o poi desiderino che la propria macchina Linux possa accedere a dati memorizzati in un fileserver Novell sulla rete. Novell offre da tempo un pacchetto NFS per i propri fileserver in grado di consentire questa funzione; tuttavia, nel caso di una piccola installazione, o se solo un ristretto numero di persone è interessato a tale funzionalità, non è facile giustificare il costo del pacchetto commerciale.

Volker Lendecke lendecke@namu01.gwdg.de ha scritto un modulo che consente di montare volumi Novell sul filesystem Linux senza richiedere alcun prodotto addizionale per il fileserver. Volker ha denominato il pacchetto ncpfs ed ha tratto le informazioni necessarie principalmente dal libro "Netzwerkprogrammierung in C" di Manfred Hill e Ralf Zessin (ulteriori dettagli sul libro sono contenuti nel file README del pacchetto ncpfs).

Il software consente a Linux di emulare una normale stazione di lavoro Novell per servizi di file. Include anche una piccola utility che consente di stampare le code Novell (questo argomento è documentato nel paragrafo relativo al Client di Stampa). Il pacchetto ncpfs è in grado di lavorare con fileserver Novell a partire dalla versione 3.x, mentre non funziona con Novell 2.x. Il client ncpfs funziona anche con prodotti strettamente compatibili con Novell, ma sfortunatamente alcuni, pur dichiarandosi compatibili, non lo sono a sufficienza. Per utilizzare ncpfs con Novell 4.x, è preferibile configurare il fileserver per operare in modalità di emulazione bindery. Il supporto NDS è una aggiunta piuttosto recente alla versione beta di ncpfs e per di più in certi paesi è proibito a causa dell'inclusione di tecnologia protetta da brevetto.

10.1 Come ottenere ncpfs.

L'ultimo pacchetto ncpfs fu progettato per versioni del kernel fino alla 1.2.13 o superiore alla 1.3.71 (questo include la versione 2.x.x). Se il kernel in uso non rientra in queste categorie, è necessario eseguire un aggiornamento, operazione descritta in dettaglio nel Kernel-HOWTO.

Il pacchetto ncpfs può essere ottenuto tramite ftp anonimo con il sito di Volker presso:

ftp.gwdg.de in /pub/linux/misc/ncpfs/

oppure

sunsite.unc.edu in /pub/Linux/system/filesystems/ncpfs

o siti mirror. La versione attuale nel momento in cui si scrive questo documento è: ncpfs-2.0.11.tgz oppure ncpfs-2.2.0.tgz che aggiunge il supporto NDS.

10.2 Compilazione di ncpfs per il kernel 1.2.13.

Compilazione di un kernel con supporto Ethernet e IPX.

La prima cosa da fare è assicurarsi che il proprio kernel sia stato compilato con l'abilitazione al supporto IPX. Nella versione di kernel 1.2.13 basta assicurarsi di aver risposto "Y" alla domanda The IPX protocol, come illustrato nel seguito:

 ...
 ...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
 ...
 ...

Ovviamente è necessario includere il driver relativo per la propria scheda Ethernet. Per maggiori dettagli, si dovrebbe consultare l'Ethernet-HOWTO.

A questo punto è possibile procedere alla compilazione del kernel. Al termine potrebbe essere necessario eseguire lilo per installarlo.

Esecuzione del comando tar per il software ncpfs.

# cd /usr/src
# tar xvfz ncpfs-2.0.10.tgz
# cd ncpfs

Controllo del Makefile

Se si desidera utilizzare kerneld per caricare automaticamente il modulo ncpfs, è necessario togliere il commento alla riga che si riferisce a KERNELD all'interno del Makefile. Se non si conosce il significato di questa azione, si dovrebbe leggere Kernel-HOWTO per familiarizzare con la configurazione del modulo kernel.

Esecuzione di make per il software ncpfs

Il software dovrebbe poter essere compilato correttamente senza necessitare di altra configurazione, tramite il comando:

# make

Copia dei tool IPX, se non ancora presenti

Al termine dell'esecuzione di make, tutti gli strumenti necessari dovrebbero trovarsi nella directory ncpfs/bin. È possibile utilizzare il comando:

# make install

per installare i tool in directory scelti da Volker. Se si sta lavorando su un sistema basato su ELF, si dovrà eseguire nuovamente ldconfig -v per assicurarsi che venga trovata la libreria condivisa.

Copia del modulo ncpfs.o se necessario

Se si sta eseguendo la compilazione di un kernel 1.2.*, al termine dell'esecuzione di make, si troverà un file denominato ncpfs.o nella directory ncpfs/bin. Si tratta del modulo di kernel ncpfs, che dovrebbe essere copiato in luogo utile. Sul sistema debian dell'autore, è stato copiato nella directory /lib/modules/1.2.13/fs ed ncpfs aggiunto al file /etc/modules in modo che venga eseguito automaticamente all'avvio del sistema. Per una diversa distribuzione, si dovrebbe scoprire dove sono localizzati i moduli per copiarlo in quella locazione; in ogni altro caso semplicemente copiarlo nella directory /etc. Per caricare i moduli manualmente, è necessario utilizzare il comando:

# insmod ncpfs.o

10.3 Come compilare ncpfs per i kernel 1.3.71++/2.0.*

Per l'ultima versione di ncpfs, si dovrebbe utilizzare un kernel 1.3.71 o successivo; questo include i kernel 2.0.*.

Se si ha intenzione di utilizzare un kernel di versione 1.3.71 o successivo, allora il codice del kernel ncpfs è stato incluso nella distribuzione standard. È sufficiente rispondere "Y" alla domanda:

Networking options  --->
...
...
<*> The IPX protocol
...
Filesystems  --->
...
...
<*> NCP filesystem support (to mount NetWare volumes)
...

A questo punto è necessario seguire le istruzioni per la compilazione dei kernel 1.2.*, in modo da costruire i tool; tuttavia non ci sarà un file modulo da installare.

10.4 Configurazione e utilizzo di ncpfs.

Configurazione del software di rete IPX

Esistono due modi per configurare il software di rete IPX. È possibile configurare manualmente tutte le informazioni di rete IPX, oppure lasciare che il software determini da solo delle impostazioni ragionevoli, tramite il comando:

# ipx_configure --auto_interface=on --auto_primary=on

Questo comando dovrebbe funzionare nella maggior parte dei casi, ma se ciò non accade, si invita a leggere il paragrafo Tools di IPX per configurare il software manualmente. Si sono notati problemi nell'usare questo comando su reti in cui erano presenti client Windows '95.

Collaudo della configurazione

. Dopo la configurazione della rete IPX, dovrebbe essere disponibile il comando slist che elenca tutti i fileserver Novell presenti:

# slist

Se il comando slist fornisce un messaggio del tipo: "ncp_connect: Invalid argument" significa che il kernel probabilmente non supporta IPX. Controllare che sia stato effettivamente avviato il kernel appropriato. Quando si avvia il sistema, i messaggi di startup dovrebbero contenere informazioni riferite a IPX e ncpfs. Se, nonostante tutto, il comando slist non elenca i fileserver, allora si dovrebbe utilizzare il metodo manuale per la configurazione della rete.

Montare un volume Novell(R).

Se il software di rete IPX funziona correttamente, si dovrebbe essere in grado di montare un volume fileserver Novell all'interno del filesystem Linux. Il comando ncpmount viene utilizzato per questo scopo, e richiede la specifica delle seguenti informazioni:

  1. Nome del fileserver
  2. Identificativo di login nel fileserver. Se esiste, deve essere specificata anche una password.
  3. Il punto di mount, ossia dove si desidera montare la condivisione. Si tratterà di una directory esistente sulla macchina.

Esiste un comando equivalente ncpumount per smontare un filesystem NCP precedentemente montato. I filesystem NCP saranno smontati in modo corretto se si esegue un normale shutdown della macchina; pertanto non bisogna preoccuparsi di eseguire il comando npcumount manualmente prima di arrestare il sistema con halt oppure shutdown.

Esempio di comando per montare il fileserver ACCT_FS01, con login guest, senza password, corrispondente alla directory /mnt/Accounts:

# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n

Si noti l'utilizzo dell'opzione -n per indicare che il login non richiede alcuna password. Stesso login con password secret avrebbe forma:

# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret

Se non si specifica né l'opzione -n, né -P, allora il sistema richiederà una password.

Verifica del mount

Se l'esecuzione è terminata con successo, tutte le unità accessibili all'utente specificato durante il login, saranno elencate come directory sotto il punto di mount. Dovrebbe anche essere possibile percorrere la struttura delle directory per trovare altri file. Alternativamente si può usare l'opzione -V per montare un singolo volume.

NCP non fornisce uid (identificativo utente) o gid (identificativo di gruppo) per la proprietà dei file, tutti i file avranno le autorizzazioni e le proprietà assegnate alla directory che rappresenta il punto di mount, condizionate dai permessi concessi dal server Novell. È necessario tenerne conto quando si effettuano condivisioni tra utenti Linux.

Configurazione per l'esecuzione automatica dei mount.

Se si ha la necessità di avere un mount NCP permanente, è possibile configurare i comandi precedentemente descritti all'interno di file rc, in modo che vengano eseguiti all'avvio del sistema. Nel caso in cui la distribuzione utilizzata non fornisca un metodo per configurare IPX (come Debian), si consiglia di impostare i comandi nel file /etc/rc.local, se esiste. È possibile utilizzare comandi del tipo:

#
# Avvio del filesystem NCP
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o

# Configurazione della rete IPX 
ipx_configure --auto_interface=on --auto_primary=on

# login all'Accounting fileserver
ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n

#

Un altro metodo di configurazione consiste nell'elencare nel file $HOME/.nwclient i mount NCP temporanei o specifici per l'utente che verranno eseguiti regolarmente. È possibile memorizzare specifiche in modo da impostarle senza doverle indicare ogni volta. Il formato è molto semplice:

# Il primo inserimento rappresenta il server "preferenziale" che verrà 
# utilizzato ogni volta non sia specificato esplicitamente un server.
#
# Login utente TERRY al fileserver DOCS_FS01 con password "password"
DOCS_FS01/TERRY password
#
# Login utente Guest al fileserver ACCT_FS01 senza password.
ACCT_FS01/GUEST -

Per attivare questi mount si può utilizzare il comando:

$ ncpmount /home/terry/docs

per montare DOCS_FS01 con login TERRY sotto la directory /home/terry/docs. Si noti che è stato utilizzato il fileserver DOCS_FS01 perché non ne è stato specificato alcun altro nel comando di mount. Se fosse stato utilizzato il comando:

$ ncpmount -S ACCT_FS01 /home/terry/docs

allora sarebbe stato montato il fileserver ACCT_FS01 con login GUEST.

Nota: affinché questo meccanismo funzioni, l'autorizzazione per il file $HOME/.nwclient deve essere 0600. Potrebbe essere necessario utilizzare il comando:

$ chmod 0600 $HOME/.nwclient

Se anche degli utenti non root devono essere autorizzati a utilizzare questo meccanismo, allora il comando npcmount deve essere Set Userid Root. Ne consegue che potrebbe essere necessario attribuirgli le autorizzazioni:

# chmod 4755 ncpmount

Collaudo dell'utility nsend.

Il pacchetto include anche un utility per inviare messaggi a utenti Novell. Il suo nome è nsend e viene utilizzato come di seguito riportato:

# nsend rod hello there

invia il messaggio "hello there" a un utente con login "rod" sul fileserver "primario" (ossia il primo che appare nel proprio file .nwclient). È possibile specificare un altro fileserver con la stessa sintassi descritta per il comando ncpmount.


Avanti Indietro Indice