Passa ai contenuti principali

Introduzione alle reti 2 - I componenti di una rete



Di seguito una breve rassegna dei principali componenti di una rete. Per ognuno di questi vengono fornite le caratteristiche principali e le principali istruzioni di configurazione.   



All'origine delle reti: gli hub


Come noto, un hub è un dispositivo che si comporta come semplice ripetitore di segnale: i dati in arrivo ad una qualsiasi porta dell'hub vengono replicati su tutte le altre sue porte. 

Una simile caratteristica consente quindi a due o più dispositivi di comunicare attraverso un hub, quindi di realizzare una rete. 

Per un certo periodo gli hub sono stati impiegati proprio con questa finalità all'interno di piccole strutture, ma la totale assenza di controllo nella ripetizione del segnale ne ha presto evidenziato i limiti: al crescere dei dispositivi connessi all'hub, i fenomeni di collisione diventano così significativi da compromettere la comunicazione stessa.   

Attualmente, gli hub sono scarsamente utilizzati.



Gli switch


Visto dal di fuori, uno switch è simile ad un hub: come un hub ha diverse porte, e come un hub replica in uscita il segnale ricevuto in ingresso. La differenza fondamentale risiede nel fatto che, mentre un hub implementa una trasmissione di tipo broadcast (il segnale ricevuto su una delle porte viene indistintamente replicato su tutte le altre porte), lo switch è in grado di implementare una trasmissione intelligente di tipo unicast: il segnale in ingresso viene replicato solo sulla porta alla quale è connesso il destinatario del frammento informativo stesso. Questo comporta evidentemente una drastica riduzione dei fenomeni di collisione propri dell'hub, il che, assieme a ragioni di ordine economico, fa sì che gli switch siano divenuti nel tempo fra gli elementi più apprezzati nella realizzazione di una rete. 

La capacità di mettere in comunicazioni più dispositivi, fa degli switch i principali elementi per creare delle reti, o, come è più corretto dire, dei domini di broadcast. Come detto, gli switch vengono prevalentemente utilizzati nello strato gerarchico di distribuzione di una rete. 

Ma la caratteristica che rende gli switch particolarmente interessanti in contesti produttivi è la possibilità di frammentare in più parti complessi domini di broadcast. Al riguardo, si parlerà a breve di VLAN (Virtual Local Area Network) e di Trunking.


Di seguito, invece, i comandi per la configurazione base di uno switch


(config)#banner motd "<msg>"imposta un messaggio da visualizzare all'accesso all'apparato

(config)#line{console 0|vty 0 4}
(config-line)#password <password>
(config-line)#login
imposta la password per l'accesso remoto da console, o da una delle 5 vty (virtual teletype, le interfacce a linea di comando utilizzate sotto telnet o ssh)

(config)#enable secret <password>imposta la password per accedere alla modalità Privileged EXEC

(config)#service password-encryptionabilita la codifica automatica delle password di sistema: l'effetto è quello di criptare tutte le password nel configuration file




La MAC Address Table


Per implementare una trasmissione di tipo unicast del tipo descritto, lo switch deve sempre sapere quali dispositivi sono connessi alle proprie porte: questo, come visto, gli consentirà di smistare ai singoli device interessati i dati ricevuti. A tal fine, lo switch mantiene costantemente aggiornata in memoria una specifica tabella detta degli indirizzi MAC o Mac Address Table. La Mac Address Table contiene al proprio interno una collezione di associazioni del tipo: 


<identificativo porta dello switch - MAC Address del dispositivo connesso alla porta>

Quando un frame arriva ad una porta dello switch, lo switch legge il MAC Address di destinazione del frame e verifica se tale indirizzo è già presente nella MAC Address Table. Nel caso in cui l'indirizzo sia presente in tabella, lo switch semplicemente legge la porta associata all'indirizzo e trasmette a destinazione il frame. Se viceversa l'indirizzo non è ancora stato censito, il frame viene inviato su tutte le porte dello switch: i device non interessati al frame semplicemente ignoreranno il frame in arrivo, mentre il destinatario del frame reinvierà allo switch un frame di conferma per l'avvenuta ricezione. Quest'ultima informazione consentirà allo switch di aggiornare la MAC Address Table con la nuova associazione.

A regime, lo switch avrà, all'interno della propria MAC Address Table, la mappa completa di tutti i device (dei loro MAC Address) connessi alle proprie porte. Questo gli consentirà di recapitare i frame direttamente a destinazione, evitando, come nel caso dell'hub, trasmissioni broadcast, che inevitabilmente genererebbero collisioni con conseguenti malfunzionamenti della rete. Di seguito un esempio di MAC Table:




Peraltro lo switch controlla periodicamente lo stato dei dispositivi a sé connessi: se per un certo lasso di tempo, una porta dello switch non viene impegnata, lo switch presume che il dispositivo non sia più connesso o non sia più funzionante, di conseguenza, la relativa associazione viene rimossa dalla MAC Address Table.

Per visualizzare il contenuto della MAC Address Table, è sufficiente utilizzare l'istruzione:    



#show mac-address-table
mostra la tabella degli indirizzi mac



Configurazione delle porte di uno switch

Le interfacce di uno switch possono essere configurate separatamente per assolvere a compiti differenti e spesso complessi. Al di fuori di contesti specifici che verranno esaminati successivamente, mediante una corretta configurazione delle porte, è possibile implementare trasmissioni più o meno veloci (reti con canali trasmissivi di differente velocità vengono anche dette asimmetriche) e/o di tipo half duplex (la comunicazione fra switch e device connesso avviene in modo alternato sullo stesso canale) o full duplex (entrambi i dispositivi possono comunicare contemporaneamente). Tali potenzialità, se ben impiegate, costituiscono un punto di forza fondamentale nell'economia generale di una rete. 


(config)#interface <port-id>
(config-if)#duplex {auto|full| half}
imposta la modalità di trasmissione della porta (half duplex, full duplex) selezionata


(config)#interface <port-id>
(config-if)#speed {10 | 100 | auto}
imposta la velocità (in Mbps) di trasmissione della porta selezionata




I Router


Se gli switch mettono in comunicazione più apparati per formare delle reti, compito di un router è mettere in comunicazione reti diverse: quelle connesse alle proprie interfacce.

In figura, un esempio di reti collegate mediante router. Da notare, in particolare, i due differenti tipi di rete: 

  • le reti locali, collegate alle porte Ethernet dei router, che che contengono i device terminali (pc, server, stampanti, etc.)
  • reti di collegamento (il collegamento seriale in figura), connesse alle porte seriali dei router, il cui compito è, appunto, quello di collegare fra loro più router. 

L'importanza di questa distinzione sarà evidente a breve.




Di seguito i comandi per la configurazione base di un router (notare l'estrema somiglianza con la configurazione di uno switch):


(config)#banner motd "<msg>"imposta un messaggio da visualizzare all'accesso all'apparato

(config)#line{console 0|vty 0 15}
(config-line)#password <password>
(config-line)#login
imposta la password per l'accesso remoto da console, o da una delle 16 vty (virtual teletype, le interfacce a linea di comando utilizzate sotto telnet o ssh)

(config)#enable secret <password>imposta la password per accedere alla modalità Privileged EXEC

(config)#service password-encryptionabilita la codifica automatica delle password di sistema: l'effetto è quello di criptare tutte le password nel configuration file




La tabella di routing


I router mettono in comunicazione le reti connesse alle proprie porte intradando i pacchetti delle une verso le altre e viceversa. In altri termini, se A e B sono due reti collegate allo stesso router, un pacchetto proveniente da un host della rete A, passando attraverso il router, può raggiungere un host della rete B e viceversa. Se poi, come nella figura precedente, A e B sono due reti del router R1, B e C sono due reti del router R2 e R1 ed R2 sono collegati (ad esempio mediante un'altra rete come un collegamento seriale), allora un pacchetto delle reti A o B può raggiungere un host sulle reti C o D e viceversa. Questo, in estrema sintesi, il meccanismo che consente il trasferimento di informazioni su una rete e che dà ragione del perché i router rivestono un ruolo tanto importante all'interno di una rete. 

I router sono di fatto dei computer, e quel che segue è, a grandi linee, quanto avviene al loro interno: quando un pacchetto giunge alla porta di un router, il router esamina innanzitutto il suo indirizzo IP di destinazione. Per decidere su quale rete instradare il pacchetto, il router consulta la propria Routing Table (letteralmente tabella di instradamento). É, difatti, all'interno della Routing Table che risiede la logica di instradamento di un router. Più in dettaglio, la Routing Table è un file di testo formato da righe contenenti indicazioni del tipo:  

i pacchetti diretti alla rete N devono uscire dalla porta P del router

Tali direttive prendono il nome di Rotte.  

All'interno di una Tabella di Routing è possibile distinguere tre differenti tipi di rotte:
  • Reti direttamente connesse: sono le reti che originano dalle interfacce del router e che il router conosce e scrive autonomamente all'interno della propria Routing Table. 
  • Rotte Statiche: sono le indicazioni definite manualmente all'interno di una tabella di routing: al pari di cartelli stradali, a fronte di una di destinazione, indicano la porta del router o la rete a questa connessa sulla quale instradare i pacchetti.   
  • Rotte Dinamiche: analoghe alle precedenti, vengono tuttavia scritte ed aggiornate in modo automatico nella Routing Table da particolari protocolli (detti appunto di routing), in base a specifici criteri.    

Indipendentemente dal tipo di rotte, è, tuttavia, importante comprendere che un router "partecipa" ad un processo di calcolo distribuito. Si supponga, dfatti, che il pacchetto P, in transito all'interno del router R1, debba raggiungere la rete N3 che origina da una delle porte Ethernet del router R3; sia inoltre R3 connesso via seriale al router R2, ed R2 sia connesso tramite collegamento seriale ad R1. Affinchè P possa raggiungere la rete N3, le direttive all'interno dei tre router saranno del tipo:
  • R1: i pacchetti diretti ad N3 devono uscire sulla porta che collega R1 ad R2.
  • R2: i pacchetti diretti ad N3 devono uscire sulla porta che collega R2 ad R3
  • R3: i pacchetti diretti ad N3 devono uscire sulla porta Ethernet alla quale N3 è direttamente connessa 

In altri termini, nessuno dei tre router conosce l'intero tragitto da far percorrere al pacchetto per condurlo a destinazione; viceversa, ciascun router è istruito per instradare il pacchetto solo su un piccolo tratto di strada: quello che conduce da sé al prossimo router sul percorso complessivo. L'azione combinata dei vari router conduce tuttavia il pacchetto a destinazione.

Il comportamento appena descritto è ben riassunto nei principi enunciati da Alex Zinin:
  • Ogni router prende le proprie decisioni da solo, sulla base delle informazioni contenute nella propria Routing Table
  • Il fatto che un router detenga nella propria routing table delle informazioni, non comporta che gli altri router posseggano le stesse informazioni
  • Fornire criteri di routing per andare da da A a B non significa fornire criteri di routing per andare da B ad A.    

In figura, un esempio di Routing Table: quella del router R0 nella configurazione illustrata:




Il modo di impostare i protocolli di routing per la compilazione automatica delle rotte sarà oggetto di una prossima trattazione in questo articolo. Di seguito, invece, vengono riportate le istruzioni principali per impostare delle rotte statiche nella Routing Table di un router. 

Si noti, in particolare, la definizione della Rotta di Default: viene così indicata la rotta sulla quale vengono instradati i pacchetti per i quali non sono specificate altre indicazioni utili all'interno della routing table.



(config)#ip route
      <dest_network_address>
      <dest_subnet_mask>
      {<next_hop>|<exit_interface>}
imposta una rotta statica: i pacchetti diretti alla rete di destinazione devono passare per l'indirizzo <next hop> (es. indirizzo di ingresso al prossimo router collegato sulla stessa linea seriale) o uscire sulla porta del router specificata <exit_interface>


(config)#ip route 0.0.0.0 0.0.0.0
{<next_hop>|<exit_interface>}
Imposta la “rotta di default": in mancanza di indicazioni più puntuali, i pacchetti vengono instradati verso l'indirizzo <next hop> o verso la porta del router <exit interface> specificata


#show ip route mostra le tabella di routing del router





La ARP Table 

Il fatto che i router instradano pacchetti sulla base dei loro indirizzi IP (logici) di destinazione non deve indurre a pensare che un router non sia in grado di gestire anche i corrispondenti indirizzi MAC (fisici). 

Così, ad esempio, quando un pacchetto arriva alla propria rete di destinazione, sarà compito del router instradare il pacchetto sulla propria porta FastEthernet con funzioni di gateway della stessa rete, verso l'host di destinazione. Come visto, difatti, una rete locale origina normalmente da una delle porte FastEthernet di un router: di qui i dati entrano ed escono, mentre trasporto degli stessi all'interno della stessa LAN è prevalentemente a carico degli switch, quindi per mezzo di indirizzi fisici. Compito del router sarà, quindi, quello di "tradurre" l'indirizzo IP di destinazione del pacchetto nel corrispondente indirizzo MAC dell'host destinatario, prima di affidarlo al sistema di trasporto della rete locale. 

Per operare una simile traduzione, il router fa uso della Address Resolution Protocol Table. Compito della ARP Table di un router è difatti quello di mantenere aggiornata, per le sole porte di tipo Ethernet, una collezione di associazioni del tipo: 

<IP Address - MAC Address - Porta del Router>

In definitiva, quando il router deve consegnare un pacchetto ad un host che risiede su una LAN a sé direttamente connessa, legge l'indirizzo IP dell'host di destinazione del pacchetto, ne ricava il MAC Address dalla ARP Table e invia lo stesso pacchetto sulla porta opportuna: quella indicata nella ARP Table, ovvero il default gateway della rete di destinazione del pacchetto stesso. 

Qualora un indirizzo non risulti censito nella ARP Table, il router invierà una ARP Request (di tipo broadcast) sulla rete locale contenente l'indirizzo IP da associare; solo il device proprietario dell'indirizzo IP risponderà, inviando il proprio MAC Address; il router aggiornarà di conseguenza la propria ARP Table con la nuova associazione. 

Di seguito un esempio di ARP Table:




A ben vedere, la ARP Table esercita per il router una funzione abbastanza simile a quella che la MAC Address Table opera nei confronti di uno switch.

Il comando:   



#show arpmostra il contenuto della ARP Table




Configurazione delle porte di un router

La configurazione delle interfacce di un router richiede qualche accorgimento in più rispetto a quanto visto per gli switch. 

Difatti, come visto, in un router possono essere presenti differenti tipi di porte: 
  • le porte seriali, anche dette interfacce WAN per via del fatto che spesso collegano due router su distanze geografiche, come sarà chiaro a breve, richiedono una trasmissione sincronizzata. Questo implica che uno dei router venga configurato come DCE (Data Circuit-Terminating Equipment) per fornire il clock al router posto all'altro capo del collegamento: il DTE (Data Terminal Equipment).
  • le porte Ethernet, o interfacce LAN, svolgono, invece, il compito di gateway per le reti locali connesse ai router. 

A differenza di quanto avviene per uno switch, tutte le porte di un router debbono necessariamente avere indirizzo IP e subnet mask. Questo per via del fatto che ogni porta del router identifica una differente rete. L'indirizzo della porta del router sarà inoltre il default gateway della stessa rete.

Di seguito le istruzioni di uso comune per la configurazione delle interfacce di un router:


(config)#interface <port-id>
(config-if)#description <text>
Imposta una descrizione per la porta corrente


(config)#interface <port-id>
(config-if)#ip address <ip> <subnet mask>

imposta un indirizzo ip per la porta corrente
(config)#interface <port-id>
(config-if)#no shutdown
abilita la porta corrente: di default le porte di un router sono disabilitate

(config)#interface <serial port-id>
(config-if)#clock rate <clock rate>
dichiara la porta seriale corrente DCE. ed imposta la frequenza di clock (di norma 56000). N.B.: Solo una porta in un collegamento seriale può essere DCE

#show interfaces [<interface-id>]
visualizza lo stato e la configurazione delle porte, eventualmente di una interfaccia in particolare

#show ip interfaces
mostra gli indirizzi IP assegnati alle interfacce del device




Cenni sull'architettura dei device Cisco

Il funzionamento di un router o di uno switch Cisco, al di là delle singole specificità legate al modello, è fortemente influenzato dalle sue quattro memorie:
  • ROM: la Read Only Memory contiene il bootstrap di sistema, un software di diagnostica e una versione ridotta del sistema operativo;
  • Flash Memory: ospita l'immagine del sistema operativo (ed eventualmente altri file); 
  • NVRAM: la Non Volatile Random Access Memory contiene, all'interno dello Startup Configuration File, le ultime impostazioni salvate di configurazione del sistema;
  • RAM: la Random Access Memory costituisce la memoria di lavoro e a regime contiene: il sistema operativo; la configurazione corrente all'interno del Running Configuration File. Negli switch, la RAM contiene anche la Mac Address Table di cui si parlerà a breve. Nei router la RAM contiene invece la Routing Table per l'instradamento dei pacchetti, la Arp Cache per la conversione di indirizzi IPv4 - MAC Address, il Packet Buffer per allocare i pacchetti in attesa di essere instradati.  

Quando il device viene acceso:
  • per prima cosa, viene eseguito un POST (Power-On Self Test) hardware della macchina
  • il codice di bootstrap viene quindi copiato dalla ROM nella RAM del device
  • il codice di bootstrap carica, a sua volta, il sistema operativo in RAM, recuperandone l'immagine dalla memoria Flash (o da un server TFTP - Trivial File Transfer Protocol). Qualora il sistema operativo non sia disponibile, viene caricata in RAM la sua versione ridotta, residente nella ROM della macchina.
  • sempre il codice di bootstrap carica ed esegue nella RAM lo Startup Configuration File per la configurazione iniziale della macchina. Nell'ipotesi in cui il file di configurazione non venga trovato (es. prima accensione della macchina), viene proposta all'utente una configurazione guidata; in alternativa è possibile, anzi preferibile, procedere alla configurazione manuale. 

Di seguito i comandi più utilizzati in relazione alle memorie 

    #show {startup-config|running-config}
    mostra le configurazioni del device salvata e corrente

    #copy running-config startup-config
    salva nella NVRAM la configurazione corrente

    #reload
    carica in RAM l'ultima configurazione salvata

    #erase startup-config

    elimina il contenuto della NVRAM
    #delete flash

    cancella il contenuto della flash memory

    #delete flash <file-name>
    elimina un file specifico all'interno della flash memory

    #show flash
    mostra il contenuto della memoria flash (eseguibile anche in modalità Privileged EXEC)







    Commenti

    Post popolari in questo blog

    Introduzione alle reti 3 - Switch tecnologies

    In questa sezione verranno esaminate le Virtual LAN, prima espressione della tecnologia LAN Switching.    Virtual Local Area Network (VLAN) Come già detto, uno dei punti di forza di uno switch risiede nella possibilità di creare sotto-reti a basso costo. Le VLAN ( Virtual Local Area Network ) , in particolare,  rappresentano la risposta a quelle situazioni nelle quali, pur non disponendo di grandi risorse, si renda comunque necessario tener distinti due o più ambiti della stessa rete, o, come è usuale dire, suddividere in più parti un dominio di broadcast.  L'esempio tipico è quello di una (piccola) impresa che abbia necessità di tener separati sulla rete i propri device in base alle attività produttive. La rete potrebbe allora pensarsi composta di tante VLAN quante sono le attività aziendali, ciascuna VLAN potendo contenere al proprio interno l'hw destinato ad ogni specifica attività. Dal punto di vista sistemistico, una  VLAN  è costituita da un sottoinsiem

    Switch Commands - istruzioni Cisco HP Extreme "in a nutshell"

    Indirizzamento IP

    Obiettivo di questo articolo, senza pretesa di esaurire l'argomento, è quello di presentare in modo chiaro e comprensibile un argomento alle volte ostico: l'indirizzamento IP.  Questo, fra l'altro, consentirà di affrontare, anche agli utenti meno esperti, operazioni semplici quali   la configurazione di una scheda di rete con maggiore consapevolezza. Gli indirizzi IP Come noto, con IP  ci si riferisce ad uno dei protocolli di comunicazione di rete più affermati nel mondo delle telecomunicazioni:  Internet Protocol .   Un indirizzo IP è, in particolare, un codice binario che identifica univocamente un dispositivo di rete (una scheda ethernet, la porta di uno switch o di un router, etc.) all'interno di una rete di computer.  Di primaria importanza, nell'ambito dell'indirizzamento, è la lunghezza degli indirizzi, ovvero il numero di bit utilizzati per rappresentare un indirizzo di rete. Questo, evidentemente, perché con n bit sarà possibile ind