[>a2118.html>] [<a2116.html<] [^a2.html^]
Quando si vuole connettere il proprio sistema ad altri nodi per formare una rete locale, si utilizzano normalmente delle interfacce di rete, una per elaboratore, connesse tra loro in qualche modo. Normalmente si tratta di schede, ma posso essere utilizzate anche delle porte di comunicazione gestite opportunamente attraverso il software.
A differenza degli altri tipi di dispositivi fisici, che vengono identificati ognuno attraverso un file di dispositivo particolare (/dev/*
), GNU/Linux individua le interfacce di rete attraverso dei nomi che nulla hanno a che vedere con i file della directory /dev/
.
Come nel caso dei nomi di dispositivo, quando ci possono essere più interfacce dello stesso tipo si utilizza un numero alla fine del nome. Per esempio, eth0 è la prima interfaccia Ethernet. Dipende dal kernel l'assegnazione di questo numero, quindi, quando si ha la necessità di attribuire un numero particolare si devono usare delle istruzioni opportune da inviare al kernel nel momento dell'avvio.
La tabella 88.1 elenca alcuni nomi di interfaccia di rete.
Tabella 88.1. Alcuni nomi delle interfacce di rete.
Da molti anni ormai, le schede Ethernet sono quelle più utilizzate per la realizzazione di reti locali. Tuttavia, con il termine Ethernet si fa generalmente riferimento a uno standard evolutivo successivo: IEEE 802.3 o ISO 8802.3. In generale, lo standard Ethernet vero e proprio è ormai obsoleto. Lo standard IEEE 802.3 prevede diversi tipi di connessione, tra cui i più comuni sono:
Di questi, i più usati sono gli ultimi due e in particolare il secondo è il più economico. Infatti, l'uso del cavo UTP richiede poi la presenza di concentratori (HUB), oppure di switch.
Il collegamento di tipo «sottile» (thin) richiede l'uso di un cavo coassiale con impedenza da 50 Ohm (di solito si tratta del noto cavo RG58) che viene usato per connettere ogni scheda attraverso un connettore BNC a «T», e può raggiungere una lunghezza massima di 185 metri circa. Alla fine di entrambi i capi di questo cavo si deve inserire un terminatore resistivo (non induttivo) da 50 Ohm. L'unico svantaggio di questo tipo di collegamento è che durante il funzionamento della rete, il cavo non può essere interrotto.
La connessione del tipo UTP, Unshielded Twisted Pair, utilizza un connettore RJ-45. Per il collegamento in rete attraverso questo tipo di connessione, c'è bisogno di un concentratore-ripetitore.(1)
Lo standard IEEE 802.3 prevede anche l'uso di collegamenti a fibra ottica, ma qui, questa possibilità viene volutamente ignorata per la mancanza della competenza necessaria da parte di chi scrive. |
A seconda del tipo di connessione prescelto per la rete Ethernet, si hanno delle limitazioni sulla lunghezza massima del cavo utilizzato. Una connessione «normale» (thick) può essere fatta su un cavo lungo al massimo 500 metri, mentre una connessione sottile permette l'utilizzo al massimo di 180 metri.
In base a questi limiti, per distinguere il tipo di connessione si utilizzano i nomi 10base2 per la connessione sottile e 10base5 per la connessione normale. Nel caso di connessione attraverso cavo UTP, si utilizza il nome 10baseT.
La definizione «10base» fa riferimento alla velocità massima di comunicazione: 10 Mbit/s (bps). La definizione «10/100base» fa invece riferimento a uno standard più recente, in cui si riesce anche a raggiungere la velocità teorica di 100 Mbit/s, pur mantenendo la compatibilità con la velocità precedente. La comunicazione a 100 Mbit/s avviene solo attraverso un cavo UTP, per cui si parla generalmente di connessione 10/100baseT.
Tabella 88.2. Caratteristiche delle schede Ethernet.
La scheda Ethernet più diffusa in assoluto, a causa del rapporto ottimale tra qualità e prezzo, è stata la NE2000 insieme a tutti i suoi cloni. Si tratta di una scheda ISA a 16 bit e richiede che le sia riservato un indirizzo IRQ e un indirizzo di I/O. Ciò a differenza di altre schede che possono richiedere anche una zona di memoria.(2)
La configurazione predefinita tradizionale di una NE2000 è IRQ 3 e I/O 30016 che però la mette in conflitto con la seconda porta seriale a causa dell'indirizzo IRQ. Diventa quindi necessario cambiare questa impostazione attraverso lo spostamento di ponticelli sulla scheda, o l'uso di un programma di configurazione, di solito in Dos.
Il kernel deve essere stato predisposto per l'utilizzo di questo tipo di schede e durante l'avvio è normalmente in grado di identificarne la presenza. L'esistenza di una scheda NE2000 viene verificata in base alla scansione di alcuni indirizzi I/O e precisamente: 30016, 28016, 32016 e 34016.(3)
Se la scheda è stata configurata al di fuori di questi valori, non può essere individuata, a meno di utilizzare un'istruzione apposita da inviare al kernel prima del suo avvio, solitamente attraverso una riga append nel file /etc/lilo.conf
.
Quando si vogliono utilizzare più schede nello stesso elaboratore è necessario informare il kernel attraverso un parametro composto nel modo seguente:
ether=irq,indirizzo_I/O,nome
irq
Rappresenta il numero decimale di IRQ.
indirizzo_I/O
Rappresenta l'indirizzo di I/O di partenza da utilizzare, espresso in esadecimale.
nome
Rappresenta il nome da abbinare all'interfaccia. Trattandosi di schede Ethernet, il nome è ethn, dove n rappresenta un numero a partire da zero.
Per esempio, se si installano due schede configurate rispettivamente come IRQ 11, I/O 30016 e IRQ 12, I/O 32016, si potrà utilizzare il file /etc/lilo.conf
predisposto come nell'estratto seguente:
... image=/boot/vmlinuz ... append="ether=11,0x300,eth0 ether=12,0x320,eth1" ...
Per controllare se le schede installate sono rilevate correttamente dal kernel basta leggere i messaggi iniziali, per esempio attraverso dmesg.
Ci sono comunque molte altre possibilità di configurazione e per questo conviene leggere Ethernet-HOWTO di Paul Gortmaker.
Il ripetitore è un componente che collega due reti intervenendo al primo livello ISO/OSI. In questo senso, il ripetitore non filtra in alcun caso i pacchetti, ma rappresenta semplicemente un modo per allungare un tratto di rete che per ragioni tecniche non potrebbe esserlo diversamente.
.-------------------. .-------------------. | Applicazione | | Applicazione | |-------------------| |-------------------| | Presentazione | | Presentazione | |-------------------| |-------------------| | Sessione | | Sessione | |-------------------| |-------------------| | Trasporto | | Trasporto | |-------------------| |-------------------| | Rete | | Rete | |-------------------| |-------------------| | Collegamento dati | RIPETITORE | Collegamento dati | |-------------------| .--------------------------. |-------------------| | Fisico | | Fisico | | Fisico | `-------------------' `--------------------------' `-------------------' | | | | `-------------------' `-------------------' Figura 88.1. Il ripetitore ritrasmette i pacchetti di livello 1. |
Gli HUB, o concentratori, sono equivalenti a dei ripetitori; come tali, il loro utilizzo in una rete è sottoposto a delle limitazioni. In teoria si potrebbero calcolare tutte le caratteristiche di una rete per determinare se la struttura che si vuole ottenere sia compatibile o meno con le specifiche; in pratica la cosa diventa piuttosto difficile, data la necessità di tenere conto di troppi fattori. Generalmente si fa riferimento a dei modelli approssimativi già pronti, che stabiliscono delle limitazioni più facili da comprendere.
La connessione 10base5, senza la presenza di ripetitori, prevede l'uso di un cavo coassiale RG213 (thick, cioè grosso), da 50 ohm, con una lunghezza massima di 500 metri, terminato alle due estremità con una resistenza da 50 ohm. Lungo il cavo possono essere inseriti i ricetrasmettitori, o MAU (Medium Attachment Unit), che si collegano al cavo attraverso il vampire tap, e a loro volta sono collegati alla scheda di rete con un cavo apposito. I vari ricetrasmettitori possono essere al massimo 100, e la distanza sul cavo, tra uno qualunque di questi e il successivo, è al minimo di 2,5 metri.
.----------. .----------. .----------. | stazione | | stazione | | stazione | `----------' `----------' `----------' | | | | | | cavo AUI | | | terminatore .---. .---. .---. terminatore XX--------------|MAU|-----------|MAU|-----------|MAU|----------------XX 50 ohm `---' `---' `---' 50 ohm min 2,5 m <---------------> max 500 m cavo RG213 <---------------------------------------------------------------------> max 100 MAU (ricetrasmettitori) su un solo segmento Figura 88.2. Regole per una rete 10base5 senza ripetitori. |
Come si può intuire, se il tratto di cavo coassiale non è continuo, ma ottenuto dalla giunzione di più pezzi, la lunghezza massima deve essere diminuita.
La connessione 10base2, senza la presenza di ripetitori, prevede l'uso di un cavo coassiale RG58 (thin, cioè sottile), da 50 ohm, con una lunghezza massima di 185 metri, terminato alle due estremità con una resistenza da 50 ohm. Lungo il cavo possono essere inseriti dei connettori BNC a «T», attraverso cui collegare un ricetrasmettitore MAU, o direttamente una scheda che incorpora tutte le funzionalità. Le varie inserzioni poste nella rete possono essere un massimo di 30 e a una distanza minima di mezzo metro lungo il cavo.
.----------. .----------. .----------. | stazione | | stazione | | stazione | `----------' `----------' `----------' terminatore XX XX XX terminatore XX--------------XXXX------------XXXX------------XXXX-----------------XX 50 ohm min 0,5 m 50 ohm <--------------> max 185 m cavo RG58 <---------------------------------------------------------------------> max 30 connessioni su un solo segmento Figura 88.3. Regole per una rete 10base2 senza ripetitori. |
La connessione 10baseT prevede il collegamento di due sole stazioni, cosa che in pratica si traduce nella necessità di utilizzare un ripetitore multiplo, ovvero un HUB, o concentratore. Le caratteristiche del cavo utilizzato per la connessione 10baseT non sono uniformi e perfettamente standardizzate, tuttavia, generalmente si può raggiungere una lunghezza massima di 100 m.
La regola di progettazione più semplice, stabilisce che tra due stazioni qualunque possono essere attraversati al massimo quattro ripetitori, utilizzando cinque segmenti (cavi), di cui al massimo tre di tipo coassiale (RG58 o RG213).
.--------. 10baseT .------. .------. .------. .------. 10baseT .--------. |stazione|---------|ripet.|---|ripet.|---|ripet.|---|ripet.|---------|stazione| `--------' `------' `------' `------' `------' `--------' max 100 m max 100 m 10base5 max 500 m oppure 10base2 max 185 m Figura 88.4. Esempio di configurazione massima con quattro ripetitori, tre segmenti coassiali e due segmenti 10baseT. |
La figura 88.4 mostra una situazione molto semplice, in cui tre segmenti 10base2 o 10base5 collegano tra loro quattro ripetitori che poi si uniscono all'esterno con un segmento 10baseT. La figura mostra il collegamento di due sole stazioni, ma i ripetitori più esterni potrebbero essere muniti di più porte 10baseT, in modo da collegare più stazioni.
Eventualmente, in base alle regole date, anche nei tratti di collegamento coassiale è possibile inserire delle stazioni.
.----------. coass. .----------. coass. .----------. .----------. |ripetitore|---------|ripetitore|---------|ripetitore| .-----|ripetitore| `----------' `----------' `----------' | `----------' | | | | | | | | | | | | | | .----------. | | | | | | | | | | |ripetitore|-*-------' | | | | stazioni `----------' coassiale stazioni 10baseT | | | | 10baseT | | | | stazioni 10baseT Figura 88.5. Esempio di configurazione massima in cui, pur apparendo cinque ripetitori, tra due stazioni ne vengono attraversati al massimo quattro. I ripetitori agli estremi dispongono di più connessioni 10baseT. |
I commutatori di pacchetto, o switch, sono diversi dai concentratori, o HUB, in quanto si comportano come dei bridge. In questo senso non sono sottoposti alle limitazioni dei ripetitori, soprattutto per quanto riguarda la condivisione del dominio di collisione. Infatti, un bridge è in grado normalmente di determinare se una stazione si trova in un collegamento o meno; in questo modo, i pacchetti possono essere filtrati, impedendo di affollare inutilmente i collegamenti che non ne sono interessati.
Due elaboratori possono essere connessi utilizzando le porte parallele. Si ottiene in questi casi una connessione PLIP. La gestione della comunicazione PLIP avviene direttamente nel kernel e per questo, è necessario che sia stato compilato opportunamente per ottenere questa funzionalità.(4)
Le porte parallele possono essere fondamentalmente di due tipi: quelle normali e quelle bidirezionali. Per questa ragione, in origine si potevano utilizzare due tipi di cavo. Attualmente però, l'unico cavo considerato standard è quello incrociato adatto a tutti i tipi di porta parallela.
L'utilizzo del cavo bidirezionale, considerato sconsigliabile, ma di cui si trova ancora traccia nelle documentazioni, implica qualche rischio in più di danneggiamento delle porte parallele. |
Lo schema del cavo per la connessione PLIP è descritto in appendice, nella tabella C.1. Eventualmente si può anche leggere il contenuto del file /usr/src/linux/drivers/net/README1.PLIP
che è fornito insieme al kernel Linux.
Le porte parallele non sono tutte uguali: i problemi maggiori potrebbero presentarsi con le porte degli elaboratori portatili, o comunque quelle incorporate nella scheda madre dell'elaboratore. In questi casi, la loro configurazione dovrebbe essere gestita attraverso un programma contenuto nel firmware (il BIOS), ed è importante verificare tale configurazione.
La configurazione riguarda generalmente l'indirizzo di I/O, eventualmente anche il numero di IRQ. Alcune configurazioni potrebbero prevedere l'impostazione della porta come «normale» o «bidirezionale». Se si può scegliere, è opportuno che la porta sia normale.
A questo punto si pone il problema del riconoscimento della porta da parte del kernel. Se il file principale del kernel incorpora la gestione del protocollo PLIP, l'interfaccia dovrebbe essere individuata automaticamente e in modo corretto (riguardo alla sua configurazione effettiva). Eventualmente si può inviare un messaggio al kernel Linux attraverso il meccanismo dei parametri di avvio (capitolo 22). Anche nel caso dell'utilizzo di un modulo, il rilevamento dell'interfaccia dovrebbe avvenire in modo corretto. Però ci sono situazioni in cui ciò non può avvenire, specialmente nel caso di utilizzo di dischetti di installazione di una distribuzione GNU/Linux (capitolo 23).
In tutti i casi in cui è necessario fornire al kernel le caratteristiche hardware dell'interfaccia parallela, è indispensabile indicare sia l'indirizzo di I/O che il numero di IRQ. Se si indica un numero di IRQ errato, si rischia di ottenere il funzionamento intermittente dell'interfaccia, cosa che magari potrebbe fare pensare ad altri problemi.
Paul Gortmaker, Ethernet-HOWTO
S. Gai, P. L. Montessoro, P. Nicoletti, Reti locali: dal cablaggio all'internetworking
<http://www.polito.it/Ulisse/CORSI/INF/N4522/materiale/copialib.html>
1) Solitamente, un componente del genere mette a disposizione un'uscita BNC per il collegamento con una rete sottile. Tuttavia, prima di decidere di utilizzare un HUB di questo tipo occorre tenere presente che, spesso, attraverso tale uscita non può collegare da solo un gruppo di nodi in un'altra rete. La presenza di un connettore BNC farebbe pensare a questa possibilità; tuttavia, in condizioni normali, anche l'uscita BNC può essere collegata a una sola stazione, per esempio un servente o a un router.
2) ISA sta per Industry Standard Architecture e si riferisce al BUS utilizzato dai primi «PC».
3) In passato veniva fatta anche la scansione dell'indirizzo 36016, ma l'utilizzo di questo, dal momento che poi si estende fino a 37F16, porterebbe la scheda di rete in conflitto con la porta parallela standard che di solito si trova nella posizione 37816.
4) In passato non era possibile utilizzare un kernel Linux che gestisse simultaneamente la stampa e la connessione PLIP; eventualmente si poteva risolvere il problema utilizzando dei moduli da caricare e scaricare al momento del bisogno. Attualmente, i nuovi kernel Linux possono gestire simultaneamente la stampa e la connessione PLIP, senza bisogno di attuare trucchi particolari.