[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


87. Hardware di rete

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.

87.1 Nomi di interfaccia

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 87.1 elenca alcuni nomi di interfaccia di rete.

Nome Descrizione
lo Interfaccia di loopback, di solito si tratta dell'indirizzo 127.0.0.1.
ethn La n-esima scheda Ethernet.
pppn La n-esima interfaccia PPP.
plipn La n-esima porta parallela utilizzata per le connessioni PLIP.

Tabella 87.1: Alcuni nomi delle interfacce di rete.

87.2 Ethernet -- IEEE 802.3/ISO 8802.3

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.

87.2.1 10base*, 10/100base*

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 Mbps. La definizione «10/100base» fa invece riferimento a uno standard più recente, in cui si riesce anche a raggiungere la velocità teorica di 100 Mbps, pur mantenendo la compatibilità con la velocità precedente. La comunicazione a 100 Mbps avviene solo attraverso un cavo UTP, per cui si parla generalmente di connessione 10/100baseT.

Ethernet Velocità Connessione Distanza Descrizione
10base5 10 Mbps thick RG213 <= 500 m Richiede il vampire tap.
10base2 10 Mbps thin RG58 < 200 m Cavo passante con connettore a «T».
10baseT 10 Mbps UTP < 100 m Richiede un concentratore o uno switch.
10/100baseT 10-100 Mbps UTP < 100 m Richiede un concentratore o uno switch.

Tabella 87.2: Caratteristiche delle schede Ethernet.

87.2.2 NE2000

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 0x300 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: 0x300, 0x280, 0x320 e 0x340. *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>

Per esempio, se si installano due schede configurate rispettivamente come IRQ 11, I/O 0x300 e IRQ 12, I/O 0x320, 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.

87.3 IEEE 802.3: ripetitori, switch e limiti di una rete

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 87.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.

87.3.1 10base5 senza ripetitori

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 87.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.

87.3.2 10base2 senza ripetitori

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 87.3: Regole per una rete 10base2 senza ripetitori.

87.3.3 10baseT

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 metri.

87.3.4 Regole elementari di progettazione

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 87.4: Esempio di configurazione massima con quattro ripetitori, tre segmenti coassiali e due segmenti 10baseT.

La figura 87.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 87.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.

87.3.5 Commutatori di pacchetto o switch

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.

87.4 PLIP

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 B.1. Eventualmente si può anche leggere il contenuto del file `/usr/src/linux/drivers/net/README1.PLIP' che è fornito insieme al kernel Linux.

87.4.1 Problemi con le porte parallele

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 21). 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 22).

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.

87.5 Riferimenti

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


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 0x360, ma l'utilizzo di questo, dal momento che poi si estende fino a 0x37f, porterebbe la scheda di rete in conflitto con la porta parallela standard che di solito si trova nella posizione 0x378.

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.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]