Esercizio - tabelle di inoltro e instradamento dei router A e B
In questa pagina 6
Testo. Si consideri la rete in figura. Definire le tabelle di inoltro (forwarding) e di instradamento (routing) dei router e .
Dalla figura. Cinque reti : , , , , . Il router ha tre interfacce: sulla rete ha l'indirizzo ; sulla rete ha ; sulla rete ha . Il router ha tre interfacce: sulla rete ha ; sulla rete ha ; sulla rete ha . Sulla rete c'è anche un router verso Internet, con indirizzo ( sta per la parte di rete: ).
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 → (interfacce e tabella di instradamento, rotta di default), 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 →.
Come si ragiona
Le quattro lettere sono i primi tre byte della rete a cui l'interfaccia appartiene: l'indirizzo completo si ottiene scrivendo il NetID della rete davanti all'ultimo byte. Poi:
- la tabella di inoltro (configurazione delle interfacce) elenca, per ogni interfaccia, indirizzo e maschera ( per i ): serve all'inoltro diretto, cioè verso le reti collegate al router;
- la tabella di instradamento elenca le reti non collegate e il prossimo salto: serve all'inoltro indiretto. Una rete lontana si raggiunge attraverso il router vicino che sta sulla rete in comune.
Reti collegate a : , , . A : , , . La rete in comune () è il collegamento tra i due router.
Router
Interfacce.
| interfaccia (rete) | indirizzo | maschera |
|---|---|---|
| verso la rete | ||
| verso la rete | ||
| verso la rete |
Tabella di instradamento. non è collegato alle reti e : sono dietro , che sulla rete in comune ha indirizzo . Il resto di Internet si raggiunge dal router sulla rete (indirizzo ): rotta di default.
| rete | maschera | prossimo salto |
|---|---|---|
Router
Interfacce.
| interfaccia (rete) | indirizzo | maschera |
|---|---|---|
| verso la rete | ||
| verso la rete | ||
| verso la rete |
Tabella di instradamento. non è collegato a e , dietro (indirizzo sulla rete in comune). Verso Internet l'unica strada passa da , quindi anche la rotta di default punta ad .
| rete | maschera | prossimo salto |
|---|---|---|
Osservazione. In le tre righe hanno lo stesso prossimo salto: le prime due sono contenute nella default e si potrebbero eliminare (tabella a una sola riga); nella soluzione ufficiale restano esplicite per chiarezza. In no: le righe verso hanno un prossimo salto diverso da quello della default.
Perché il prossimo salto è quello. Il prossimo salto deve essere un indirizzo sulla stessa rete di una propria interfaccia, altrimenti il router non saprebbe a quale MAC consegnare il frame (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 : , che è la rete della sua interfaccia (non né ): è quindi l'interfaccia di uscita. Lo stesso vale per (rete ) e per verso (rete ). In questa rete le tabelle si possono compilare a mano (instradamento statico); in una rete più grande le riempie un protocollo come RIP o OSPF (Protocolli di instradamento - RIP, OSPF e BGPIn Internet l'instradamento non si può fare con un solo protocollo, per scalabilità (tabelle troppo grandi) e per autonomia amministrativa: ogni ISP è un sistema autonomo (AS) con il proprio algoritmo. All'interno di un AS si usano i protocolli IGP: RIP (distance vector, numero di salti, massimo 15, aggiornamenti ogni circa 30 s, su UDP porta 520) e OSPF (link state con Dijkstra, aree collegate all'area 0, cinque tipi di LSA, messaggi direttamente in IP). Tra AS si usa BGP4 (path vector, su TCP porta 179, eBGP tra AS e iBGP dentro l'AS, scelta del percorso per politica: preferenza locale, AS-PATH più corto, origine; i cicli si evitano scartando i cammini che contengono già il proprio AS; quattro messaggi: Open, Keepalive, Notification, Update).Protocolli di instradamento - RIP, OSPF e BGP →).
Verifica (esempi di inoltro)
- riceve un pacchetto per : nessuna interfaccia ha la rete ; la tabella ha la riga che combacia; prossimo salto , che sta nella rete dell'interfaccia : esce da lì.
- riceve un pacchetto per un indirizzo esterno (per esempio ): solo la default combacia; prossimo salto sulla rete .
- riceve un pacchetto per : riga , uscita sull'interfaccia .
Confronto con la soluzione ufficiale
Coincide: tabella di con e verso e default ; tabella di con , e default tutti verso . Le interfacce ufficiali sono chiamate , , in ciascun router; qui sono nominate per la rete a cui sono collegate. Verificato con Python.
Errori comuni
- Mettere come prossimo salto un indirizzo di una propria interfaccia invece di quello del router vicino.
- Inserire nella tabella di instradamento le reti collegate direttamente (vanno nella configurazione delle interfacce).
- Dimenticare la rotta di default verso Internet in uno dei due router.
Versione ripasso
Dati. Reti : , , , , . ha , , ; ha , , ; il router verso Internet è . Rete in comune: .
Regola (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 →, 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 →): le interfacce (maschera ) danno l'inoltro diretto; la tabella di instradamento ha solo le reti non collegate, con prossimo salto il router vicino sulla rete in comune.
| router | rete | prossimo salto |
|---|---|---|
| default | ||
| default |
In le prime due righe hanno lo stesso prossimo salto della default e si potrebbero eliminare; in no, perché il loro prossimo salto è diverso.
Errori: prossimo salto uguale a una propria interfaccia; reti dirette in tabella; default dimenticata.