Esercizio - Blocco 131.175.208.0-21 con quattro LAN e inoltro di quattro pacchetti
In questa pagina 4
Testo (tema d'esame, sessione di febbraio, esercizio 2). Alla rete in figura è assegnato il blocco . R0 collega la rete a Internet; R1 è collegato a R0, a R2 e a R3. Dietro R2, uno switch collega LAN 1 ( host) e LAN 2 ( host); dietro R3 ci sono LAN 3 ( host) e LAN 4 ( host).
- Dividere il blocco in sottoreti come in figura; per ciascuna, indirizzo di rete, maschera, broadcast diretto, massimo numero di host (escluso il collegamento R1–R0). Vanno configurati anche i collegamenti punto-punto.
- Un router ha la tabella e le interfacce seguenti.
| Rete | Maschera | Prossimo salto |
|---|---|---|
| Interfaccia | Indirizzo | Maschera | MTU |
|---|---|---|---|
| eth0 | |||
| eth1 | |||
| eth2 |
Come sono trattati: (a) da eth1, B, DF; (b) da eth0, B, DF; (c) da eth0, B, DF; (d) da eth0, B, DF (frammenti).
Teoria usata: Subnetting e supernettingIl subnetting divide un blocco di indirizzi in sottoblocchi più piccoli allungando la maschera ($n_{\text{sub}}=n_{\text{rete}}+s$, con $2^s$ sottoreti); il supernetting (aggregazione CIDR) fa l'opposto, accorciando il prefisso per unire blocchi contigui in uno più grande. Regole di progetto: ogni sottorete ha un numero di indirizzi potenza di 2 ($M=2^k\ge$ host richiesti $+2$), prefisso $n=32-k$, indirizzo iniziale multiplo di $M$; si assegnano prima le sottoreti più grandi. Per aggregare $2^j$ blocchi di prefisso $n$ servono blocchi contigui il cui primo indirizzo sia multiplo della dimensione dell'aggregato, e il nuovo prefisso è $n-j$.Subnetting e supernetting →, 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 →, 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 →, Datagramma IP e frammentazioneIPv4 è un servizio senza connessione, non affidabile, best effort: i pacchetti (datagrammi) possono essere persi, corrotti, riordinati o ritardati. L'intestazione ha 20-60 byte (HLen conta parole da 4 byte, da 5 a 15); il campo Total Length (16 bit) dà la lunghezza totale fino a 65 535 byte; TTL limita i salti, Protocol identifica il protocollo trasportato (1 ICMP, 6 TCP, 17 UDP), il checksum copre solo l'intestazione. Se un datagramma è più grande dell'MTU del collegamento viene frammentato: solo il payload si divide, ogni frammento ha un'intestazione propria; l'Offset (13 bit) è in unità di 8 byte, MF=1 in tutti i frammenti tranne l'ultimo, e il riassemblaggio avviene solo a destinazione.Datagramma IP e frammentazione →.
Domanda 1: piano di indirizzamento
Quali sono i domini di broadcast. LAN 1 e LAN 2 sono sullo stesso switch: una sola sottorete con host. LAN 3 ha host, LAN 4 ne ha . In più due collegamenti punto-punto (R1–R2 e R1–R3).
Dimensione di ogni blocco: il più piccolo (, Esponenziale e logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →; si aggiungono perché rete e broadcast non sono assegnabili). Il prefisso è .
| Sottorete | Host | Maschera | Host max | |
|---|---|---|---|---|
| LAN 1 + LAN 2 | () | |||
| LAN 3 | () | |||
| LAN 4 | () | |||
| collegamento R1–R2 | ||||
| collegamento R1–R3 |
Allocazione (dal più grande), nel blocco (da a ):
| Sottorete | Rete | Broadcast | Host max |
|---|---|---|---|
| LAN 1 + LAN 2 | |||
| LAN 3 | |||
| LAN 4 | |||
| R1–R2 | |||
| R1–R3 |
La soluzione ufficiale lascia un vuoto fra LAN 4 e i collegamenti (che mette in e ): è altrettanto valido. Un piano compatto metterebbe i collegamenti subito dopo LAN 4, in e (si controlla che i blocchi non si sovrappongano e stiano nel ).
Domanda 2: inoltro dei quattro pacchetti
Reti delle interfacce (ultimo byte AND ):
- eth0: (–);
- eth1: (–);
- eth2: (–).
Righe della tabella: copre –; copre –; copre –; copre –. L'interfaccia di uscita è quella la cui rete contiene il prossimo salto: eth0, eth1, eth2, eth0, eth2.
Passaggi dell'AND (AND bit a bitAND vale 1 solo se entrambi i bit valgono 1Algebra di Boole e porte logiche →) sull'ultimo byte con maschera : eth0 ; eth1 ; eth2 . Per i pacchetti: (a) , quindi con la maschera la rete di è e non è né (eth1), né (eth2), né (eth0), ma coincide con la riga ; (b) : è la rete di eth0; (d) : la rete è , diversa da e da (le righe ), ma con la maschera il terzo byte e il quarto si azzera: , uguale alla riga .
| Pacchetto | Analisi | Esito | |
|---|---|---|---|
| (a) | da eth1, B, DF | non è in nessuna rete delle interfacce; righe che lo contengono: () e (); vince la più specifica, , prossimo salto (in eth0) | inoltro indiretto via eth0; |
| (b) | da eth0, B | è nella rete di eth0 (–): inoltro diretto verso eth0, ma il pacchetto arriva da eth0 | nessun inoltro |
| (c) | da eth0, B | è l'indirizzo dell'interfaccia eth1 del router stesso | consegnato ai livelli superiori |
| (d) | da eth0, B, DF | non è in (–) né in (–); resta la riga , prossimo salto (in eth1) | inoltro indiretto via eth1; con DF: frammentazione in frammenti |
Frammenti di (d). Intestazione B, payload B. MTU : payload massimo per frammento (multiplo di ). frammenti: da B (payload ) e uno con payload B, cioè B.
Confronto con la soluzione ufficiale
| Domanda | Mio | Ufficiale |
|---|---|---|
| 1 | , , , , | uguale (broadcast e host max uguali) |
| 2 (a) | indiretto via eth0 | indiretto via eth0 |
| 2 (b) | nessun inoltro | nessun inoltro |
| 2 (c) | livelli superiori | livelli superiori |
| 2 (d) | indiretto via eth1, frammenti | indiretto via eth1, frammenti |
Coincide.
Errori comuni
- Trattare LAN 1 e LAN 2 come due sottoreti separate ( e ): lo stesso switch le rende un unico dominio di broadcast.
- Non scegliere la rotta più specifica: per (a) l'indirizzo è coperto anche dalla riga , ma vale la .
- In (b), inoltrare con inoltro diretto un pacchetto che rientrerebbe dalla stessa interfaccia da cui è arrivato.
- Dimenticare che (c) è un indirizzo del router stesso: non si inoltra, si consegna.
- Dimenticare che il payload di ogni frammento (tranne l'ultimo) deve essere multiplo di : qui lo è; con un MTU di si userebbe e non .
(Verificato con Python: modulo ipaddress per reti e broadcast; funzione di inoltro con rotta più specifica, MTU e DF; allocazione dei blocchi.)
Versione ripasso
Dati. Blocco ( indirizzi). LAN 1+2: host (stesso switch), LAN 3: , LAN 4: , due collegamenti punto-punto. (Subnetting e supernettingIl subnetting divide un blocco di indirizzi in sottoblocchi più piccoli allungando la maschera ($n_{\text{sub}}=n_{\text{rete}}+s$, con $2^s$ sottoreti); il supernetting (aggregazione CIDR) fa l'opposto, accorciando il prefisso per unire blocchi contigui in uno più grande. Regole di progetto: ogni sottorete ha un numero di indirizzi potenza di 2 ($M=2^k\ge$ host richiesti $+2$), prefisso $n=32-k$, indirizzo iniziale multiplo di $M$; si assegnano prima le sottoreti più grandi. Per aggregare $2^j$ blocchi di prefisso $n$ servono blocchi contigui il cui primo indirizzo sia multiplo della dimensione dell'aggregato, e il nuovo prefisso è $n-j$.Subnetting e supernetting →)
- Piano. LAN 1+2 (bc ); LAN 3 (bc ); LAN 4 (bc ); : e .
- Reti delle interfacce. eth0 , eth1 , eth2 . (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 →)
- (a) da eth1: riga (più specifica del ), next hop eth0: indiretto. (b) da eth0: diretto ma in = out: nessun inoltro. (c) : indirizzo di eth1, livelli superiori. (d) , B, DF: riga , next hop eth1, MTU : frammenti.
- Errore tipico: LAN dello stesso switch separate; rotta meno specifica.