Salta al contenuto
Note per Studenti Esercizio - progetto di sottoreti con indirizzi di dimensione diversa

Esercizio - progetto di sottoreti con indirizzi di dimensione diversa

In questa pagina 5

Testo.

  1. Un'organizzazione ha il blocco 14.24.74.0/2414.24.74.0/24 e vuole 1111 sottoreti: (a) due sottoreti da 6464 indirizzi ciascuna; (b) due da 3232; (c) tre da 1616; (d) quattro da 44. Progettare le sottoreti.
  2. Un ISP ha il blocco 190.100.0.0/16190.100.0.0/16 (65 53665\,536 indirizzi) e deve distribuirlo a tre gruppi di clienti: (a) il primo gruppo ha 6464 clienti da 256256 indirizzi ciascuno; (b) il secondo ha 128128 clienti da 128128 indirizzi; (c) il terzo ha 128128 clienti da 6464 indirizzi. Progettare i sottoblocchi e trovare quanti indirizzi restano disponibili.

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 → (le tre regole del progetto), 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 →.

Il metodo (vale per entrambi i punti)

Qui i dati sono già indirizzi (non host), quindi non serve aggiungere 22: ogni sottorete ha un numero di indirizzi MM potenza di 22 e prefisso n=32−log⁡2Mn=32-\log_2M. L'indirizzo iniziale di ogni blocco deve essere multiplo di MM (regola 3): per rispettarlo basta assegnare i blocchi dal più grande al più piccolo, uno di seguito all'altro. Ogni blocco comincia dove finisce il precedente, e la sua fine è "inizio + M−1+\,M-1".

Punto 1: 14.24.74.0/2414.24.74.0/24 in 11 sottoreti

Il blocco ha 232−24=2562^{32-24}=256 indirizzi. Le sottoreti richieste occupano 2⋅64+2⋅32+3⋅16+4⋅4=128+64+48+16=2562\cdot64+2\cdot32+3\cdot16+4\cdot4=128+64+48+16=256: il blocco viene usato per intero, senza avanzo.

sottorete MM prefisso indirizzo di rete broadcast
a1 6464 /26/26 14.24.74.014.24.74.0 14.24.74.6314.24.74.63
a2 6464 /26/26 14.24.74.6414.24.74.64 14.24.74.12714.24.74.127
b1 3232 /27/27 14.24.74.12814.24.74.128 14.24.74.15914.24.74.159
b2 3232 /27/27 14.24.74.16014.24.74.160 14.24.74.19114.24.74.191
c1 1616 /28/28 14.24.74.19214.24.74.192 14.24.74.20714.24.74.207
c2 1616 /28/28 14.24.74.20814.24.74.208 14.24.74.22314.24.74.223
c3 1616 /28/28 14.24.74.22414.24.74.224 14.24.74.23914.24.74.239
d1 44 /30/30 14.24.74.24014.24.74.240 14.24.74.24314.24.74.243
d2 44 /30/30 14.24.74.24414.24.74.244 14.24.74.24714.24.74.247
d3 44 /30/30 14.24.74.24814.24.74.248 14.24.74.25114.24.74.251
d4 44 /30/30 14.24.74.25214.24.74.252 14.24.74.25514.24.74.255

Perché questi prefissi: il prefisso è n=32−log⁡2Mn=32-\log_2M (logaritmo in base 2è l'esponente cui elevare 2 per ottenere MEsponenziale e logaritmo →), cioè 3232 meno il numero di bit di host. 64=26⇒n=2664=2^6\Rightarrow n=26; 32=25⇒2732=2^5\Rightarrow27; 16=24⇒2816=2^4\Rightarrow28; 4=22⇒304=2^2\Rightarrow30. Ogni inizio è multiplo della dimensione: 6464 e 128128 sono multipli di 6464 (e il secondo gruppo parte da 128128, multiplo di 3232); 192,208,224192,208,224 sono multipli di 1616; 240,244,248,252240,244,248,252 sono multipli di 44. Le sottoreti /30/30 hanno 4−2=24-2=2 host utilizzabili (adatte a collegamenti punto-punto).

Grafico interattivo: Blocco 14.24.74.0/24: ultimo byte da 0 a 255 e sottoreti

Punto 2: l'ISP con 190.100.0.0/16190.100.0.0/16

Qui ogni gruppo è un insieme di blocchi uguali; si assegna prima il gruppo con blocchi più grandi.

  • Gruppo 1 (clienti da 256256): 256=28⇒n=24256=2^8\Rightarrow n=24. 6464 clienti occupano 64⋅256=16 38464\cdot256=16\,384 indirizzi. Primo cliente 190.100.0.0/24190.100.0.0/24 (da .0.0.0.0 a .0.255.0.255), secondo 190.100.1.0/24190.100.1.0/24, …, il 64∘64^{\circ} è 190.100.63.0/24190.100.63.0/24 (fino a 190.100.63.255190.100.63.255). Il gruppo occupa 190.100.0.0190.100.0.0–190.100.63.255190.100.63.255.
  • Gruppo 2 (clienti da 128128): 128=27⇒n=25128=2^7\Rightarrow n=25. Parte da 190.100.64.0190.100.64.0. Primo cliente 190.100.64.0/25190.100.64.0/25 (.64.0.64.0–.64.127.64.127), secondo 190.100.64.128/25190.100.64.128/25, …, il 128∘128^{\circ} è 190.100.127.128/25190.100.127.128/25 (fino a 190.100.127.255190.100.127.255). Totale 128⋅128=16 384128\cdot128=16\,384.
  • Gruppo 3 (clienti da 6464): 64=26⇒n=2664=2^6\Rightarrow n=26. Parte da 190.100.128.0190.100.128.0. Primo cliente 190.100.128.0/26190.100.128.0/26 (.128.0.128.0–.128.63.128.63), secondo 190.100.128.64/26190.100.128.64/26, …, il 128∘128^{\circ} è 190.100.159.192/26190.100.159.192/26 (fino a 190.100.159.255190.100.159.255). Totale 128⋅64=8192128\cdot64=8192.

Perché gli estremi sono quelli indicati: in un blocco /16/16 i primi due byte sono fissi (190.100190.100) e si numera col terzo e il quarto. Un cliente da 256256 indirizzi (/24/24) occupa esattamente un valore del terzo byte, quindi i 6464 clienti del gruppo 1 occupano i terzi byte da 00 a 6363. Un cliente da 128128 (/25/25) occupa mezzo terzo byte (due clienti per ogni valore: .0.0–.127.127 e .128.128–.255.255), quindi 128128 clienti occupano 128/2=64128/2=64 valori del terzo byte, da 6464 a 127127, e l'ultimo è 190.100.127.128/25190.100.127.128/25. Un cliente da 6464 (/26/26) occupa un quarto di terzo byte (quattro per valore), quindi 128128 clienti occupano 128/4=32128/4=32 valori, da 128128 a 159159, e l'ultimo è 190.100.159.192/26190.100.159.192/26 (192=3⋅64192=3\cdot64 è il quarto blocco del terzo byte 159159). Si verifica anche contando gli indirizzi: i terzi byte usati sono 64+64+32=16064+64+32=160 su 256256, cioè 160⋅256=40 960160\cdot256=40\,960 indirizzi.

Indirizzi liberi. Assegnati 16 384+16 384+8192=40 96016\,384+16\,384+8192=40\,960 su 65 53665\,536: ne restano 65 536−40 960=24 57665\,536-40\,960=\mathbf{24\,576}, cioè l'intervallo 190.100.160.0190.100.160.0–190.100.255.255190.100.255.255 (9696 blocchi da 256256). Si può descrivere con due blocchi CIDR: 190.100.160.0/19190.100.160.0/19 (81928192 indirizzi, 160=5⋅32160=5\cdot32) e 190.100.192.0/18190.100.192.0/18 (16 38416\,384, 192=3⋅64192=3\cdot64). Come si trovano: il residuo parte dal terzo byte 160=101000002160=10100000_2, che è multiplo di 3232 ma non di 6464; il blocco più grande allineato che parte da lì è quindi di 3232 valori del terzo byte, cioè 32⋅256=8192=21332\cdot256=8192=2^{13} indirizzi, un /19/19 (160160–191191). Il resto parte da 192=110000002192=11000000_2, multiplo di 6464, e arriva a 255255: 6464 valori del terzo byte, 16 384=21416\,384=2^{14} indirizzi, un /18/18. Controllo: 8192+16 384=24 5768192+16\,384=24\,576.

Confronto con la soluzione ufficiale

Coincide in tutto: sottoreti /26,/26,/27,/27,/28×3,/30×4/26,/26,/27,/27,/28\times3,/30\times4 per il punto 1; per il punto 2 gli intervalli 190.100.0.0/24190.100.0.0/24–190.100.63.0/24190.100.63.0/24, 190.100.64.0/25190.100.64.0/25–190.100.127.128/25190.100.127.128/25, 190.100.128.0/26190.100.128.0/26–190.100.159.192/26190.100.159.192/26 e totale assegnato 40 96040\,960, disponibili 24 57624\,576. Tutti i numeri sono stati ricalcolati con Python.

Errori comuni

  • Assegnare le sottoreti in ordine qualsiasi: si perdono indirizzi o si viola l'allineamento (regola 3).
  • Aggiungere +2+2 quando il testo dà già gli indirizzi (qui 6464, 3232, 1616, 44 sono indirizzi, non host).
  • Scrivere come "indirizzo di rete" l'ultimo indirizzo (.63.63) invece del primo.

Versione ripasso

Dati. (1) 14.24.74.0/2414.24.74.0/24 in due sottoreti da 6464 indirizzi, due da 3232, tre da 1616, quattro da 44. (2) ISP con 190.100.0.0/16190.100.0.0/16: 6464 clienti da 256256 indirizzi, 128128 da 128128, 128128 da 6464; indirizzi residui. 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 →.

  • Metodo: i dati sono indirizzi, niente +2+2; M=2k⇒n=32−kM=2^k\Rightarrow n=32-k; broadcast == inizio +M−1+M-1. Dal blocco più grande al più piccolo, uno di seguito all'altro (inizio multiplo di MM, regola 3).
  • Punto 1: 128+64+48+16=256128+64+48+16=256, blocco usato per intero.
sottoreti prefisso reti (14.24.74.x14.24.74.x) broadcast
a1, a2 /26/26 00, 6464 6363, 127127
b1, b2 /27/27 128128, 160160 159159, 191191
c1–c3 /28/28 192192, 208208, 224224 207207, 223223, 239239
d1–d4 /30/30 240240, 244244, 248248, 252252 243243, 247247, 251251, 255255
  • Punto 2: gruppo 1 (/24/24): 64⋅256=16 38464\cdot256=16\,384, da 190.100.0.0/24190.100.0.0/24 a 190.100.63.0/24190.100.63.0/24. Gruppo 2 (/25/25): 128⋅128=16 384128\cdot128=16\,384, da 190.100.64.0/25190.100.64.0/25 a 190.100.127.128/25190.100.127.128/25. Gruppo 3 (/26/26): 128⋅64=8192128\cdot64=8192, da 190.100.128.0/26190.100.128.0/26 a 190.100.159.192/26190.100.159.192/26.
  • Residui: 65 536−40 960=24 57665\,536-40\,960=\mathbf{24\,576}, cioè 190.100.160.0190.100.160.0–190.100.255.255190.100.255.255 (190.100.160.0/19190.100.160.0/19 e 190.100.192.0/18190.100.192.0/18).
  • Errori: ordine qualsiasi; +2+2 sui dati già in indirizzi; rete e broadcast scambiati.

Lezioni in cui compare

Teoria collegata