Salta al contenuto
Note per Studenti Esercizio - Blocco 131.175.208.0-21 con quattro LAN e inoltro di quattro pacchetti

Esercizio - Blocco 131.175.208.0-21 con quattro LAN e inoltro di quattro pacchetti

Esame
In questa pagina 4

Testo (tema d'esame, sessione di febbraio, esercizio 2). Alla rete in figura è assegnato il blocco 131.175.208.0/21131.175.208.0/21. R0 collega la rete a Internet; R1 è collegato a R0, a R2 e a R3. Dietro R2, uno switch collega LAN 1 (200200 host) e LAN 2 (250250 host); dietro R3 ci sono LAN 3 (400400 host) e LAN 4 (101101 host).

  1. 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.
  2. Un router ha la tabella e le interfacce seguenti.
Rete Maschera Prossimo salto
180.12.144.64180.12.144.64 255.255.255.192255.255.255.192 180.12.144.253180.12.144.253
180.12.144.0180.12.144.0 255.255.254.0255.255.254.0 180.12.144.40180.12.144.40
180.12.145.0180.12.145.0 255.255.255.192255.255.255.192 180.12.144.130180.12.144.130
180.12.145.64180.12.145.64 255.255.255.192255.255.255.192 180.12.144.200180.12.144.200
0.0.0.00.0.0.0 0.0.0.00.0.0.0 180.12.144.150180.12.144.150
Interfaccia Indirizzo Maschera MTU
eth0 180.12.144.254180.12.144.254 255.255.255.192255.255.255.192 10001000
eth1 180.12.144.25180.12.144.25 255.255.255.192255.255.255.192 500500
eth2 180.12.144.180180.12.144.180 255.255.255.192255.255.255.192 12001200

Come sono trattati: (a) 180.12.144.95180.12.144.95 da eth1, 300300 B, DF=1=1; (b) 180.12.144.222180.12.144.222 da eth0, 300300 B, DF=1=1; (c) 180.12.144.25180.12.144.25 da eth0, 400400 B, DF=1=1; (d) 180.12.145.203180.12.145.203 da eth0, 15 00015\,000 B, DF=0=0 (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 200+250=450200+250=450 host. LAN 3 ha 400400 host, LAN 4 ne ha 101101. In più due collegamenti punto-punto (R1–R2 e R1–R3).

Dimensione di ogni blocco: il più piccolo 2b≥host+22^b\ge\text{host}+2 (b=⌈log⁡2(host+2)⌉b=\lceil\log_2(\text{host}+2)\rceil, 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 22 perché rete e broadcast non sono assegnabili). Il prefisso è 32−b32-b.

Sottorete Host bb Maschera Host max
LAN 1 + LAN 2 450450 99 (452≤512452\le512) /23/23 510510
LAN 3 400400 99 (402≤512402\le512) /23/23 510510
LAN 4 101101 77 (103≤128103\le128) /25/25 126126
collegamento R1–R2 22 22 /30/30 22
collegamento R1–R3 22 22 /30/30 22

Allocazione (dal più grande), nel blocco 131.175.208.0/21131.175.208.0/21 (da 208.0208.0 a 215.255215.255):

Sottorete Rete Broadcast Host max
LAN 1 + LAN 2 131.175.208.0/23131.175.208.0/23 131.175.209.255131.175.209.255 510510
LAN 3 131.175.210.0/23131.175.210.0/23 131.175.211.255131.175.211.255 510510
LAN 4 131.175.212.0/25131.175.212.0/25 131.175.212.127131.175.212.127 126126
R1–R2 131.175.214.0/30131.175.214.0/30 131.175.214.3131.175.214.3 22
R1–R3 131.175.214.4/30131.175.214.4/30 131.175.214.7131.175.214.7 22

La soluzione ufficiale lascia un vuoto fra LAN 4 e i collegamenti (che mette in 214.0214.0 e 214.4214.4): è altrettanto valido. Un piano compatto metterebbe i collegamenti subito dopo LAN 4, in 131.175.212.128/30131.175.212.128/30 e 131.175.212.132/30131.175.212.132/30 (si controlla che i blocchi non si sovrappongano e stiano nel /21/21).

Domanda 2: inoltro dei quattro pacchetti

Reti delle interfacce (ultimo byte AND 192192):

  • eth0: 180.12.144.254/26⇒180.12.144.192/26180.12.144.254/26\Rightarrow180.12.144.192/26 (.192.192–.255.255);
  • eth1: 180.12.144.25/26⇒180.12.144.0/26180.12.144.25/26\Rightarrow180.12.144.0/26 (.0.0–.63.63);
  • eth2: 180.12.144.180/26⇒180.12.144.128/26180.12.144.180/26\Rightarrow180.12.144.128/26 (.128.128–.191.191).

Righe della tabella: 180.12.144.64/26180.12.144.64/26 copre .144.64.144.64–.144.127.144.127; 180.12.144.0/23180.12.144.0/23 copre 180.12.144.0180.12.144.0–180.12.145.255180.12.145.255; 180.12.145.0/26180.12.145.0/26 copre 145.0145.0–145.63145.63; 180.12.145.64/26180.12.145.64/26 copre 145.64145.64–145.127145.127. L'interfaccia di uscita è quella la cui rete contiene il prossimo salto: 144.253→144.253\to eth0, 144.40→144.40\to eth1, 144.130→144.130\to eth2, 144.200→144.200\to eth0, 144.150→144.150\to 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 192=11000000192=11000000: eth0 254=11111110→11000000=192254=11111110\to11000000=192; eth1 25=00011001→025=00011001\to0; eth2 180=10110100→10000000=128180=10110100\to10000000=128. Per i pacchetti: (a) 95=01011111→01000000=6495=01011111\to01000000=64, quindi con la maschera /26/26 la rete di 180.12.144.95180.12.144.95 è 180.12.144.64180.12.144.64 e non è né 00 (eth1), né 128128 (eth2), né 192192 (eth0), ma coincide con la riga 180.12.144.64/26180.12.144.64/26; (b) 222=11011110→192222=11011110\to192: è la rete di eth0; (d) 203=11001011→192203=11001011\to192: la rete è 180.12.145.192180.12.145.192, diversa da 145.0145.0 e da 145.64145.64 (le righe /26/26), ma con la maschera 255.255.254.0255.255.254.0 il terzo byte 145=10010001→10010000=144145=10010001\to10010000=144 e il quarto si azzera: 180.12.144.0180.12.144.0, uguale alla riga /23/23.

Pacchetto Analisi Esito
(a) 180.12.144.95180.12.144.95 da eth1, 300300 B, DF=1=1 non è in nessuna rete delle interfacce; righe che lo contengono: .144.64/26.144.64/26 (/26/26) e .144.0/23.144.0/23 (/23/23); vince la più specifica, /26/26, prossimo salto 180.12.144.253180.12.144.253 (in eth0) inoltro indiretto via eth0; 300≤1000300\le1000
(b) 180.12.144.222180.12.144.222 da eth0, 300300 B 222222 è nella rete di eth0 (192192–255255): inoltro diretto verso eth0, ma il pacchetto arriva da eth0 nessun inoltro
(c) 180.12.144.25180.12.144.25 da eth0, 400400 B è l'indirizzo dell'interfaccia eth1 del router stesso consegnato ai livelli superiori
(d) 180.12.145.203180.12.145.203 da eth0, 15 00015\,000 B, DF=0=0 145.203145.203 non è in 145.0/26145.0/26 (00–6363) né in 145.64/26145.64/26 (6464–127127); resta la riga /23/23, prossimo salto 180.12.144.40180.12.144.40 (in eth1) inoltro indiretto via eth1; 15 000>50015\,000>500 con DF=0=0: frammentazione in 3232 frammenti

Frammenti di (d). Intestazione 2020 B, payload 14 98014\,980 B. MTU 500500: payload massimo per frammento 480480 (multiplo di 88). 14 980/480=31,2⇒3214\,980/480=31{,}2\Rightarrow32 frammenti: 3131 da 500500 B (payload 480480) e uno con payload 14 980−31⋅480=10014\,980-31\cdot480=100 B, cioè 120120 B.

Confronto con la soluzione ufficiale

Domanda Mio Ufficiale
1 131.175.208.0/23131.175.208.0/23, 210.0/23210.0/23, 212.0/25212.0/25, 214.0/30214.0/30, 214.4/30214.4/30 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, 3232 frammenti indiretto via eth1, 3232 frammenti

Coincide.

Errori comuni

  • Trattare LAN 1 e LAN 2 come due sottoreti separate (/24/24 e /24/24): lo stesso switch le rende un unico dominio di broadcast.
  • Non scegliere la rotta più specifica: per (a) l'indirizzo 144.95144.95 è coperto anche dalla riga /23/23, ma vale la /26/26.
  • 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 88: qui 500−20=480500-20=480 lo è; con un MTU di 10001000 si userebbe 976976 e non 980980.

(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 /21/21 (20482048 indirizzi). LAN 1+2: 450450 host (stesso switch), LAN 3: 400400, LAN 4: 101101, 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 →)

Lezioni in cui compare

Teoria collegata