Quando si vuole connettere il proprio sistema ad altri nodi per formare una rete locale, si utilizzano normalmente delle schede di rete, una per elaboratore, connesse tra loro in qualche modo.
A differenza degli altri tipi di dispositivi, o periferiche, che vengono identificati ognuno attraverso un file di dispositivo particolare (/dev/*
), per le interfacce di rete si usano dei nomi di interfaccia che nulla hanno a che vedere con la 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 69.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. |
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:
Ethernet thick | |
Ethernet thin; | |
piattina telefonica (UTP). |
Di questi, i più usati sono gli ultimi due e in particolare il secondo è il più economico. Infatti, l'uso della piattina telefonica richiede poi la presenza di concentratori (HUB), oppure di switch.
Il collegamento di tipo 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 a piattina telefonica è anche detto UTP, Unshielded Twisted Pair, e utilizza un connettore RJ-45. Per il collegamento in rete attraverso questo tipo di connessione, c'è bisogno di un concentratore/ripetitore che, solitamente, mette a disposizione un'uscita BNC per il collegamento con una rete thin. *1*
Lo standard IEEE 802.3 prevede anche l'uso di collegamenti a fibra ottica, ma qui, questa possibilità viene volutamente ignorata. |
A seconda del tipo di connessione prescelto per la rete Ethernet, si hanno delle limitazioni sulla lunghezza massima del cavo utilizzato. Una connessione thick può essere fatta su un cavo lungo al massimo 500 metri, mentre una connessione thin 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 thin e 10base5 per la connessione thick. Nel caso di connessione attraverso la piattina telefonica, si utilizza il nome 10baseT.
La definizione «10base» fa riferimento alla velocità massima di comunicazione: 10 Mbps.
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 | piattina telefonica | < 100 m | Richiede un concentratore o uno switch. |
La scheda Ethernet più diffusa in assoluto, a causa del rapporto ottimale tra qualità e prezzo, è 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> |
<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 è |
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.
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, e 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 | +-------------------+ +--------------------------+ +-------------------+ | | | | +-------------------+ +-------------------+ |
Gli HUB, o concentratori, sono equivalenti a dei ripetitori, e 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, o 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 unico segmento |
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, o 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 unico segmento |
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.
La regola di progettazione più semplice, stabilisce che tra due stazioni qualunque possono essere attraversati al massimo 4 ripetitori, utilizzando 5 segmenti (cavi), di cui al massimo 3 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 |
La figura 69.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 |
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
192.1. Eventualmente si può anche leggere il contenuto del file /usr/src/linux/drivers/net/README1.PLIP
che è fornito insieme al kernel.
Le porte parallele non sono tutte uguali, e i problemi maggiori potrebbero darle quelle 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 PLIP, l'interfaccia dovrebbe essere individuata automaticamente e in modo corretto (riguardo alla sua configurazione effettiva). Eventualmente si può inviare un messaggio al kernel attraverso il meccanismo dei parametri di avvio (capitolo 13). 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 14).
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 |
---------------------------
Appunti Linux 1999.07.12 --- Copyright © 1997-1999 Daniele Giacomini -- daniele @ evo.it
1.) Prima di decidere di utilizzare un HUB occorre tenere presente che, spesso, questo 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 server 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 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 possono gestire simultaneamente la stampa e la connessione PLIP, senza bisogno di attuare trucchi particolari.
[indice generale] [precedente] [successivo] [indice analitico] [note introduttive]