Esercizio - tabella di instradamento del router R1 e inoltro di due pacchetti
In questa pagina 5
Testo. La figura mostra una parte immaginaria di Internet. Il router ha tre interfacce: verso la rete (indirizzo ), verso la rete (indirizzo ) e verso la rete (indirizzo ). Sulla rete ci sono anche il router ( lato ), che è il default router verso il resto di Internet, e il router ( lato ), che collega la rete (suo indirizzo ).
- Mostrare le tabelle di instradamento di .
- riceve un pacchetto con destinazione : mostrare come viene inoltrato.
- riceve due pacchetti con destinazioni e : mostrare come vengono inoltrati.
Teoria usata: Instradamento e inoltroL'inoltro (forwarding) mette il pacchetto sulla strada verso la destinazione, un salto alla volta (hop by hop). Se la destinazione è nella stessa rete del mittente l'inoltro è diretto (si usa l'ARP per il MAC del destinatario), altrimenti è indiretto: il pacchetto va al router successivo (next hop) indicato dalla tabella di instradamento, o al default gateway. Con le netmask: l'inoltro è diretto attraverso l'interfaccia $x$ se $\text{IP(dst)}\ \text{AND}\ \text{NM}(x)=\text{IP}(x)\ \text{AND}\ \text{NM}(x)$; altrimenti si scorre la tabella dalla maschera più lunga (longest prefix match) e si usa il primo match. La riga con rete $0.0.0.0$ e maschera $0.0.0.0$ (default route) corrisponde sempre. L'aggregazione di rotte (route aggregation) riduce la tabella, e nell'inoltro con etichette (MPLS) la tabella si consulta per indice.Instradamento e inoltro → (inoltro diretto e indiretto, rotta di default, prefisso più lungo), Livello di rete e indirizzamento IPIl livello di rete (network layer) porta i datagrammi da host a host attraverso i router: incapsula (framing), sceglie il percorso (routing) e sposta il pacchetto da un ingresso a un'uscita del router (forwarding); in Internet lascia ai livelli superiori controllo d'errore, di flusso e di congestione. Un indirizzo IPv4 è di 32 bit, diviso in prefisso (rete, $n$ bit) e suffisso (host, $32-n$ bit). L'indirizzamento a classi (A, B, C, D, E) è obsoleto; oggi si usa quello senza classi (CIDR): data una notazione $a.b.c.d/n$ si ricavano $N=2^{32-n}$ indirizzi, indirizzo di rete (suffisso tutto 0) e di broadcast (suffisso tutto 1), oppure con la netmask: rete $=$ indirizzo AND maschera, broadcast $=$ indirizzo OR (NOT maschera).Livello di rete e indirizzamento IP → (classi, maschera).
Punto 1: le tabelle
Un router ha due strutture: la configurazione delle interfacce (indirizzo e maschera di ciascuna, da cui si ricavano le reti raggiungibili con inoltro diretto) e la tabella di instradamento (reti lontane e prossimo salto, inoltro indiretto).
Le reti sono indirizzate con le classi, quindi la maschera si ricava dal primo byte: (classe A, ), e (classe B, ), (classe C, ).
Interfacce di .
| indirizzo | maschera | interfaccia | rete |
|---|---|---|---|
Tabella di instradamento di .
| rete | maschera | prossimo salto |
|---|---|---|
| () | ||
| (, default) |
Perché due righe: la rete è dietro , che sta sulla rete di ; tutto il resto di Internet è dietro . Le altre reti (, , ) non servono nella tabella: sono già nelle interfacce.
Punto 2: pacchetto per
- Inoltro diretto? Si confronta la destinazione con la rete di ogni interfaccia (l'AND con la maschera tiene i byte dove la maschera vale e azzera gli altri: Algebra di Boole e porte logicheVariabili booleane, operatori AND, OR, NOT e derivati (NAND, NOR, XOR, XNOR) con tabelle di verità; assiomi e teoremi dell'algebra di Boole, De Morgan; porte logiche e completezza di NAND e NOR; semplificazione algebrica con esempio.Algebra di Boole e porte logiche →): ; , diverso da e da . Nessun match: inoltro indiretto.
- Tabella, dalla maschera più lunga. La prima riga ha maschera : , uguale all'indirizzo di rete della riga: match. Si ferma qui (la default avrebbe maschera e vale solo se non c'è niente di meglio).
- Prossimo salto . Quale interfaccia? Si cerca l'interfaccia la cui rete lo contiene: , la rete di . Il pacchetto esce da e (grazie ad ARP, Protocollo ARPUn host ha tre «nomi»: nome DNS, indirizzo IP (rete) e indirizzo MAC (collegamento). Per spedire un datagramma IP in un frame serve il MAC del prossimo nodo, che si ottiene da quel nodo con ARP: richiesta in broadcast (MAC destinazione FF:FF:FF:FF:FF:FF, contiene IP e MAC del mittente e l'IP cercato) e risposta unicast con il MAC richiesto, memorizzata nella cache ARP. ARP risolve sempre il prossimo salto (host di destinazione o router), non la destinazione finale. Un broadcast non esce dalla sottorete: il proxy ARP del router risponde con il proprio MAC.Protocollo ARP →) è consegnato a .
Punto 3: i due pacchetti
- : come sopra, indiretto via , uscita .
- : primo byte , classe B, indirizzo di rete (mascherando i primi bit) . Interfacce: nessuna rete coincide (, , ): inoltro indiretto. Tabella: la riga darebbe : no. Resta la rotta di default (maschera , che combacia con qualsiasi indirizzo). Prossimo salto (), che appartiene alla rete : uscita . Il pacchetto parte verso "il resto di Internet", dove la rete non è nota a .
Confronto con la soluzione ufficiale
Coincide: tabella con riga e default ; pacchetto via (); pacchetto via default (). Discrepanza di stampa: nella figura dell'esercizio l'interfaccia verso la rete ha indirizzo , nelle slide delle soluzioni compare " / rete ": è un refuso, che non influisce sui risultati. Verificato con Python.
Errori comuni
- Provare la default per prima: la default ha sempre la maschera più corta e si applica solo se nessuna riga più specifica combacia.
- Scrivere l'interfaccia di uscita senza controllare in quale rete cade il prossimo salto (qui il prossimo salto, o , è nella rete di ).
- Inserire in tabella le reti collegate direttamente (vanno nelle interfacce).
Versione ripasso
Dati. : , , . Sulla rete : (, default router), (, verso ).
| rete | maschera | prossimo salto |
|---|---|---|
| () | ||
| () |
Algoritmo: diretto (dest AND maschera interfaccia) tabella dalla maschera più lunga uscita interfaccia che contiene il prossimo salto.
| dest | diretto | tabella | prossimo salto | uscita |
|---|---|---|---|---|
| no | : match | |||
| no | darebbe ; default |
Il prossimo salto sta in , rete di (Protocollo ARPUn host ha tre «nomi»: nome DNS, indirizzo IP (rete) e indirizzo MAC (collegamento). Per spedire un datagramma IP in un frame serve il MAC del prossimo nodo, che si ottiene da quel nodo con ARP: richiesta in broadcast (MAC destinazione FF:FF:FF:FF:FF:FF, contiene IP e MAC del mittente e l'IP cercato) e risposta unicast con il MAC richiesto, memorizzata nella cache ARP. ARP risolve sempre il prossimo salto (host di destinazione o router), non la destinazione finale. Un broadcast non esce dalla sottorete: il proxy ARP del router risponde con il proprio MAC.Protocollo ARP → per consegnare). Nelle slide delle soluzioni la rete di è invece di : refuso senza effetti.
Errori: default per prima; reti dirette in tabella; uscita senza controllare la rete del prossimo salto.