Ogni implementazione IP è guidata da una tabella di routing IP.
La tabella di routing è diversa dalla tabelle di forward.
Come abbiamo visto la tabella di forward si basa sul longest prefix match.
Ma come fa a sapere un router (un tabella di forward) a sapere in quale uscita inoltrare i paccehtti?
Entra in gioco, qui, la tabella di routing, La tabella di routing potrebbe contenere tutte le informazioni relative a tutti i router della rete, così da avere le informazioni adatte per stabile in quale uscita dirigere un pacchetto. Tuttavia una tabella contenenti così tante informazioni sarebbe troppo costosa da mantenere su un dispositivo come un router, oltre che sarebbe costosa da consultare e aggiornare. Allora le tabelle di routing mantengono informazioni solo riguardo il next hop.
Come vediamo in figura, se l'host A vuole raggiungere l'host B, allora deve inoltrare il pacchetto al next hop R1. Non c'è scritto che dopo R1 dovrebbe raggiungere R2 e che dopo R2 può raggiungere B. Poi in R1, abbiamo che se la destinazione è B, il next hop deve essere R2.
La tabella di routing è memorizzata in un router o in un host,
La costruzione di tale tabella è affidata ad algoritmi di routing che aggiornano nel corso del tempo le informazioni di tale tabella in base allo stato della rete circostante (percorsi dinamici) che vedremo nel prossimo capitolo, oppure la sua configurazione può essere affidata ad un amministratore di rete (percorsi statici).
Le tabelle di forwarding vengono create a partire dalle tabelle di routing, sono molto più veloci perché sono installate direttamente nell'hardware del router e anch'esse si basano sul next hop.
Le tabelle di inoltro sono quelle che vengono effettivamente consultate quando un router riceve un pacchetto da un interfaccia di input: guarda la tabella di inoltro per scegliere in quale interfaccia di output mandare il pacchetto. Mentre le tabelle di routing sono utilizzate per forgiare le tabelle di inoltro del router.
Ricordiamo ancora una volta, visto che la differenza è molto sottile, che le tabelle di forwarding indirizzano un pacchetto, in base all'indirizzo di destinazione verso una interfaccia. Mentre nelle tabelle di routing parliamo di inoltro verso altri hop, ovvero router.
Se un amministratore di sistema vuole che tutti i pacchetti in arrivo all'host B siano consegnati dal ruoter 3, anziché passare per il router 1, si può impostare una regola specifica per l'host B nella tabella di routing dell'host A.
In A la regola esprimerà qualcosa come: se la destinazione è l'host B il next hop è R3.
Ancora sulla differenza tra forwarding e routing. Il forwarding consente al router di inoltrare un pacchetto su una certa porta di output (fisica del router). Mentre il routing è il percorso totale, calcolato da algoritmi di routing che un pacchetto deve seguire per raggiungere la destinazione.
Tabella di routing statica:
Tabella di routing dinamica:
Quando il ruoter vuole instradare un pacchetto (non inoltrare):
Una tabella di routing è organizzata in uno schema gerarchico:
Ogni datagramma contiene l'IP di destinazione:
In una rete di questo tipo ci sono due LAN (network 4 e 2).
Una rete wireless (network 1).
Una rete punto a punto tra i router R2 ed R3 (network 3).
La tabella di inoltro del router R2 è la seguente:
A vuole inviare un datagramma a B.
A livello IP viene creato il datagramma con IP sorgente (di A) e IP destinatario (di B).
A livello ethernet (livello di collegamento) viene creato un frame ethernet con MAC dell'host sorgente e MAC destinatario (ATTENZIONE: il destinatario del frame è il router e non l'host B).
Il frame viene ricevuto da R che legge il datagramma estratto dal frame e vede che la destinazione è un IP esterno alla sua rete di appartenenza.
Il router crea un nuovo frame con il suo MAC come indirizzo sorgente e come MAC di destinazione il MAC dell'host B (direttamente connesso ad un interfaccia del router, se ci fosse stato un altro router dopo R, il MAC di destinazione sarebbe stato il MAC di quel router). Notiamo che il datagramma resta invariato. Ovviamente in tutti questi passaggi vengono fatte eventuali richieste ARP del caso.