In questo articolo, Il livello Rete – Il Router ed il routing statico, impariamo come è fatto un router, i suoi comandi base e come fa il router ad inoltrare i pacchetti provenienti da una rete sorgente verso una rete di destinazione
Indice dei contenuti
Introduzione
Immaginiamo di avere diverse LAN ciascuna con un certo numero di host. Due o più host sono sulla stessa rete IP se condividono lo stesso indirizzo di rete (o di sottorete). Ipotizziamo che un host appartenente ad una rete LAN debba inviare un messaggio ad un host non appartenente alla propria rete. Nella seguente figura ipotizziamo che PC0 debba inviare un messaggio a PC6:

Quando il mittente e il destinatario del pacchetto sono su reti diverse, le due LAN devono essere collegate da una WAN e il pacchetto deve passare da un router all’altro. Solo i router, infatti, sono in grado di collegare tra loro reti diverse
E’ necessario utilizzare anche un solo router per interconnettere reti diverse ma, ovviamente, per reti mediamente estese è necessario l’utilizzo di più router

Ciascun link che interconnette due router rappresenta una rete a se stante o, in alternativa, una sottorete di un unica rete.
Il router è l’apparato di rete che effettua la commutazione di pacchetto, cioè
stabilisce un percorso tra il mittente e il destinatari. Ogni router riceve un pacchetto su una sua interfaccia e, basandosi sulle informazioni contenute nella tabella di routing del router stesso, lo inoltra su una interfaccia di uscita, per raggiungere un nodo adiacente.
Funzionamento del Router
Il router lavora a livello Rete (livello 3 del modello ISO/OSI), prendendo in considerazione gli indirizzi IP per effettuare l’inoltro e l’instradamento dei pacchetti.
- Inoltrare un pacchetto (forwarding) significa inviarlo a un’interfaccia. I pacchetti vengonoprelevati dalle code collegate alle porte di ingresso e inoltrati sulle code delle porte in uscita scelte in base agli algoritmi di routing utilizzati.
- Instradare un pacchetto (routing) significa scegliere il percorso che il pacchetto deve seguire per attraversare la rete ed arrivare a destinazione. Il router determina il percorso avvalendosi di informazioni che sono memorizzate in una tabella, chiamata tabella di routing.
Hardware del router
Il router è un elaboratore vero e proprio, con caratteristiche particolari necessarie per svolgere le operazioni di instradamento.
Analizziamo ora le principali componenti hardware di un router e le loro funzioni facendo riferimento alla struttura di base di un router Cisco.
CPU
- Esegue le istruzioni relative ai protocolli, agli algoritmi di instradamento e ai
comandi del sistema operativo per la gestione del router. - Aggiorna la tabella di routing.
- Il comando
show processesconsente di verificare l’attività della CPU:

Memoria RAM (DRAM)
È la memoria di lavoro per l’esecuzione del software. Essa mantiene:
- la configurazione corrente del router;
- le tabelle di routing;
- i buffer per le code dei pacchetti che vengono memorizzati prima di essere
inoltrati su un’interfaccia.
Memoria ROM
Contiene il firmware per il programma di avvio (bootstrap) che, dopo aver eseguito alcuni test per la diagnostica, carica in RAM le funzionalità base del sistema operativo. Ha una capacità dell’ordine dei Mbyte.
Logica di controllo
Supporta il processore per il controllo delle periferiche, il trasferimento dei dati,
la gestione degli interrupt, la temporizzazione e la comunicazione con le interfacce di rete.
Memoria secondaria permanente
Sono presenti:
- una memoria FLASH che contiene il sistema operativo (IOS);
- una memoria NVRAM (Non-Volatile RAM) che conserva i dati anche se non
alimentata. Ha una capacità di qualche decina di Kbyte. Su questa memoria è
salvato il file di configurazione del router (nome del router, indirizzi IP delle
interfacce, …). Questo file è caricato dalla NVRAM alla RAM quando il router
viene acceso o tutte le volte che è necessario. Il comandoshow running-config
consente di verificare lo stato dei parametri di configurazione.

Interfacce di I/O
- Interfaccia seriale asincrona (Porta di Console) utilizzata per configurare il dispositivo, tramite Command Line Interface (CLI) da terminale locale. Il cavo di console (rollover) è utilizzato per collegare la porta seriale del PC alla porta di console.
- Interfaccia seriale asincrona ausiliaria (Porta AUX), utilizzata per il collegamento via modem per la configurazione del dispositivo da remoto. È raramente utilizzata.
- Interfaccia virtuale (VTY – Virtual Teletype): non è una porta fisica, ma è una porta virtuale (Virtual Connection) utilizzata per il collegamento al router da remoto tramite i protocolli Telnet e SSH, mediante applicazioni come PuTTY.
- Interfacce Ethernet: Fast Ethernet – 100 Mbps, Gigabit Ethernet – 1 Gbps.
- Altre interfacce. Utilizzando schede di espansione in appositi slot del router è possibile aggiungere interfacce fisiche (Ethernet, fibra ottica, wireless, porte WAN, porte ad alta velocità ecc.). Ogni interfaccia ha un nome che ne identifica il tipo (per esempio Fa significa Fast Ethernet). Il nome è seguito da un numero che identifica il modulo e la porta (slot/port). Per esempio, Fa0/1, nei dispositivi Cisco, indica l’interfaccia Fast Ethernet che si trova nel modulo 0 sulla porta 1.
Nel software di simulazione Cisco Packet Tracer può essere utile sostituire / aggiungere una scheda di espansione. Per farlo è necessario spegnere il dispositivo, fare drag and drop con la scheda che vuole rimuovere o aggiungere e riaccendere il dispositivo:
Dalla scheda Physical:

Spengo il dispositivo cliccando sul pulsante di accensione:

Inserisco la scheda PT-ROUTER-NM-1CFE (fastEthernet) e riaccendo il dispositivo

Nel software Cisco Packet Tracer è possibile configurare il dispositivo attraverso GUI (graphical user interface) o attraverso CLI (command line interface).
Tutto ciò che è possibile fare attraverso GUI è possibile farlo anche attraverso CLI ma non è vero il viceversa.
Quando si utilizza la GUI e si configura il router, nella finestra in basso sono visibili i corrispoettivi comandi.
Nella realtà, come detto c’è bisogno di un PC, di un cavo console e di un software per la configurazione. Possiamo vedere questa pratica sempre in Packet Tracer:


Software del router
Il sistema operativo per i router Cisco è IOS (Internetwork Operating System) che
gestisce quasi tutti i modelli di router e switch Cisco. Fatta salva la sintassi dei comandi di gestione, i comandi che verranno esposti si possono applicare alla
maggior parte dei router in commercio.
Un apparato di rete (router, switch o altro dispositivo) che utilizza il sistema operativo IOS – Cisco può trovarsi in diversi “stati” o “modalità di configurazione”,
associati a un diverso livello di privilegi, che permettono a un utente di eseguire
determinati comandi.
I principali stati in cui può trovarsi un router sono illustrati nella figura seguente:

User Exec Mode (modalità utente)
È la modalità in cui si trova il router all’accensione.Il prompt dei comandi si presenta con il simbolo >.
In questa modalità è possibile leggere informazioni generali di sistema ed eseguire alcuni comandi base come ping e traceroute.
Il comando per passare allo stato successivo è:
>enable
Privileged Exec Mode (modalità privilegiata)
È la modalità riservata all’amministratore del dispositivo.
Il prompt dei comandi si presenta con il simbolo #.
Consente di salvare e ripristinare la configurazione corrente del router e ottenere informazioni dettagliate sul sistema. Per modificare la configurazione, è necessario passare da questo stato allo stato Global Configuration Mode.
Di norma, non è necessaria alcuna password per accedere alla modalità privilegiata, a meno che tale password non sia stata preventivamente impostata.
Il comando per passare allo stato successivo è:
#configure terminal
Global Configuration Mode
In questa modalità è possibile impostare parametri del router come il nome del
dispostivo (hostname), la data e l’ora, la password di accesso.
Il prompt dei comandi si presenta come (config)#.
Le interfacce, le porte di comunicazione, i protocolli di routing, sono impostati
passando nelle rispettive modalità,
-
Interface Configuration: per configurare le interfacce del router (abilitazione dell’interfaccia, indirizzi IP, subnet mask, parametri di sicurezza, …).
Il comando per passare in questo stato, relativamente a una specifica interfaccia da impostare, è per esempio:(config)#interface fastEthernet 0/0
(config-if)#
Il prompt dei comandi si presenta come (config-if)#. -
Line Configuration Mode: per configurare le porte (abilitazione della porta, parametri di sicurezza, …).
Il comando per passare in questo stato relativamente alla porta da impostare è:(config)#line console 0
(config-line)#
Il prompt dei comandi si presenta come (config-line)#. - Router Configuration Mode: per configurare le tabelle e i protocolli di routing.
Il comando per passare in questo stato relativamente, per esempio, al protocollo RIP, è:(config)#router rip
(config-router)#
Il prompt dei comandi si presenta come(config-router)#.
Comandi del router


Il termine “VTY” sta per Virtual teletype (telescrivente virtuale). VTY è una
porta virtuale, a cui non corrisponde un hardware, utilizzata esclusivamente per
ottenere l’accesso da un dispositivo esterno al router o switch, tramite i protocolli Telnet o SSH.
Le vecchie versioni di IOS supportavano solo 5 linee VTY da 0 a 4, mentre la nuova versione arriva fino a 16 linee VTY (0-15).
La configurazione e la gestione delle linee VTY è possibile tramite l’utilizzo dell’interfaccia a riga di comando.
Per accedere in remoto alla CLI di un router o di uno switch è necessario utilizzare un terminale (client) che utilizza Telnet o SSH.
- Telnet è il protocollo TCP/IP standard per eseguire i comandi su un dispositivo
remoto. È vulnerabile agli attacchi alla sicurezza perché i dati passano in chiaro. - SSH (Secure SHell) è un protocollo che permette di stabilire una connessione
cifrata tramite interfaccia a riga di comando e consente di superare molti
problemi relativi alla sicurezza di Telnet.




ESEMPIO: Configuriamo le interfacce del router

Dalla scheda CLI accediamo al prompt dei comandi:

digitiamo no + INVIO:

eseguiamo ora i comandi:
Router>enable
Router#configure terminal
Router(config-if)#interface f0/0
Router(config-if)#ip address 10.0.0.1 255.0.0.0
Router(config-if)#no shutdownRouter(config-if)#interface f1/0
Router(config-if)#ip address 20.0.0.1 255.0.0.0
Router(config-if)#no shutdown
Abbiamo configurato le due interfacce Fa0/0 e Fa1/0 e le abbiamo attivate con il comando no shutdown e tutto ciò è visibile nella scheda config cliccando su una delle due interfacce:

Instradamento dei pacchetti
L’instradamento (o routing) è il processo di definizione del percorso che i pacchetti devono fare per giungere a destinazione.
Il processo di instradamento dell’host
Per inviare un pacchetto un host ha due alternative:
- consegna diretta. Se il destinatario si trova sulla stessa rete del mittente
(cioè, se entrambi gli host hanno lo stesso indirizzo di rete), il pacchetto è
trasferito direttamente all’host di destinazione; - consegna indiretta. Se l’host di destinazione è remoto, cioè fa parte di
un’altra rete, esso invia il pacchetto al default gateway, che è l’interfaccia del
router collegata alla rete dell’host mittente.
Il router inoltra il pacchetto su un’altra interfaccia collegata a un nodo di
un’altra rete
Come sappiamo, per consegnare un pacchetto non è sufficiente conoscere l’indirizzo IP del destinatario, ma è necessario anche il suo indirizzo MAC, ossia l’indirizzo fisicocontenuto nell’intestazione della trama di livello 2.
Per ottenere l’indirizzo MAC del destinatario, un host utilizza il protocollo ARP
(Address Resolution Protocol RFC826) che associa un indirizzo IP di un’interfaccia
al relativo indirizzo MAC.
Alla luce di queste considerazioni possiamo quindi ridefinire il significato di consegna diretta e indiretta di un pacchetto da parte di un host.
- Consegna diretta: si ha quando il destinatario ha lo stesso indirizzo di rete del mittente; in tal caso il messaggio sarà spedito all’host con indirizzo MAC di destinazione contenuto nella trama di livello 2
- Consegna indiretta: si ha quando il destinatario non ha lo stesso indirizzo
di rete del mittente, cioè si trova su una rete esterna; in tal caso il pacchetto
sarà spedito all’indirizzo MAC del default gateway
Esempio:
Consideriamo due host, PC1 e PC2. PC1 ha indirizzo IP: 192.168.4.11/24. PC2 ha indirizzo IP: 192.168.3.2/24.
Pertanto, i due host sono su reti diverse.
Supponiamo che PC1 debba inviare un pacchetto a PC2. La Figura seguente mostra gli indirizzi (IP e MAC) nel tratto di rete da PC1 fino all’uscita dal la rete 192.168.4.0/24.
Gli indirizzi IP, mittente e destinatario, sono contenuti nel l’intestazione del protocollo IP (di livello 3).
Gli indirizzi MAC, mittente e destinatario, sono contenuti nella trama (di livello 2).

Il pacchetto inviato da PC1 al default gateway ha:
•indirizzo IP sorgente: indirizzo IP dell’host di partenza (192.168.4.11);
•indirizzo IP di destinazione: indirizzo IP dell’host remoto (192.168.3.2);
•indirizzo MAC sorgente: indirizzo MAC dell’host di partenza (000A.41A1.3785);
•indirizzo MAC di destinazione: indirizzo MAC della scheda di rete del default gateway (000A.F362.3DA8).
Quando Router2 riceve il pacchetto:
- legge nell’intestazione IP l’indirizzo di destinazione e consulta la tabella di routing, per determinare su quale interfaccia inoltrare il pacchetto da instradare a un nodo adiacente. In questo caso inoltra il pacchetto sull’interfaccia collegata al Router3 che riceve sull’interfaccia con IP 130.0.0.2;
- toglie la busta di Livello 2 e imbusta nuovamente il pacchetto in un nuovo frame, che ha come indirizzo MAC sorgente quello dell’interfaccia del router su cui il pacchetto è inviato (00E0.F772.49CE), e come MAC di destinazione quello dell’interfaccia del nodo (Router3) a cui il pacchetto è destinato (0001.C7EA.BC61);
- durante tutto il percorso attraverso le reti, nell’intestazione del livello Rete sono conservati gli indirizzi IPsorgente (192.168.4.11) e di destinazione (192.168.3.2).
Processo di instradamento
Il pacchetto che giunge su un’interfaccia di un router viene diretto a un’altra sua
interfaccia collegata a un’altra rete. La scelta dell’interfaccia dipende dalla rotta che il pacchetto dovrà intraprendere per giungere a destinazione. Il router si avvale di una tabella di instradamento (routing table) in cui è indicata, per ogni destinazione, l’interfaccia da utilizzare.
La ricerca nelle tabelle di routing (table look-up) avviene sulla base dell’indirizzo
IP di destinazione del pacchetto da instradare.
Il router cerca nella tabella una riga corrispondente alla rete di destinazione; se
nella tabella non ci sono né la rete di destinazione né una route di default, allora
il pacchetto è eliminato.
La tabella di routing è mantenuta nella memoria del router ed è aggiornata in base ai protocolli di routing utilizzati e allo stato della rete e dei router adiacenti.
L’aggiornamento delle tabelle di routing può essere:
-
statico: le rotte e i percorsi sono prestabiliti e non adattivi rispetto allo stato
della rete. Sono impostati manualmente da un amministratore; -
dinamico: le rotte e i percorsi sono stabiliti dinamicamente. Sono adattivi rispetto allo stato della rete. I router utilizzano protocolli di routing che, utilizzando informazioni scambiate con i router vicini, tengono conto delle variazioni che avvengono in rete consentendo di modificare le tabelle in tempo reale.
I router e le tabelle di routing hanno un ruolo importante relativamente alla sicurezza informatica. Infatti, possono svolgere varie attività, tra cui: - il filtraggio del traffico, utilizzando le liste del controllo degli accessi tramite un elenco di istruzioni (access control lists) per consentire o negare il passaggio a pacchetti con determinati indirizzi;
- l’attività chiamata uRPF (unicast Reverse Path Forwarding). In questo caso il
router controlla nella tabella di routing se un pacchetto contiene un indirizzo di origine per il quale la rotta di ritorno punta a un’interfaccia inesistente.
In questo caso il pacchetto è rimosso evitando possibili attacchi.
Routing table
Spieghiamo la routing table con il seguente esempio:

Le due reti 10.0.0.0/8 e 30.0.0.0/8 sono collegate tramite una terza rete (20.0.0.0/8) composta da due router:
- alle interfacce del Router0 sono direttamente collegate le reti 10.0.0.0/8 e 20.0.0.0/8, mentre la rete remota 30.0.0.0/8 è raggiungibile tramite l’ indirizzo 20.0.0.2 (Router1);
- alle interfacce del Router1 sono direttamente collegate le reti 30.0.0.0/8 e
20.0.0.0/8, mentre la rete remota 10.0.0.0/8 è raggiungibile tramite l’ndirizzo 20.0.0.1/8 (Router0)
Quando un router viene collegato a una rete, per impostazione predefinita esso
conosce solo le reti connesse direttamente:
- Router0 conosce solo la rete 10.0.0.0 e la rete 20.0.0.0, ma non conosce la rete
30.0.0.0; - Router1 conosce la rete 30.0.0.0 e la rete 20.0.0.0, ma non conosce la rete
10.0.0.0.
Possiamo verificare la configurazione della rete utilizzando il comando IOSshow ip route:

Analizzando ad esempio Router0:

Per consentire ai router di raggiungere le reti remote occorre impostare (staticamen-
te o dinamicamente) un percorso nella tabella di routing
Le tabelle di routing contengono i seguenti campi:

dove:
MOD – Modalità di consegna
La lettera contenuta in questo campo identifica la modalità di consegna:
- C: rete direttamente connessa. Un segmento di rete è collegato direttamente a un’interfaccia di un router. In questo caso la tabella si configura automaticamente aggiungendo l’indirizzo IP della rete connessa;
- L: indica che la consegna è fatta all’indirizzo IP dell’interfaccia locale della rete connessa;
-
S: route statica.
Nel caso in cui la rete di destinazione non sia presente nella tabella, il pacchetto sarà instradato su una route di default identificata dal generico indirizzo 0.0.0.0/0 chiamato Gateway of last resort (letteralmente: gateway
di ultima spiaggia). La lettera di inoltro è contrassegnata dal simbolo * (ad esempio S*).
Nel caso in cui la tabella sia stata configurata dinamicamente per la routea una rete remota, il campo contiene l’indicazione del protocollo utilizzato:
– R: route attivata con il protocollo RIP;
– D: route attivata con il protocollo EIGRP;
– O: route attivata con il protocollo OSPF;
– B: route attivata con il protocollo BGP.
- D – Rete di destinazione e relativa netmask
-
M – Distanza amministrativa e metrica
Si riferisce al “costo” per raggiungere la destinazione.
– Il protocollo RIP ha, di default, un valore di distanza amministrativa uguale a 120.
– La metrica assegna un “peso” a ciascuna rotta disponibile per poter scegliere il percorso più conveniente e misura il valore di un determinato percorso a partire da alcune caratteristiche specifiche della rete su cui si opera. Ad esempio, per il RIP si considera il numero di router da attraversare per raggiungere una determinata destinazione (hop count); per IGRP e EIGRP si considerano il delay e la bandwidth, che misurano rispettivamente il ritardo di propagazione e l’ampiezza di banda (per un routing di tipo S vengono impostati i valori [1/0]). -
NH – Next-Hop
È l’indirizzo dell’interfaccia di un router a cui deve essere inoltrato il pac-
chetto per raggiungere la destinazione specificata nella colonna “D”. -
T – Time
Presente solo nel caso di routing dinamico, indica da quanto tempo il percorso è presente nella tabella. Alcuni protocolli di routing, come OSPF e EIGRP, permettono a questo valore di crescere, altri, come RIP o IGRP, lo azzerano periodicamente (ogni 30 secondi il primo e ogni 90 il secondo). -
IFC – Interfaccia fisica di collegamento.
Indica l’interfaccia fisica a cui il router inoltra il pacchetto per instradarlo
sulla route selezionata.
Routing statico
Abbiamo visto finora che affinchè un host appartenente ad una rete possa comunicare con un host appartenente ad una diversa rete è necessario uno o più dispositivi che lavorino a livello 3 (Network): i Router.
Abbiamo anche visto che nel caso di interconnessione diretta tra due reti (con un solo router) non è necessario impostare le rotte poichè il router esegue solo il forwarding
Nel caso in cui due reti sono interconnesse attraverso due o più router risulta necessario impostare le rotte e ciò può essere fatto in due modi:
- statico (routing statico)
- dinamico (routing dinamico o adattivo)
Spieghiamo il routing statico attraverso l’esempio precedente che riportiamo di seguito:

Dopo aver configurato opportunamente le interfacce (degli host e dei router) in questo modo:
PC0:
IP: 10.0.0.2
Mask: 255.0.0.0
Gateway: 10.0.0.1
PC1:
IP: 30.0.0.2
Mask: 255.0.0.0
Gateway: 30.0.0.1
Router0:
Fa0/0: 10.0.0.1
Mask: 255.0.0.0
Se2/0: 20.0.0.1
Mask:255.0.0.0
Router1:
Fa0/0: 30.0.0.1
Mask: 255.0.0.0
Se2/0: 20.0.0.2
Mask:255.0.0.0
Se proviamo a fare un ping da PC0 a PC1 vediamo che PC1 non è raggiungibile infatti non abbiamo ancora impostato le rotte.
Cisco packet tracer permette la configurazione delle rotte statiche sia attraverso GUI che attraverso CLI. Vediamo l’impostazione attraverso GUI:
Router0 –> scheda config –> Routing –> static:
- nel campo Network scrivo l’indirizzo della o delle reti remote (non adiacenti) da raggiungere
- nel campo Mask scrivo la subnet mask della rete da raggiungere
- nel campo Next Hop scrivo l’indirizzo dell’interfaccia del router successivo attraverso la quale voglio che i pacchetti transitino per raggiungere la rete di destinazione
- Premere ADD e verificare la nuova entry

Facendo lo stesso per Router1:

il comando equivalente da CLI è:
Router(config)# ip route <IP rete da raggiungere> <Mask rete da raggiungere> <Next hop>
Esempio:

Dopo aver impostato le rotte statiche sui due router posso verificare la routing table con il solito comando show ip route e, ad esempio, per Router0 ottengo:

L’ultima entry rappresenta la route statica impostata:
- S – static
- D – 30.0.0.0/8
- M – [1/0] (route statica)
- NH – via 20.0.0.2 (next hop –> raggiungo la rete attraverso questa interfaccia
Seguiamo il percorso del pacchetto in partenza da PC0 che attraversa i router 0 e 1.
- Il PC0 consegna il pacchetto al router Router0, sul default gateway 10.0.0.1,
perché PC1 è su una rete diversa. - Router0 riceve il pacchetto e consulta la tabella di routing leggendo tutte le regole
(righe della tabella) nell’ordine in cui sono state inserite, dalle prime finché l’operazione AND, eseguita bit a bit fra i 32 bit dell’indirizzo destinatario e la maschera di rete della regola, non restituisce come risultato la rete della
regola.
La prima regola ha come netmask il valore 255.0.0.0, che in binario
diventa:
11111111 . 00000000 . 00000000 . 00000000
L’indirizzo IP del destinatario è invece 30.0.0.2, che in binario diventa:
00011110 . 00000000 . 00000000 . 00000010
L’AND logico bitwise da come risultato:
00011110 . 00000000 00000000 00000000
che convertito è : 30.0.0.0
mentre l’indirizzo di rete della prima regola è 10.0.0.0
Esegue la stessa operazione e verifica la seconda regola
Infine esegue la stessa operazione con la terza regola e verifica che il risultato dell’AND bitwise coincide con l’indirizzo di rete della terza regola quindi Router0 invia il pacchetto all’indirizzo specificato nella colonna Next-Hop (20.0.0.2) ossia al Router1, a esso connesso tramite l’interfaccia Se2/0 sulla rete 20.0.0.0/8
Ora entra in gioco Router1 con la propria tabella di routing:

Esegue le stesse operazioni di AND bitwise quindi arriverà alla terza regola e inoltrerà il pacchetto alla FastEthernet 0/0 (collegata allo switch) sarà poi lo switch a inviarlo verso la destinazione (PC1)
Ricordiamo l’enorme importanza che ha l’ordine delle regole di routing per
il corretto instradamento.

Lascia un commento