Salta al contenuto
Note per Studenti Esercizio - piano di indirizzamento con cinque router e collegamenti punto-punto

Esercizio - piano di indirizzamento con cinque router e collegamenti punto-punto

In questa pagina 7

Testo. Indirizzo di rete 195.56.78.0/23195.56.78.0/23. La rete ha cinque router R1,…,R5R_1,\dots,R_5: R1R_1 è collegato a un router esterno RxR_x (verso Internet, indirizzi 190.131.99.1190.131.99.1 lato RxR_x e 190.131.99.2190.131.99.2 lato R1R_1) e, con quattro collegamenti punto-punto pp1,…,pp4pp_1,\dots,pp_4, a R2,…,R5R_2,\dots,R_5. Ogni RiR_i (i=2,…,5i=2,\dots,5) ha una LAN: R2R_2 ha eth1eth_1, con un bridge che la collega a eth0eth_0; R3R_3 ha eth2eth_2; R4R_4 ha eth3eth_3; R5R_5 ha eth4eth_4.

  1. Partizionare il blocco in modo che le sottoreti contengano: eth0eth_0: 150150 host, eth1eth_1: 6060, eth2eth_2: 5555, eth3eth_3: 5757, eth4eth_4: 6161.
  2. I collegamenti punto-punto sono gigabit-ethernet full duplex. Suddividere la rete in sottoreti e definire indirizzo IP e maschera di ciascuna (LAN e punto-punto). Compilare le tabelle di inoltro (forwarding) e di instradamento (routing) dei router.

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 → (regole di progetto), 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), 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 →.

Passo 1: quante sottoreti ci sono davvero

Un bridge lavora al livello di collegamento e non separa i domini di broadcast (Elementi di rete - hub, switch e routerI dispositivi che interconnettono le reti si distinguono per il livello della pila che arrivano a leggere. Hub (livello 1): ripetitore, rigenera il segnale e lo manda su tutte le porte, tutte le stazioni condividono la capacità. Bridge e switch (livello 2): leggono l'indirizzo MAC e inoltrano solo verso la porta giusta, imparando la tabella (FDB) dagli indirizzi sorgente. Router (livello 3): leggono l'indirizzo IP e collegano reti indipendenti (internetwork). Switch e bridge isolano il traffico e sono plug and play; il router fa instradamento ottimo ma va configurato.Elementi di rete - hub, switch e router →; il router, invece, sì: ogni sua interfaccia è una rete diversa): eth0eth_0 ed eth1eth_1 formano un'unica rete IP, che chiamiamo AA, con 150+60=210150+60=210 host. Le altre LAN sono B=eth2B=eth_2 (5555), C=eth3C=eth_3 (5757) e D=eth4D=eth_4 (6161). Ogni collegamento punto-punto è una rete a sé con due soli nodi (le interfacce dei due router): pp1,…,pp4pp_1,\dots,pp_4. In tutto A,B,C,DA,B,C,D più 44 punto-punto: 88 sottoreti (nelle slide chiamate AA–DD ed EE–HH).

Passo 2: dimensioni

Si conta anche l'interfaccia del router sulla LAN (il router è un nodo della LAN) e i due indirizzi riservati di rete e broadcast.

sottorete host + router indirizzi minimi M=2kM=2^k bit host prefisso
AA 210210 211211 213213 256256 88 /24/24
BB 5555 5656 5858 6464 66 /26/26
CC 5757 5858 6060 6464 66 /26/26
DD 6161 6262 6464 6464 66 /26/26
ppipp_i 00 22 44 44 22 /30/30

Gli esponenti vengono dal logaritmo: ⌈log⁡2213⌉=8\lceil\log_2 213\rceil=8, ⌈log⁡258⌉=⌈log⁡260⌉=⌈log⁡264⌉=6\lceil\log_2 58\rceil=\lceil\log_2 60\rceil=\lceil\log_2 64\rceil=6 (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 →); per esempio 27=128<213≤2562^7=128<213\le256 e 25=32<582^5=32<58. DD è il caso limite: 6161 host più il router fanno 62=64−262=64-2, entra giusto. Il prefisso si ricava dal blocco /23/23: 23+(32−23−bit host)23+(32-23-\text{bit host}), cioè 32−bit host32-\text{bit host}.

Passo 3: assegnazione, dal blocco più grande al più piccolo

Il blocco 195.56.78.0/23195.56.78.0/23 ha 512512 indirizzi, da 195.56.78.0195.56.78.0 a 195.56.79.255195.56.79.255.

sottorete rete primo host ultimo host broadcast
AA (eth0+eth1) 195.56.78.0/24195.56.78.0/24 .78.1.78.1 .78.254.78.254 195.56.78.255195.56.78.255
BB (eth2) 195.56.79.0/26195.56.79.0/26 .79.1.79.1 .79.62.79.62 195.56.79.63195.56.79.63
CC (eth3) 195.56.79.64/26195.56.79.64/26 .79.65.79.65 .79.126.79.126 195.56.79.127195.56.79.127
DD (eth4) 195.56.79.128/26195.56.79.128/26 .79.129.79.129 .79.190.79.190 195.56.79.191195.56.79.191
pp1pp_1 (R1R_1-R2R_2) 195.56.79.192/30195.56.79.192/30 .79.193.79.193 .79.194.79.194 195.56.79.195195.56.79.195
pp2pp_2 (R1R_1-R3R_3) 195.56.79.196/30195.56.79.196/30 .79.197.79.197 .79.198.79.198 195.56.79.199195.56.79.199
pp3pp_3 (R1R_1-R4R_4) 195.56.79.200/30195.56.79.200/30 .79.201.79.201 .79.202.79.202 195.56.79.203195.56.79.203
pp4pp_4 (R1R_1-R5R_5) 195.56.79.204/30195.56.79.204/30 .79.205.79.205 .79.206.79.206 195.56.79.207195.56.79.207

Controllo di allineamento: AA parte a 00 (multiplo di 256256), B,C,DB,C,D a 0,64,1280,64,128 (multipli di 6464), i punto-punto a 192,196,200,204192,196,200,204 (multipli di 44). Si usano 256+3⋅64+4⋅4=464256+3\cdot64+4\cdot4=464 indirizzi su 512512: restano liberi 195.56.79.208195.56.79.208–195.56.79.255195.56.79.255 (4848 indirizzi).

Passo 4: indirizzi delle interfacce

La convenzione delle slide: ogni router prende l'ultimo indirizzo utilizzabile della LAN che serve, gli host i primi.

router interfaccia indirizzo/maschera
R2R_2 LAN AA 195.56.78.254/24195.56.78.254/24
R2R_2 pp1pp_1 195.56.79.193/30195.56.79.193/30
R3R_3 LAN BB 195.56.79.62/26195.56.79.62/26
R3R_3 pp2pp_2 195.56.79.197/30195.56.79.197/30
R4R_4 LAN CC 195.56.79.126/26195.56.79.126/26
R4R_4 pp3pp_3 195.56.79.202/30195.56.79.202/30
R5R_5 LAN DD 195.56.79.190/26195.56.79.190/26
R5R_5 pp4pp_4 195.56.79.206/30195.56.79.206/30
R1R_1 pp1pp_1 195.56.79.194/30195.56.79.194/30
R1R_1 pp2pp_2 195.56.79.198/30195.56.79.198/30
R1R_1 pp3pp_3 195.56.79.201/30195.56.79.201/30
R1R_1 pp4pp_4 195.56.79.205/30195.56.79.205/30
R1R_1 verso RxR_x 190.131.99.2190.131.99.2 (maschera non data)

Sui collegamenti punto-punto i due indirizzi di un /30/30 sono il primo e il secondo host: nel nostro piano le interfacce lato R2R_2, R3R_3 sono .193.193 e .197.197 e quelle lato R1R_1 sono .194.194 e .198.198, mentre per pp3pp_3 e pp4pp_4 è R1R_1 a prendere .201.201 e .205.205 (così sono coerenti le tabelle ufficiali, vedi sotto).

Passo 5: tabelle

Tabella di inoltro (interfacce): raccoglie le reti raggiungibili direttamente. Per R1R_1 sono i quattro /30/30 (195.56.79.192/30195.56.79.192/30, .196/30.196/30, .200/30.200/30, .204/30.204/30) e la rete verso RxR_x. Per R2R_2: 195.56.78.0/24195.56.78.0/24 e 195.56.79.192/30195.56.79.192/30; per R3R_3: 195.56.79.0/26195.56.79.0/26 e 195.56.79.196/30195.56.79.196/30; per R4R_4: 195.56.79.64/26195.56.79.64/26 e 195.56.79.200/30195.56.79.200/30; per R5R_5: 195.56.79.128/26195.56.79.128/26 e 195.56.79.204/30195.56.79.204/30.

Tabella di instradamento (rotte indirette).

R1R_1:

rete maschera prossimo salto
195.56.78.0195.56.78.0 255.255.255.0255.255.255.0 195.56.79.193195.56.79.193 (R2R_2)
195.56.79.0195.56.79.0 255.255.255.192255.255.255.192 195.56.79.197195.56.79.197 (R3R_3)
195.56.79.64195.56.79.64 255.255.255.192255.255.255.192 195.56.79.202195.56.79.202 (R4R_4)
195.56.79.128195.56.79.128 255.255.255.192255.255.255.192 195.56.79.206195.56.79.206 (R5R_5)
0.0.0.00.0.0.0 0.0.0.00.0.0.0 190.131.99.1190.131.99.1 (RxR_x, verso Internet)

(Nella soluzione ufficiale compaiono le prime quattro righe; la rotta di default verso RxR_x è necessaria perché R1R_1 è l'unico router connesso a Internet.)

R2,…,R5R_2,\dots,R_5 non hanno altro che la rotta di default verso R1R_1:

router rete maschera prossimo salto
R2R_2 0.0.0.00.0.0.0 0.0.0.00.0.0.0 195.56.79.194195.56.79.194
R3R_3 0.0.0.00.0.0.0 0.0.0.00.0.0.0 195.56.79.198195.56.79.198
R4R_4 0.0.0.00.0.0.0 0.0.0.00.0.0.0 195.56.79.201195.56.79.201
R5R_5 0.0.0.00.0.0.0 0.0.0.00.0.0.0 195.56.79.205195.56.79.205

Perché basta una rotta di default: qualunque destinazione fuori dalle reti collegate a un RiR_i (i≥2i\ge2) passa per R1R_1, che sa smistare verso le altre LAN o verso Internet. Le quattro righe di R1R_1 non si possono aggregare: hanno prossimi salti diversi (l'aggregazione richiede lo stesso prossimo salto). Verso il resto di Internet, invece, RxR_x vede un'unica rotta aggregata, 195.56.78.0/23195.56.78.0/23 (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 →).

Confronto con la soluzione ufficiale

Le sottoreti, gli indirizzi di rete/broadcast e le tabelle di R1R_1 (prime quattro righe) e dei router periferici coincidono con la soluzione ufficiale. Differenze di lettura: nel testo eth0eth_0 e eth1eth_1 sono indicati con 150150 e 6060 host, nella soluzione la sottorete AA ha "210210 hosts" (somma, perché separate solo da un bridge); e nelle figure delle slide le etichette degli indirizzi dei punto-punto sono scritte vicino ai collegamenti senza indicare il lato: le tabelle ufficiali (R2→.194R_2\to.194, R3→.198R_3\to.198, R4→.201R_4\to.201, R5→.205R_5\to.205, e R1→.193,.197,.202,.206R_1\to.193,.197,.202,.206) impongono l'assegnazione usata sopra. Verifica numerica con Python.

Errori comuni

  • Contare eth0eth_0 ed eth1eth_1 come due sottoreti: un bridge non separa i domini di broadcast.
  • Dimenticare l'interfaccia del router tra gli host da indirizzare (in DD cambierebbe tutto: 6262 nodi entrano, 6363 no).
  • Dare ai punto-punto un /31/31: avrebbe 2−2=02-2=0 host.
  • Mettere come prossimo salto un indirizzo della propria interfaccia invece di quello del router vicino.

Versione ripasso

Dati. Blocco 195.56.78.0/23195.56.78.0/23; R1R_1 collegato a RxR_x (190.131.99.1190.131.99.1 lato RxR_x, 190.131.99.2190.131.99.2 lato R1R_1) e, con pp1,…,pp4pp_1,\dots,pp_4, a R2,…,R5R_2,\dots,R_5. LAN: eth0eth_0 (150150 host) ed eth1eth_1 (6060) unite da un bridge su R2R_2; eth2eth_2 (5555) su R3R_3; eth3eth_3 (5757) su R4R_4; eth4eth_4 (6161) su R5R_5. Teoria: 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 →, 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 →.

  • Sottoreti: il bridge non separa i broadcast: eth0+eth1eth_0+eth_1 è la rete AA da 150+60=210150+60=210 host; poi B,C,D=eth2,eth3,eth4B,C,D=eth_2,eth_3,eth_4 e 44 punto-punto, in tutto 88.
  • Dimensioni (host ++ router +2+2, poi potenza di 22): AA 213→256213\to256 (/24/24); BB 55+1+2=5855+1+2=58, CC 6060, DD 61+1+2=6461+1+2=64 →64\to64 (/26/26, DD al limite); ppipp_i 2+2=42+2=4 (/30/30).
  • Assegnazione dal più grande:
rete indirizzo broadcast
AA 195.56.78.0/24195.56.78.0/24 195.56.78.255195.56.78.255
BB 195.56.79.0/26195.56.79.0/26 195.56.79.63195.56.79.63
CC 195.56.79.64/26195.56.79.64/26 195.56.79.127195.56.79.127
DD 195.56.79.128/26195.56.79.128/26 195.56.79.191195.56.79.191
pp1pp_1–pp4pp_4 .79.192.79.192, .196.196, .200.200, .204.204 (/30/30) .195.195, .199.199, .203.203, .207.207

Usati 256+3⋅64+4⋅4=464256+3\cdot64+4\cdot4=464 su 512512; liberi 195.56.79.208195.56.79.208–.255.255.

  • Interfacce (router: ultimo indirizzo della LAN): R2R_2 195.56.78.254/24195.56.78.254/24 e 195.56.79.193/30195.56.79.193/30; R3R_3 195.56.79.62/26195.56.79.62/26 e .197/30.197/30; R4R_4 195.56.79.126/26195.56.79.126/26 e .202/30.202/30; R5R_5 195.56.79.190/26195.56.79.190/26 e .206/30.206/30; R1R_1: 195.56.79.194195.56.79.194, .198.198, .201.201, .205.205 (/30/30), verso RxR_x 190.131.99.2190.131.99.2.
  • Inoltro: reti direttamente collegate. Instradamento R1R_1: 195.56.78.0/24→195.56.79.193195.56.78.0/24\to195.56.79.193; 195.56.79.0/26→.197195.56.79.0/26\to.197; 195.56.79.64/26→.202195.56.79.64/26\to.202; 195.56.79.128/26→.206195.56.79.128/26\to.206; default →190.131.99.1\to190.131.99.1 (prossimi salti diversi: non si aggregano). R2..R5R_2..R_5: solo default →195.56.79.194\to195.56.79.194, .198.198, .201.201, .205.205.
  • Errori: bridge == due reti; scordare l'interfaccia del router; /31/31 sui punto-punto.

Teoria collegata