Un router ()Voce 135478 nella IATE.A. Gallippi, Dizionario di informatica: inglese-italiano, Tecniche Nuove, 2006 è un dispositivo di rete che si occupa di inoltrare pacchetti di dati attraverso reti informatiche.
I dati trasmessi attraverso una rete, come ad esempio le pagine web o la posta elettronica, viaggiano sotto forma di pacchetti. Il router ha lo scopo di dirigere il traffico di tali pacchetti nel loro tragitto, sia che esso debba attraversare differenti reti locali private, o la rete Internet globale.
Un router, per potersi definire tale, deve essere collegato ad almeno due linee dati provenienti da diverse reti IP. Quando un pacchetto dati arriva su una delle linee, il router legge l'Indirizzo IP presente all'interno dell'intestazione del pacchetto per determinare quale sarà la sua destinazione finale. In seguito, confronta questa informazione con il contenuto della propria tabella di routing e inoltra il pacchetto attraverso la successiva rete, fino a quando non raggiunge il nodo di destinazione.
I tipi di router più familiari sono i gateway di Internet domestici, che si occupano di inoltrare i pacchetti IP tra i computer collegati alla loro interfaccia LAN (fisicamente costituita dalle porte dello switch Ethernet posto sul retro dell'apparato e dall'interfaccia Wi-Fi, le quali sono amalgamate assieme attraverso un'interfaccia bridge preconfigurata) e l'accesso a Internet, proveniente da una singola interfaccia WAN.
I router più sofisticati, come quelli per il settore Enterprise, connettono grandi aziende o ISP fino ai router di trasporto che inoltrano dati ad alta velocità attraverso le linee in fibra ottica delle dorsali di Internet.
Un router può essere costruito usando le stesse parti generiche con cui di solito si assemblano i personal computer, ma solitamente sono dei computer costruiti per un impiego specifico. I primi modelli di router utilizzavano l'inoltro basato su software, effettuato dalla CPU. In seguito, i costruttori hanno iniziato a utilizzare circuiti integrati per applicazioni specifiche per incrementare le prestazioni o aggiungere funzionalità avanzate, come ad esempio il filtraggio dei pacchetti.
Funzioni principali
Lo scopo principale di un router è quello di interconnettere reti multiple e inoltrare i pacchetti destinati alle reti direttamente connesse o più remote. Un router è classificato come dispositivo di livello 3 perché le sue decisioni di instradamento si basano sulle informazioni contenute nei pacchetti IP, appartenenti appunto al livello di rete, nello specifico l'indirizzo IP di destinazione. Quando un router riceve un pacchetto, cerca all'interno della propria tabella di routing per trovare la migliore corrispondenza tra l'indirizzo IP di destinazione e uno degli indirizzi nella tabella di routing. Quando viene trovata una corrispondenza, il pacchetto viene incapsulato dentro un frame del livello datalink dello stesso tipo utilizzato dall'interfaccia determinata dalla tabella di routing, sulla quale verrà trasmesso. Un router di solito non guarda dentro il payload di un pacchetto, per effettuare una decisione di routing sono necessari solo gli indirizzi di livello 3 contenuti nell'header, e opzionalmente, altri suggerimenti in esso presenti, come la IP QoS. Nel mero instradamento IP, i router sono progettati per minimizzare le informazioni sullo stato associate ai pacchetti individuali. Una volta che un pacchetto viene inoltrato, il router non memorizza alcuna informazione storica su di esso.
La tabella di routing può contenere informazioni provenienti da un certo numero di fonti, come le rotte statiche o di default configurate manualmente, o le voci dinamiche inserite dai protocolli di routing attraverso i quali il router impara le rotte dagli altri router. Una rotta di default viene usata per instradare tutto il traffico per il quale non è presente una destinazione specifica nella tabella di routing; il suo utilizzo è comune, nonché necessario, nelle piccole reti, come quelle di casa o dei piccoli uffici dove la rotta di default invia tutto il traffico non locale verso i router dell'Internet service provider. La rotta di default può essere configurata manualmente, appresa dagli altri protocolli di routing, o essere ottenuta tramite DHCP.
Un router può eseguire più protocolli di routing allo stesso tempo. Questa cosa è particolarmente vera quando connette assieme parti di una rete che eseguono protocolli di routing differenti: se ciò si verifica, si può usare la ridistribuzione (in genere selettivamente) per condividere le informazioni tra i protocolli di routing che girano sullo stesso router.
Oltre a decidere su quale interfaccia verranno inoltrati i pacchetti, scelta influenzata primariamente attraverso la tabella di routing, un router deve anche gestire la congestione quando i pacchetti arrivano con un tasso maggiore di quello che il router può elaborare. Le tre opzioni disponibili sono, tail drop, random early detection (RED), e weighted random early detection (WRED). Il tail drop è il più semplice dei tre: il router scarta semplicemente tutti i pacchetti che eccedono la dimensione dello spazio nel suo buffer. La RED scarta i datagrammi in maniera probabilistica quando la dimensione della coda eccede una porzione preconfigurata del buffer, fino a raggiungere un massimo predeterminato, raggiunto il quale inizia a scartare tutti i pacchetti in arrivo (come nel tail drop). La WRED può essere configurata per scartare i pacchetti in maniera più reattiva in base al tipo di traffico.
Un'altra funzione che un router può svolgere è quella di classificare il traffico e decidere quali pacchetti elaborare per prima. Questo viene gestito attraverso la Quality of Service, che è critica quando viene implementato il VoIP, per non introdurre una latenza eccessiva.
Ancora un'altra operazione che un router può effettuare viene chiamata policy-based routing, con la quale le decisioni di routing vengono influenzate da delle regole speciali appositamente costruite.
Alcune di queste funzioni possono essere svolte da un ASIC per evitare l'overhead dello scheduling sulla CPU per elaborare i pacchetti, altre devono essere svolte dalla CPU perché alcuni pacchetti richiedono un'attenzione speciale che non può essere fornita da un ASIC.
Quando diversi router si trovano assieme all'interno di reti interconnesse allo scopo di smistarne il traffico, essi possono scambiarsi le informazioni riguardanti le reti di destinazione utilizzando un protocollo di routing. Ciascun router costruisce una tabella di routing, una tabella contenente in ciascuna riga l'indirizzo IP della rete di destinazione, (pertanto il primo indirizzo di ciascuna subnet calcolabile utilizzando il metodo CIDR, di norma non assegnabile ad alcun host), e il next-hop, che può essere o l'indirizzo IP di un altro router direttamente connesso, o il nome di un'interfaccia fisica presente sul medesimo router che intende instradare il pacchetto. Le voci della tabella di routing così composte costituiscono le c.d. rotte.
Il software che viene eseguito dal router è costituito da due blocchi logici di funzionamento che operano simultaneamente, chiamati plane:
Control plane: Logica che permette a un router di mantenere una tabella di routing che elenca quale rotta deve essere usata per inoltrare un pacchetto dati e attraverso quale interfaccia. Può farlo attraverso direttive configurate manualmente, chiamate rotte statiche, o imparando le rotte in maniera dinamica attraverso un protocollo di routing. Le rotte statiche e dinamiche vengono memorizzate nella tabella di routing. La logica control plane rimuove le direttive non essenziali dalla tabella e costruisce una Forwarding Information Base (FIB) utilizzabile dal forwarding plane.
Forwarding plane: Questa unità inoltra i pacchetti dati in entrata e in uscita alle interfacce corrette. Funziona leggendo l'intestazione di ogni pacchetto non appena arriva, e se presente una corrispondenza con le voci della FIB fornite dal control plane, dirige il pacchetto all'interfaccia di uscita in essa specificata.
Come per lo switch esistono più tipologie di instradamento che possono essere utilizzate da un router: cut-through store and forward
Nella prima tipologia il router si limita a leggere l'indirizzo IP del destinatario e quindi manda il contenuto del pacchetto IP contemporaneamente alla sua lettura. In questo caso l'inoltro dei datagrammi non attende la ricezione completa dello stesso. Possono essere impiegati solamente nel routing simmetrico ovvero dove trasmettitore e ricevitore operano alla stessa velocità.
Nei router store-and-forward invece il pacchetto IP viene immagazzinato nei buffer e poi trasmesso: questo consente un eventuale adattamento della velocità del flusso di dati entranti alla velocità di trasmissione della linea o collegamento in uscita con un effetto di accodamento dei pacchetti in coda. Questo meccanismo consente di evitare entro certi limiti la perdita di pacchetti in situazioni critiche di congestione e la conseguente gravosa operazione di richiesta di ritrasmissione da parte di TCP con sensibile ritardo aggiuntivo, al prezzo però di un ritardo aggiuntivo di memorizzazione (latenza) che può causare jitter in una comunicazione dati a pacchetto.
I processi di elaborazione per l'indirizzamento e l'instradamento introducono dei ritardi aggiuntivi sulla linea di uscita, tipicamente nell'ordine dei millisecondi.
Caratteristiche
Un router può essere equipaggiato con vari tipi di connessioni di livello fisico, come ad esempio cavi di rame, fibra ottica, o antenne per la trasmissione radio. Può altresì supportare diversi standard di trasmissione appartenenti al livello di rete. Ciascuna interfaccia di rete viene utilizzata per permettere ai pacchetti di essere instradati da un sistema di trasmissione all'altro. I router possono anche essere utilizzati per connettere due o più sottoreti, gruppi logici di dispositivi di rete ciascuno con un differente prefisso di rete.
I router possono fornire connettività indipendente da Internet tra edifici di aziende collocati in diverse aree geografiche, o tra le aziende e Internet, o tra le reti dei fornitori di servizi internet. I router più grandi (come il Cisco CRS-1, Juniper PTX o Huawei NE9000) interconnettono i vari ISP, o possono essere usati nelle reti di grandi aziende. I router più piccoli forniscono connettività alle reti delle case e degli uffici.
All'interno delle aziende è possibile trovare router di tutte le dimensioni. I router più potenti si trovano solitamente presso le sale macchine degli ISP e negli edifici universitari e della ricerca. Anche le grandi aziende hanno bisogno di router potenti per tenere testa alle richieste sempre più crescenti di traffico intranet.
Caratteristica fondamentale dei router è l'utilizzo di indirizzi di livello 3 (rete) del modello OSI (corrispondente al livello IP dello stack TCP/IP), a differenza dello switch o del bridge che instradano a livello locale sulla base degli indirizzi di livello 2 (collegamento dati) detti indirizzi MAC e dell'hub che ripete i segnali elettrici del livello fisico (livello 1). Gli elementi della tabella di instradamento (o routing table) non corrispondono necessariamente a singoli calcolatori ma intere reti (SubNet_ID), ovvero sottoinsiemi anche molto ampi dello spazio di indirizzamento. Questo è fondamentale per la scalabilità delle reti, in quanto permette di gestire reti anche molto grandi facendo crescere le tabelle di instradamento in modo meno che lineare rispetto al numero di host.
Un router può interconnettere reti di livello 2 eterogenee, come ad esempio reti LAN, con un collegamento geografico in tecnologia X.25, Frame Relay o ATM. Inoltre, rispetto a un bridge, un router è in grado di bloccare il traffico broadcast.