The Linux Networking Overview HOWTO
Daniel L�pez Ridruejo,
[email protected]
v0.31, 17 settembre 1999
Lo scopo di questo documento � di dare una panoramica alle possibilit�
di rete del sistema operativo Linux e di fornire puntatori a ulteriori
informazioni e dettagli implementativi. Traduzione di Salvatore
Passerini(
[email protected]).
1. Introduzione
Lo scopo di questo documento � di dare una panoramica delle
possibilit� di rete del sistema operativo Linux. Sebbene uno dei
punti di forza di Linux � il fatto che ci sono moltissime informazioni
disponibili praticamente su ogni cosa, molte di queste sono
focalizzate sull'implementazione. Molti nuovi utenti di Linux, in
particolare coloro che provengono da un ambiente Windows, non sono
consci delle possibilit� di networking che offre Linux. Questo
documento vuole mostrare una rappresentazione generica di tali
possibilit� con una breve descrizione di ognuna di esse e puntatori
per avere ulteriori informazioni. Le informazioni sono state raccolte
da molte fonti: howto, faq, pagine web dei progetti e dalla mia
esperienza personale. Ai diversi autori sono riconosciuti i loro
meriti. Senza di loro e i loro programmi questo documento non sarebbe
stato possibile o necessario.
2. Linux
2.1. Cos'� Linux?
L'autore principale di Linux � Linus Torvalds. Sin dalla sua versione
originale, � stato migliorato da un numero imprecisato di persone. �
un clone, scritto partendo dal nulla, del sistema operativo UNIX. Uno
dei fatti pi� interessanti su Linux � che il suo sviluppo avviene
contemporaneamente in tutto il mondo.
Linux � sotto copyright nei termini della GNU General Public License
(GPL). Questa licenza, scritta dalla Free Software Foundation (FSF), �
pensata per impedire a chiunque di imporre restrizioni sulla
distribuzione del software. In breve, dice che sebbene possano essere
richiesti dei soldi per una copia, alla persona che riceve la copia
non pu� essere impedito di distribuirla gratuitamente. Ci� significa,
inoltre, che dev'essere reso disponibile il codice sorgente. Questo �
utile per i programmatori. Chiunque pu� modificare Linux e persino
distribuire le sue modifiche, a patto che mantenga il codice sotto il
medesimo copyright.
2.2. Che cosa rende Linux diverso?
Perch� lavorare su Linux? Linux generalmente � pi� economico (o
almeno non pi� costoso) di altri sistemi operativi e frequentemente
meno problematico di molti sistemi commerciali. Ci� che rende Linux
diverso, tuttavia, non � il suo prezzo (dopo tutto, chi vorrebbe un
sistema operativo, anche se fosse gratis, se non funzionasse bene?) ma
le sue notevoli possibilit�:
� Linux � un vero sistema operativo multitasking a 32 bit, abbastanza
robusto e potente da essere usato da universit� fino a grosse
aziende.
� Funziona su vecchie macchine 386 fino a macchine con parallelismo
massiccio dei centri di ricerca.
� Sono disponibili versione pronte all'uso per architetture
Intel/Alpha/Sparc, e supporto sperimentale per Power PC e sistemi
embedded oltre a molti altri (SGI, Ultra Sparc, AP1000+, Strong
ARM, MIPS R3000/R4000...)
� Per finire, quando si vuole fare qualcosa in rete, Linux � la
scelta giusta. Non solo perch� la rete � strettamente integrata
nel S.O. stesso e sono liberamente disponibili una pletora di
applicazioni, ma soprattutto per la sua robustezza anche sotto
carichi elevati che � potuta essere stata raggiunta solo dopo anni
di debug e di test nel progetto Open Source.
3. Protocolli di rete
Linux supporta molti protocolli di rete diversi:
3.1. TCP/IP
L'Internet Protocol � stato sviluppato una ventina di anni fa dal
Dipartimento della Difesa (DoD) degli Stati Uniti, principalmente con
lo scopo di connettere computer di diverse marche. La suite di
protocolli TCP/IP permette, attraverso la sua struttura a strati, di
isolare le applicazioni dall'hardware di rete.
Sebbene sia basato sul modello a strati, � focalizzato pi� sulla
distribuzione della interconnettivit� che sull'aderenza rigida agli
strati funzionali. Questo � una delle ragioni per cui di fatto
TCP/IP, piuttosto che OSI, � diventato il protocollo di
internetworking standard.
Il networking TCP/IP � stato presente in Linux sin dagli inizi. �
stato implementato partendo da zero. � una delle implementazioni pi�
robuste, veloci e affidabili e uno dei fattori chiave del successo di
Linux.
HOWTO Collegato:
http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html
3.2. TCP/IP versione 6
IPv6, qualche volta detto anche IPng (IP Next Generation) � un
aggiornamento del protocollo IPv4 indirizzato alla risoluzione e al
miglioramento di diversi fattori. Fra questi: la scarsit� di
indirizzi IP disponibili, la mancanza di un meccanismo per gestire
traffico sensibile all'orario, la mancanza di sicurezza a livello di
rete, ecc.
L'incremento nello spazio di indirizzamento sar� accompagnato da uno
schema di indirizzamento espanso, che avr� un grande impatto sulle
prestazioni dell'instradamento. Per Linux esiste gi� un
implementazione beta e una versione stabile � attesa per la versione
2.2.0 del kernel Linux.
� Linux IPv6 HOWTO:
http://www.terra.net/ipv6/linux-ipv6.faq.htm
� IPv6 start page:
http://playground.sun.com/pub/ipng/html/ipng-
main.html
3.3. IPX/SPX
IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange) � uno
stack di protocollo proprietario sviluppato da Novell e basato sul
protocollo Xerox Network Systems (XNS). IPX/SPX � diventato
importante nei primi anni '80 come parte integrante di NetWare della
Novell Inc. NetWare � diventato lo standard de facto nei sistemi
operativi di rete (NOS - Network Operating System) della prima
generazione di LAN. Novell ha completato il suo NOS con una suite di
applicazioni orientate al business e con utilit� di connessione per il
lato client.
Linux ha un'implementazione di IPX/SPX molto elegante, che gli
permette di essere configurato come
� IPX router
� IPX bridge
� NCP client e/o NCP Server (per la condivisione dei file)
� Novell Print Client, Novell Print Server
E di:
� Abilitare PPP/IPX, permettendo a una macchina Linux di comportarsi
sia come client sia come server PPP.
� Tunnelling IPX attraverso IP, che permette la connessione di due
reti IPX attraverso un semplice collegamento IP.
Inoltre, Caldera <
http://www.caldera.com> offre il supporto
commerciale per Novell Netware sotto Linux. Caldera fornisce un
client Novell NetWare completo basato su tecnologia sotto licenza di
Novell Corporation. Il client fornisce una completa accessibilit� ai
server di file basati su Novell 3.x e 4.x e include caratteristiche
quali il Servizio di Directory NetWare (NDS) e la crittografia RSA.
� IPX HOWTO:
http://metalab.unc.edu/mdw/HOWTO/IPX-HOWTO.html
3.4. Suite di protocolli AppleTalk
Appletalk � il nome dello stack di rete della Apple. Permette un
modello di rete paritetico, fornendo funzionalit� di base come la
condivisione di file e stampanti. Ogni macchina pu� funzionare
simultaneamente sia come un client che come server, e sia il software
che l'hardware necessari sono inclusi in qualsiasi computer Apple.
Linux fornisce supporto completo per le reti Appletalk. Netatalk �
l'implementazione a livello kernel dell'Appletalk Protocol Suite,
derivata da sistemi BSD. Include il supporto per l'instradamento
Appletalk, la condivisione di filesystem Unix e AFS su AFP
(AppleShare), la condivisione di stampanti Unix e l'accesso a
stampanti Appletalk tramite PAP.
Si veda la sezione 5.1 per maggiori informazioni.
3.5. WAN Networking: X.25, Frame-relay, ecc...
Molte terze parti forniscono prodotti T-1, T-3, X.25 e Frame Relay per
Linux. In genere � necessario hardware specifico per questi tipi di
connessione. I produttori che forniscono l'hardware procurano anche i
driver per il supporto del protocollo.
� Risorse WAN per Linux:
http://www.secretagent.com/networking/wan.html
3.6. ISDN
Il kernel Linux ha al suo interno il supporto per ISDN. Isdn4linux
controlla le schede ISDN per PC e pu� emulare un modem con l'insieme
dei comandi Hayes (i comandi "AT"). Le possibilit� vanno dal semplice
uso di un programma di terminale per connessioni via HDLC (usando il
dispositivo incluso), alla completa connessione Internet via PPP fino
alle applicazioni audio.
� FAQ per isdn4linux:
http://www.lrz-
muenchen.de/~ui161ab/www/isdn/faq_e.html
3.7. PPP, SLIP, PLIP
Il kernel Linux ha al suo interno il supporto per PPP (Point-to-Point-
Protocol - Protocollo Punto Punto), SLIP (Serial Line IP - IP su Linea
Seriale) e PLIP (Parallel Line IP - IP su Linea Parallela). PPP � il
metodo pi� popolare usato dai singoli utenti per accedere al proprio
ISP (Internet Service Provider). PLIP permette di effettuare in
maniera economica una connessione fra due macchine. Usa la porta
parallela ed un cavo speciale, raggiungendo velocit� che vanno da
10kBps fino a 20kBps.
� Linux PPP HOWTO <
http://metalab.unc.edu/mdw/HOWTO/PPP-HOWTO.html>
� PPP/SLIP emulator <
http://metalab.unc.edu/mdw/HOWTO/mini/SLIP-PPP-
Emulator.html>
� Informazioni su PLIP possono essere trovate in The Network
Administrator Guide <
http://metalab.unc.edu/mdw/LDP/nag/nag.html>
3.8. Radioamatori
Il kernel Linux ha al suo interno il supporto per i protocolli dei
radioamatori.
Di particolare interesse � il supporto AX.25. Il protocollo AX.25
offre modi di funzionamento sia in maniera connessa (connected) che
non connessa (connectionless), ed � usato o per una connessione punto
punto oppure per trasportare altri protocolli come TCP/IP e NetRom.
La sua struttura � simile a X.25 livello 2, con alcune estensioni per
renderlo pi� utile in ambito radioamatoriale.
� Amateur radio HOWTO <
http://metalab.unc.edu/mdw/HOWTO/HAM-
HOWTO.html>
3.9. ATM
Il supporto ATM per Linux attualmente � in uno stato pre alpha. C'�
una release sperimentale che supporta connessioni ATM raw (PVC e SVC),
IP su ATM, emulazione di LAN...
� Linux ATM-Linux home page <
http://lrcwww.epfl.ch/linux-atm/>
4. Hardware di rete supportato
Linux supporta una grande variet� di hardware di rete, compreso molto
hardware ormai obsoleto.
Alcuni documenti interessanti:
� Hardware HOWTO <
http://metalab.unc.edu/mdw/HOWTO/Hardware-
HOWTO.html>
� Ethernet HOWTO <
http://metalab.unc.edu/mdw/HOWTO/Ethernet-
HOWTO.html>
5. Condivisione di file e stampanti
La scopo primario di molte reti locali (Local Area Network) basate su
PC � di fornire ai propri utenti la condivisione dei servizi di stampa
e di accesso ai file. Linux � una grande soluzione ai server
aziendali per tali servizi.
5.1. Ambiente Apple
Come evidenziato nelle precedenti sezioni, Linux supporta la famiglia
di protocolli Appletalk. Il netatalk di Linux permette ai client
Macintosh di vedere i Sistemi Linux come altri Macintosh nella rete,
condividere file e usare stampanti connesse ai server Linux.
FAQ e HOWTO su netatalk:
�
http://thehamptons.com/anders/netatalk/
�
http://www.umich.edu/~rsug/netatalk/
�
http://www.umich.edu/~rsug/netatalk/faq.html
5.2. Ambiente Windows
Samba � una suite di applicazioni che permette a molti Unix (e in
particolare a Linux) di integrarsi in una rete Microsoft sia come
client sia come server. Funzionando da server si permette ai client
Windows 95, Windows for Workgroups, DOS e Windows NT di accedere ai
file e ai servizi di stampa di Linux. Pu� sostituire completamente
Windows NT per i servizi sui file e sulla stampa, incluso il download
automatico nei client dei driver di stampa. Funzionando come client
permette alla workstation Linux di montare localmente le condivisioni
esportate di Windows.
Secondo la SAMBA Meta-FAQ:
"Molti utenti dicono che rispetto ad altre implementazioni di SMB,
Samba � pi� stabile, veloce e compatibile con pi� client. Gli
amministratori di alcune grosse installazioni dicono che Samba � il
solo server SMB che pu� essere scalato da molte decine a migliaia di
utenti senza andare in crash"
� Samba project home page <
http://samba.anu.edu.au/samba/>
� Samba HOWTO <
http://metalab.unc.edu/mdw/HOWTO/SMB-HOWTO.html>
� Printing HOWTO <
http://metalab.unc.edu/mdw/HOWTO/Printing-
HOWTO.html>
5.3. Ambiente Novell
Come evidenziato nei paragrafi precedenti, Linux pu� essere
configurato per funzionare sia come client sia come server NCP,
fornendo quindi il servizio di condivisione di file e stampanti in una
rete Novell sia per client Unix sia per client Novell.
� IPX HOWTO <
http://metalab.unc.edu/mdw/HOWTO/IPX-HOWTO.html>
5.4. Ambiente UNIX
La modalit� preferenziale per la condivisione dei file in una rete
UNIX � tramite NFS. NFS sta per Network File Sharing ed � un
protocollo inizialmente sviluppato da Sun Microsystems. � un metodo
per condividere file attraverso pi� macchine come se fossero locali.
Un client ``monta'' un file system ``esportato'' da un server NFS. Il
filesystem cos� montato apparir� alla macchina client come fosse parte
del filesystem locale.
� possibile montare il filesystem di root all'avvio, permettendo
quindi il boot e l'accesso a tutti i file di un server a client
diskless. In parole povere, � possibile avere macchine completamente
funzionananti senza che queste abbiano un disco fisso.
Coda � un file system di rete (come NFS) che supporta, tra le altre
cose, il funzionamento senza connessione e la cache permanente. �
incluso nei kernel 2.2.x. Molto utile per reti lente o poco affidabili
e per i portatili.
Documenti relativi a NFS:
�
http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Diskless.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root-Client.html
�
http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html
�
http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
Coda pu� essere reperito a
http://www.coda.cs.cmu.edu
6. Internet/Intranet
Linux � una grande piattaforma per il funzionamento come Server
Internet/intranet. Il termine intranet fa riferimento
all'applicazione delle tecnologie di Internet dentro a un azienda,
principalmente con lo scopo di distribuire e rendere disponibili
informazioni all'interno della societ�. I servizi Internet e intranet
offerti da Linux comprendono, tra gli altri, server per email, news e
WWW e molti altri che saranno spiegati nei paragrafi successivi.
6.1. E-Mail
6.1.1. Server E-Mail
Sendmail � di fatto il programma server per la posta elettronica
standard per piattaforme UNIX. � robusto, scalabile e, adeguatamente
configurato e dotato dell'hardware necessario, pu� gestire carichi di
migliaia di utenti senza fare una piega. Altri server di e-mail (MTA
- Mail Transport Agent - Agenti di Trasporto della Posta) sono, per
esempio, smail e qmail, entrambi progettati come rimpiazzo per
sendmail.
� Sito web di Sendmail <
http://www.sendmail.org/>
� Smail faq <
http://www.sbay.org/smail-faq.html>
� Qmail web site <
http://www.qmail.org>
Mail HOWTO:
�
http://metalab.unc.edu/mdw/HOWTO/Mail-HOWTO.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Qmail+MH.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Sendmail+UUCP.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Mail-Queue.html
6.1.2. Accesso remoto alla posta
In un'azienda o in un ISP, gli utenti vorranno accedere alla loro
posta in maniera remota dalle loro postazioni di lavoro. In Linux
esistono diverse alternative, tra cui i server POP (Post Office
Protocol) e IMAP (Internet Message Access Protocol). Il protocollo
POP solitamente � usato per trasferire messaggi dal server al client.
IMAP permette anche la manipolazione dei messaggi nel server, la
creazione e cancellazione remota di folder (cartelle di posta) nel
server, l'accesso concorrente a folder condivisi, ecc.
� Breve confronto tra IMAP e POP (in inglese)
<
http://www.imap.org/imap.vs.pop.brief.html>
HOWTO relativi all'email:
�
http://metalab.unc.edu/mdw/HOWTO/Mail-HOWTO.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Cyrus-IMAP.html
6.1.3. Mail User Agent
In Linux esistono diversi MUA (Mail User Agent), sia grafici che
testuali. Fra i pi� usati ci sono: pine, elm, mutt e Netscape.
� Elenco del software relativo all'email
<
http://www.linuxlinks.com/Software/Internet/Mail/>
�
http://metalab.unc.edu/mdw/HOWTO/mini/TkRat.html
6.1.4. Software per mailing list
Ci sono molti programmi di MLM (Mail List Management - Gestione di
Mail List) disponibili per i generici UNIX e in particolare per Linux.
� Un buon confronto tra i diversi MLM pu� essere reperito a:
ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/
� Listserv <
http://www.lsoft.com/>
� Majordomo home page <
http://www.greatcircle.com/majordomo/>
6.1.5. Fetchmail
Un utile programma per la posta � fetchmail. Ha molte funzionalit�, �
robusto, ben documentato e gratuito. � stato pensato per essere usato
su collegamenti TCP/IP provvisori (come ad esempio nelle connessioni
SLIP o PPP). Supporta ogni protocollo di posta remota in uso
attualmente su Internet. Pu� supportare anche IPv6 e IPSEC.
Fetchmail recupera la posta dal server di posta remoto e la inoltra
via SMTP, in modo che possa essere letta dai normali agenti di posta
quali mutt, elm o BSD Mail. Possiede tutte le capacit� di filtraggio,
inoltro e aliasing del sistema MTA per lavorare come con la posta
normale.
Fetchmail pu� essere usato come gateway da POP/IMAP a SMTP per
l'intero dominio DNS, riunendo la posta da una singola mailbox su un
ISP e inoltrandola via SMTP basandosi sugli indirizzi degli header.
Una piccola azienda potrebbe centralizzare la sua posta in una singola
mailbox e programmare fetchmail per riunire tutta la posta uscente,
inviarla su Internet e recuperare quella entrante.
� Fetchmail home page <
http://sagan.earthspace.net/~esr/fetchmail/>
6.2. Server Web
La maggior parte delle distribuzioni di Linux includono Apache
<
http://www.apache.org>. Apache � il server numero uno in Internet
http://www.netcraft.co.uk/survey/ dove pi� di met� dei siti Internet
usano Apache o un suo derivato. Tra i vantaggi di Apache si hanno la
sua modularit�, stabilit� e velocit�. Dotato di hardware appropriato
e opportunamente configurato pu� supportare i carichi pi� elevati:
Yahoo, Altavista, GeoCities, Hotmail sono basati su versioni
personalizzate di questo server.
Il supporto opzionale per SSL (che abilita le transizioni sicure) �
disponibile a:
�
http://www.apache-ssl.org/
�
http://raven.covalent.net/
�
http://www.c2.net/
HOWTO collegati:
�
http://metalab.unc.edu/mdw/HOWTO/WWW-HOWTO.html
�
http://metalab.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html
�
http://metalab.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html
� Web server per Linux
<
http://www.linuxlinks.com/Software/Internet/WebServers/>
6.3. Browser Web
Per la piattaforma Linux esistono diversi browser web. Netscape
Navigator � una delle possibili scelte sin dall'inizio e il
sopraggiungente Mozilla (
http://www.mozilla.org) avr� una versione
Linux. Un altro popolare browser web testuale � lynx. � veloce e
maneggevole quando non � disponibile alcun ambiente grafico.
� Software browser per Linux
<
http://www.linuxlinks.com/Software/Internet/WebBrowsers/>
�
http://metalab.unc.edu/mdw/HOWTO/mini/Public-Web-Browser.html
6.4. Server e client FTP
FTP sta per File Transfer Protocol (Protocollo di Trasferimento File).
Un server FTP permette ai client di connettersi e di recuperare
(scaricare) file. Per Linux esistono molti server e client ftp e sono
solitamente inclusi nella maggior parte delle distribuzioni. Esistono
sia client testuali che grafici. Il software (server e client)
relativo all'FTP per Linux pu� essere trovato a:
http://metalab.unc.edu/pub/Linux/system/network/file-transfer/
6.5. Servizio news
Usenet (noto anche come news) � un grande sistema a bacheca (BBS)
organizzato gerarchicamente che ricopre ogni genere di argomento. Una
rete di computer su Internet (Usenet) scambia articoli attraverso il
protocollo NNTP. Ne esistono molte implementazioni per Linux, sia per
siti con un alto carico sia per siti che ricevono solo pochi
newsgroup.
� INN home page <
http://www.isc.org/>
� Software Linux per le news
<
http://www.linuxlinks.com/Software/Internet/News/>
6.6. Domain Name System
Il lavoro di un server DNS � quello di tradurre nomi (leggibili per
gli esseri umani) in indirizzi IP. Un server DNS non conosce tutti
gli indirizzi IP al mondo; piuttosto � in grado di effettuare
richieste ad altri server in caso di indirizzi sconosciuti. Il server
DNS allora restituir� all'utente l'indirizzo IP desiderato oppure dir�
che il nome non pu� essere trovato nelle tabelle.
Il name serving su Unix (e sulla maggioranza dei sistemi in Internet)
� svolto da un programma chiamato named, che fa parte del pacchetto
integrato dell'Internet Software Consortium.
� BIND <
http://www.isc.org/>
� DNS HOWTO <
http://metalab.unc.edu/mdw/HOWTO/DNS-HOWTO.html>
6.7. DHCP, bootp
DHCP e bootp sono protocolli che permettono a una macchina client di
ottenere informazioni sulla rete (come per esempio il proprio
indirizzo IP) da un server. Molte organizzazioni hanno iniziato a
usarli in quanto facilitano l'amministrazione specialmente in grandi
reti o in reti che hanno un gran numero di utenti mobili.
Documenti correlati:
� DHCP HOWTO <
http://metalab.unc.edu/mdw/HOWTO/mini/DHCP.html>
6.8. NIS
Il Network Information Service (NIS, o servizio di informazione di
rete) fornisce un semplice servizio di consultazione di rete
consistente in database e processi. Il suo scopo � quello di fornire
informazioni, che devono essere conosciute da un capo all'altro della
rete, a tutte le macchine sulla rete stessa. Esso permette, per
esempio, che una persona possa effettuare il login su una qualsiasi
macchina sulla quale giri NIS senza bisogno che l'amministratore di
sistema debba aggiungere una voce per la password per ogni macchina,
ma solo nel database principale.
HOWTO correlato:
� NIS HOWTO <
http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html>
6.9. Autenticazione
Ci sono molti modi di autenticare gli utenti in reti miste
� Linux/WindowsNT:
http://www.mindware.com.au/ftp/smb-NT-
verify.1.1.tar.gz
� Il PAM (pluggable authentication module) che � un sistema
flessibile di autenticazione UNIX: PAM library
<
http://www.kernel.org/pub/linux/libs/pam/index.html>.
� Infine, LDAP in Linux
<
http://www.umich.edu/~dirsvcs/ldap/index.html>
7. Esecuzione remota di applicazioni
Una delle caratteristiche pi� affascinanti di Unix (e una delle pi�
sconoscite ai nuovi utenti) � il grande supporto per l'esecuzione
remota e distribuita di applicazioni.
7.1. Telnet
Telnet � un programma che permette a una persona di usare un computer
remoto come se si trovasse veramente su quella macchina. Telnet � uno
degli strumenti pi� potenti di UNIX, che permette una reale
amministrazione da remoto. � anche un programma interessante dal
punto di vista degli utenti, poich� permette l'accesso remoto a tutti
i loro file e programmi da qualsiasi parte di Internet. Combinato con
un X server, non c'� nessuna differenza (trascurando il ritardo) tra
essere in console o in qualsiasi altra parte del pianeta. I demoni e
client telnet sono disponibili con la maggior parte delle
distribuzioni di Linux.
Sessioni shell remote sono possibili attraverso SSH
(
http://www.cs.hut.fi/ssh/) che quindi permette l'effettiva
amministrazione sicura in remoto.
� Software relativo a Telnet
<
http://metalab.unc.edu/pub/Linux/system/network/telnet/>
7.2. Comandi remoti
In Unix, e in particolar modo in Linux, esistono comandi remoti che
permettono l'interazione con altri computer dal prompt della shell.
Esempi sono: rlogin, che permette di accedere a una macchina remota in
maniera simile al telnet, rcp, che permette trasferimenti remoti di
file fra macchine, ecc. Infine, il comando di shell remoto rsh
permette l'esecuzione di un comando su una macchina remota senza dover
accedere a tale macchina.
7.3. X-Window
Il sistema X-Window � stato sviluppato al MIT alla fine degli anni '80
ed � rapidamente diventato il sistema standard di gestione finestre
nelle workstation grafiche UNIX. Questo software � liberamente
disponibile, molto versatile e adattabile a una gran variet� di
piattaforme hardware. Consiste di due parti distinte: il server X e
uno o pi� client X. � importante capire la distinzione fra il server e
il client. Il server controlla direttamente il display ed �
responsabile di tutto l'input/output della tastiera, del mouse o del
display. I client, d'altra parte, non accedono direttamente allo
schermo, ma comunicano col server, che gestisce tutti gli I/O. Sono i
client che svolgono il lavoro ``reale'' di calcolo, facendo girare
applicazioni e quant'altro. I client comunicano col server causando
l'apertura, da parte di quest'ultimo, di una o pi� finestre per
gestire l'input-output di ogni client.
Brevemente, il sistema X-Window permette a un utente di connettersi a
una macchina remota, eseguire un processo (per esempio aprire un
browser Web) e avere l'output mostrato sulla propria macchina. Poich�
il processo � attualmente eseguito sul server, � necessaria poca
potenza di calcolo da parte della CPU del client. � quindi possibile
avere computer il cui scopo principale � quello di agire come puri
client X-Window; essi sono conosciuti come terminali-X.
Esiste per Linux una versione gratuita del sistema X-Window che pu�
essere trovata in: Xfree <
http://www.xfree86.org/>. Essa � normalmente
inclusa nella maggior parte delle distribuzioni Linux.
HOWTO correlati:
� How-to per applicazioni X remote
<
http://metalab.unc.edu/mdw/HOWTO/mini/Remote-X-Apps.html>
7.4. VNC
VNC sta per Virtual Network Computing. Esso �, essenzialmente, un
sistema di visualizzazione remota che permette di vedere un ambiente
di calcolo `a scrivania' (desktop) non solo sulla macchina ove esso
sta girando, ma ovunque su Internet e su una gran quantit� di
architetture differenti. Esistono per Linux, cos� come per molte altre
piattaforme, sia il client che il server. � possibile eseguire MS-
Word in una macchina Windows NT o 95 e avere l'output mostrato su di
una macchina Linux. � anche possibile l'opposto, cio� eseguire
un'applicazione su una macchina Linux e avere l'output mostrato su
un'altra macchina Linux o Windows. Esiste un client Java che permette
di far girare il display remoto all'interno di un web browser. Infine
c'� una versione per Linux che usa le librerie grafiche SVGAlib,
permettendo ai 386 con solo 4Mb di RAM di diventare terminali X
perfettamente funzionanti.
� Sito web di VNC <
http://www.uk.research.att.com/vnc>
8. Interconnessioni di rete
Le funzionalit� di rete di Linux sono ricche di possibilit�: una
stazione Linux pu� essere configurata in modo da comportarsi come
router, bridge ecc... Alcune delle possibili opzioni sono descritte di
seguito.
8.1. Router
Il kernel di Linux ha un supporto integrato per le funzioni di
instradamento (routing). Una stazione Linux pu� comportarsi come
router sia IP che IPX a una frazione del costo di un router
commerciale. I recenti kernel includono speciali funzioni per macchine
configurate per agire principalmente come router:
� Multicasting: Permette alla macchina Linux di agire come router
per pacchetti IP che hanno diversi indirizzi di destinazione. Ci� �
necessario in MBONE, una rete a larga banda alla base di Internet
che trasporta diffusioni audio e video.
� Regole di routing IP: Normalmente un router decide cosa fare di un
pacchetto ricevuto basandosi unicamente sull'indirizzo di
destinazione finale del pacchetto ma pu� anche tener conto
dell'indirizzo di provenienza e del dispositivo di rete dal quale
gli � pervenuto il pacchetto.
Ci sono dei progetti che mirano a costruire un router Linux
perfettamente funzionante in un floppy disk: Linux router project
<
http://www.linuxrouter.org>
8.2. Bridge
Il kernel di Linux ha un supporto integrato per agire come un bridge
Ethernet, il che significa che i differenti segmenti Ethernet ai quali
� connesso appariranno come un'unica Ethernet ai partecipanti. Usando
l'algoritmo a misurazione di albero IEEE802.1, molti bridge possono
funzionare insieme per formare reti ancora pi� estese. Allo stesso
modo i bridge Linux funzioneranno correttamente con altri bridge
prodotti da terze parti. Programmi aggiuntivi permettono il filtraggio
basato su indirizzi IP, IPX o MAC.
HOWTO correlati:
� Bridge+Firewall
<
http://metalab.unc.edu/mdw/HOWTO/mini/Bridge+Firewall.html>
� Bridge <
http://metalab.unc.edu/mdw/HOWTO/mini/Bridge.html>
8.3. Mascheramento-IP
Il mascheramento-IP � una funzione di rete ancora in sviluppo. Se un
host Linux � connesso a Internet col mascheramento-IP abilitato e
altri computer si connettono a esso (sia dalla stessa LAN sia
dall'esterno tramite modem), questi possono benissimo connettersi ad
Internet a loro volta bench� non abbiano indirizzi IP ufficialmente
assegnati. Ci� permette una riduzione dei costi (dal momento che molte
persone possono accedere a Internet usando una singola connessione
modem) e contribuisce a incrementare la sicurezza (in qualche modo la
macchina si comporta come un firewall, dal momento che gli indirizzi
non ufficiali assegnati non possono essere raggiunti dall'esterno
della rete).
Pagine e documenti relativi al mascheramento-IP:
�
http://ipmasq.home.ml.org/
�
http://www.indyramp.com/masq/links.pfhtml
�
http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html
8.4. Accounting IP
Con questa opzione del kernel di Linux si pu� tener traccia del
traffico di rete IP, registrare i pacchetti e produrre delle
statistiche. Possono essere definite una serie di regole in modo che,
quando un pacchetto rispecchia un certo modello venga incrementato un
contatore oppure tale pacchetto sia accettato, rifiutato ecc...
8.5. Aliasing IP
Questa caratteristica del kernel d� la possibilit� di assegnare pi�
indirizzi di rete per lo stesso driver di dispositivo di rete a basso
livello (ad esempio due indirizzi IP per una stessa scheda Ethernet).
� tipicamente usata per quei servizi che si comportano diversamente a
seconda dell'indirizzo che vedono (ad esempio ``multihosting'' o
``virtual domains'' o ``virtual hosting services'').
HOWTO Collegati:
� IP Aliasing HOWTO <
http://metalab.unc.edu/mdw/HOWTO/mini/IP-
Alias.html>
8.6. Controllo del traffico
Il controllore del traffico � un dispositivo di rete virtuale che
rende possibile limitare l'entit� del flusso di dati uscente verso
un'altro dispositivo di rete. Questo � utile specialmente in quegli
scenari (come per ISP), nei quali � desiderabile una politica di
controllo circa quanta larghezza di banda � usata da ogni client. Una
differente alternativa (valida solo per i servizi Web) potrebbe essere
l'utilizzo di certi moduli di Apache che pongono restrizioni sul
numero di connessioni IP del client o sulla larghezza di banda usata.
�
http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html#ss6.15
8.7. Firewall
Un firewall � un dispositivo che protegge una rete privata dalla parte
pubblica (l'intera Internet). � disegnato per controllare il flusso
dei pacchetti basandosi sulle informazioni di origine, destinazione,
porta e tipo contenute in ogni pacchetto.
Esistono per Linux diversi programmi per il firewall, oltre al
supporto integrato nel kernel, come TIS e SOCKS, che sono molto
completi e, combinati con altri strumenti, permettono il blocco e la
reindirizzazione di ogni tipo di traffico e protocollo. Possono essere
adottate diverse politiche attraveso file di configurazione o
programmi a interfaccia grafica.
� TIS home page <
http://www.tis.com>
� SOCKS <
http://www.socks.nec.com/socksfaq.html>
� Firewall HOWTO <
http://metalab.unc.edu/mdw/HOWTO/Firewall-
HOWTO.html>
8.8. Re-invio su porta (port forwarding)
Un numero sempre crescente di siti Web stanno diventando interattivi
grazie ai cgi-bin e agli applet Java che accedono a database o ad
altri sevizi. Dal momento che tale accesso potrebbe portare a problemi
di sicurezza, la macchina che contiene il database non dovrebbe essere
connessa direttamente a Internet.
Il re-invio su porta pu� fornire una soluzione quasi ideale a questo
problema di accesso: sul firewall, i pacchetti IP che arrivano a uno
specifico numero di porta, possono essere riscritti e re-inviati al
server interno che fornisce il servizio attuale. I pacchetti di
risposta provenienti dal server interno sono riscritti in modo da
farli apparire come provenienti dal firewall.
Informazioni sul re-invio su porta possono essere trovate qui
<
http://www.ox.compsoc.net/~steve/portforwarding.html>
8.9. Bilanciamento del carico
L'esigenza di avere un bilanciamento del carico sorge di solito per
accessi a Web o a database quando molti client emettono richieste
contemporanee a un server. Sarebbe auspicabile disporre di un certo
numero di server identici e indirizzare le successive richieste a
quello di volta in volta meno carico. Ci� pu� essere ottenuto
attraverso la tecnica di Network Address Translation (traduzione di
indirizzi di rete) (NAT) della quale il mascheramento IP � un
sottoinsieme. Gli amministratori di rete possono sostituire un singolo
server che fornisce servizi Web - o qualsiasi altra applicazione - con
un insieme di server logici che condividono un indirizzo IP comune. Le
connessioni entranti sono dirette verso un server particolare seguendo
un algoritmo di bilanciamento del carico. Il server virtuale riscrive
i pacchetti entranti e uscenti in modo che i client abbiano un accesso
trasparente al server come se ne esistesse uno solo.
Informazioni sull'IP-NAT di Linux possono essere trovate qui
<
http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/>
8.10. EQL
EQL � integrato all'interno del kernel Linux. Se esistono due
connessioni seriali verso qualche altro computer (solitamente ci�
richiede la disponibilit� di due modem e di due linee telefoniche) e
su di esse sono usati SLIP e PPP (protocolli per l'invio di traffico
Internet su linee telefoniche), usando questo driver � possibile far
s� che queste si comportino come un'unica connessione a velocit�
doppia. Ovviamente, dev'essere supportato a entrambi gli estremi
della connessione.
�
http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.2
8.11. Proxy Server
Il termine proxy significa ``fare qualcosa per conto di
qualcun'altro''. In termini di networking, un server proxy pu� agire
per conto di molti client. Un proxy HTTP � una macchina che riceve le
richieste di pagine Web da un'altra macchina (Macchina A). Il proxy
ottiene la pagina richiesta e restituisce il risultato alla Macchina
A. Il proxy pu� avere una cache con le pagine richieste, cosicch� se
un'altra macchina chiede la stessa pagina le viene restituita la copia
in cache. Ci� permette l'uso efficiente delle risorse di banda e
tempi di risposta minori. Come effetto collaterale, poich� le
macchine client non sono direttamente connesse al mondo esterno,
questo � un modo per rendere sicura la rete interna. Un proxy ben
configurato pu� essere tanto efficiente quanto un buon firewall.
Esistono diversi proxy server per Linux. Una soluzione molto popolare
� il modulo proxy di Apache. Una implementazione pi� completa e
robusta di proxy HTTP � SQUID.
� Apache <
http://www.apache.org>
� Squid <
http://squid.nlanr.net/>
8.12. Composizione su richiesta
Lo scopo della composizione su richiesta � quello di far sembrare, in
modo trasparente, che gli utenti abbiano una connessione permanente a
un sito remoto. Di solito c'� un demone che controlla il traffico di
pacchetti: quando ne riceve uno interessante (l'interesse di un
paccheto � definito da una serie di regole, priorit� e permessi)
stabilisce una connessione col termine remoto. Quando il canale �
inoperoso per un certo periodo di tempo, fa cadere la connessione.
� Diald HOWTO <
http://metalab.unc.edu/mdw/HOWTO/mini/Diald.html>
8.13. Tunnelling, IP mobile e reti private virtuali
Il kernel di Linux permette il tunnelling (incapsulamento) di
protocolli. Ad esempio si pu� incapsulare il protocollo IPX dentro il
protocollo IP, permettendo la connessione di due reti IPX attraverso
un collegamento solo IP. Si pu� anche fare tunnelling IP-IP, cosa
essenziale per il supporto degli indirizzi IP mobili e della
diffusione multipla e per i radioamatori (vedere
http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.13).
L'IP mobile introduce miglioramenti nel protocollo che permettono
l'instradamento trasparente di datagrammi IP verso nodi di Internet
mobili. Ogni nodo mobile � sempre identificato attraverso il proprio
indirizzo di base, indipendentemente dal punto di attacco corrente a
Internet; quando si trova lontano da tale base viene associato al nodo
anche un indirizzo di `prossimit�', che fornisce l'informazione sul
punto di attacco a Internet corrente. Il protocollo si occupa di
registrare l'indirizzo di prossimit� con un home agent. L'home agent
invia i datagrammi destinati a un nodo mobile verso l'indirizzo di
prossimit� attraverso l'uso di un tunnel, alla fine del quale, ogni
datagramma � consegnato al nodo mobile.
Il Protocollo di Tunneling Punto-Punto (PPTP) � una tecnologia di rete
che permette l'uso di Internet come una rete privata virtuale sicura
(VPN). Il PPTP � integrato nel Servizio di Accesso Remoto (RAS) che fa
parte di Windows NT Server. Col PPTP gli utenti possono connettersi
con un ISP locale o direttamente a Internet e accedere alla propria
rete come se si trovassero sulla propria scrivania. PPTP � un
protocollo chiuso e la sua sicurezza � stata recentemente compromessa.
Si raccomanda decisamente di utilizzare alternative differenti basate
su Linux, dal momento che queste si basano su standard aperti che sono
stati attentamente esaminati e testati.
� Una implementazione client del PPTP per Linux � disponibile qui
<
http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP/>
Mobile IP:
�
http://www-uk.hpl.hp.com/people/jt/mip.html
�
http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.12
Documenti correlati con le reti private virtuali:
�
http://metalab.unc.edu/mdw/HOWTO/mini/VPN.html
�
http://sites.inka.de/sites/bigred/devel/cipe.html
9. Gestione della rete (Network Management)
9.1. Applicazioni di gestione della rete
Esiste un numero impressionate di strumenti focalizzati nella gestione
della rete e l'amministrazione remota. Alcuni progetti interessanti
per l'amministrazione remota sono linuxconf e webmin:
� Webmin <
http://www.webmin.com/webmin/>
� Linuxconf <
http://www.solucorp.qc.ca/linuxconf/>
Altri strumenti comprendono i tool per l'analisi del traffici di rete,
della sicurezza della rete, di monitoraggio, di configurazione ecc.
Un archivio con molti di questi strumenti pu� essere trovato a Metalab
<
http://www.metalab.unc.edu/pub/Linux/system/network/>
9.2. SNMP
Il Simple Network Management Protocol � un protocollo per la gestione
dei servizi di rete Internet. Permette il monitoraggio e la
configurazione remota di router, brigde, schede di rete, switch, ecc.
Esistono moltissime librerie, client, demoni e programmi di
monitoraggio basati su SNMP per Linux. Una bella pagina che tratta di
SNMP e di software per Linux pu� essere trovata a:
http://linas.org/linux/NMS.html
10. Reti aziendali con Linux
In certe situazioni, � necessario per l'infrastruttura di rete
disporre di meccanismi idonei a garantire la disponibilit� del
servizio per quasi il 100% del tempo. Alcune delle tecniche per
ottenere ci� sono descritte nelle seguenti sezioni. La maggior parte
del materiale seguente pu� essere trovata sull'eccellente sito Web
Linas:
http://linas.org/linux/index.html e su Linux High-Availability
how-to <
http://metalab.unc.edu/pub/Linux/ALPHA/linux-ha/High-
Availability-HOWTO.html>
10.1. Alta disponibilit�
La ridondanza � usata per prevenire il sistema globale dai singoli
punti di guasto. Un server con solo una scheda di rete e un singolo
disco SCSI ha due singoli punti di guasto. L'obiettivo � mascherare
agli utenti le rotture non previste, in modo che questi possano
continuare a lavorare velocemente. Il software per l'alta
disponibilit� � composto da una serie di script e di strumenti che
controllano e scoprono i guasti, muovendo i passi appropriati affinch�
siano ripristinate le normali operazioni notificando il tutto
all'amministratore di sistema.
10.2. RAID
RAID, acronimo di Redundant Array of Inexpensive Disks, � un metodo
che permette l'immagazzinamento delle informazioni su pi� dischi,
usando tecniche come lo striping dei dischi (RAID Livello 0) e il
mirroring di dischi (RAID Livello 1) per ottenere ridondanza, bassa
latenza e/o banda pi� elevata in lettura e/o scrittura, e la
possibilit� di recupero delle informazioni dopo la rottura di un
disco. Sono stati definiti 6 diversi tipi di configurazioni RAID. Ci
sono tre tipi di soluzioni RAID a disposizione degli utenti di Linux:
RAID software, box DASD esterni e controller di dischi RAID.
� RAID Software: il RAID puramente software implementa i diversi
livelli RAID nel codice di gestione dei dischi (dispositivi a
blocchi) del kernel.
� Soluzioni DASD esterne: i DASD (Direct Access Storage Device) sono
box separati dotati di alimentazione propria che forniscono un
cabinet/chassis per sistemare i dischi fissi e appaiono a Linux
come un altro dispositivo SCSI. Sotto molti aspetti, questi
offrono la soluzione RAID pi� robusta.
� Controller di Dischi RAID: i controller per i dischi sono schede da
inserire nel bus ISA/EISA/PCI. Proprio come i normali controller,
sono attaccatti con un cavo ai dischi fissi. Diversamente dai
normali controller per i dischi, i controller RAID implementano
RAID nella scheda stessa, effettuanado tutte le operazioni
necessario per fornire i diversi livelli RAID.
HOWTO sull'argomento:
�
http://metalab.unc.edu/mdw/HOWTO/mini/DPT-Hardware-RAID.html
�
http://metalab.unc.edu/mdw/HOWTO/Root-RAID-HOWTO.html
�
http://metalab.unc.edu/mdw/HOWTO/mini/Software-RAID.html
RAID a linas.org:
�
http://linas.org/linux/raid.html
10.3. Networking con ridondanza
Sostituzione di indirizzi IP (IPAT). Quando un adattatore di rete si
guasta, il suo indirizzo IP dovrebbe essere rilevato da una scheda di
rete funzionante, nello stesso o in un altro nodo. Sostituzione di
indirizzo MAC: quando avviene una sostituzione di indirizzo IP,
bisognerebbe assicurarsi che tutti i nodi della rete aggiornino le
proprie cache ARP (che rappresentano la mappatura fra gli indirizzi IP
e MAC).
Vedere l'HOWTO sull'alta disponibilit� per maggiori dettagli:
http://metalab.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-
HOWTO.html
11. Fonti di informazione
Se doveste incontrare problemi di rete con Linux, vi prego di non
inviarmi domande via posta elettronica. Semplicemente non avrei il
tempo per rispondere. � pi� facile ottenere aiuto attraverso il
newsgroup com.os.linux.networking (accessibile attraverso
http://www.dejanews.com). Prima di inviare un messaggio assicuratevi
di aver letto la documentazione principale. Quindi effettuate una
ricerca nell'archivio news, poich� � possibile che qualcuno abbia gi�
posto la stessa domanda in precedenza (e che qualcuno abbia risposto).
Quando si inviano un messaggio al gruppo, ricordatevi di indicare
tutti i passi seguiti e i messaggi di errore ricevuti. Dove trovare
ulteriori informazioni:
� Linux:
http://www.linux.org
� Linux Documentation Project:
http://metalab.unc.edu/mdw/linux.html
(si veda la Linux Network Administrator Guide)
� Freshmeat: le ultime release del software per Linux.
http://www.freshmeat.net
� Linux link:
http://www.linuxlinks.com/Networking/
� Documentazione in italiano su Linux:
http://www.pluto.linux.it/ildp/
12. Cronologia
� 0.31 (17 settembre 1999) Modificato l'indirizzo del progetto router
(grazie a John Ellis) e aggiunto un altro collegamento PPTP (grazie
a Benjamin Smith)
� 0.30 (6 aprile 1999) Inserita sezione su CODA (grazie a Brian
Ristuccia <mailto:
[email protected]>)
� 0.2-0.29 Correzioni di bug :-) (si vedano i ringraziamenti al
termine di questo documento)
� 0.1 (5 giugno 1998)
13. Ringraziamenti e liberatoria
Questo documento � basato sul lavoro di molte altre persone che hanno
reso possibile per Linux diventare quello che � ora: uno dei migliori
sistemi operativi di rete. Tutti i meriti sono loro. Per redigere
questo documento in maniera semplice ma accurata e per renderlo
completo ma non eccessivamente lungo, � stato compiuto un grande
sforzo. Tuttavia l'autore non si assume alcuna responsabilit� in ogni
circostanza. State usando le informazioni qui contenute a vostro
rischio. Sentitevi liberi di inviarmi per e-mail suggerimenti,
correzioni o commenti su questo documento in modo che io possa
migliorarlo. Altri argomenti che probabilmente saranno trattati nelle
future revisioni potrebbero essere radius, strumenti per il mirroring
web e ftp come wget, analizzatori di traffico, CORBA... e molti altri
che potrebbero essere suggeriti e adatti. Potete raggiungemi a
[email protected]
Per finire vorrei ringraziare Finnbjorn av Teigum, Cesar Kant, Mathieu
Arnold e specialmente Hisakuni Nogami e Phil Garcia per la loro
attenta revisione e i commenti a questo HOWTO. Ho apprezzato molto il
loro aiuto.
Potete trovare una versione di questo documento a
http://www.rawbyte.com/lno/ <
http://www.rawbyte.com/lno>.
Daniel Lopez Ridruejo 17 Sept 1999