Salta al contenuto
Note per Studenti Esercizio - inizio di un blocco e blocco di un indirizzo CIDR

Esercizio - inizio di un blocco e blocco di un indirizzo CIDR

In questa pagina 6

Testo.

  1. Quali dei seguenti indirizzi possono essere il primo indirizzo di un blocco di 1616 indirizzi? 205.16.37.32205.16.37.32; 190.16.42.44190.16.42.44; 17.17.33.8017.17.33.80; 123.45.24.52123.45.24.52.
  2. Quali possono essere il primo indirizzo di un blocco di 10241024 indirizzi? 205.16.37.32205.16.37.32; 190.16.42.0190.16.42.0; 17.17.32.017.17.32.0; 123.45.24.52123.45.24.52.
  3. Trovare il blocco se uno degli indirizzi è 190.87.140.202/29190.87.140.202/29 e mostrare una configurazione di rete per quel blocco.

Teoria usata: 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 → (regole di assegnazione dei blocchi), 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 →.

Regola da usare nei punti 1 e 2

Un blocco CIDR ha N=2kN=2^k indirizzi e il suo primo indirizzo (indirizzo di rete) ha gli ultimi kk bit a 00: equivalentemente, il primo indirizzo, letto come numero intero a 32 bit, è un multiplo di NN. Il perché è il funzionamento dei sistemi posizionaliin base 2 un numero che finisce con k zeri è multiplo di 2 elevato a k, come in base 10 un numero che finisce con k zeri è multiplo di 10 elevato a kSistemi di numerazione posizionali →; il numero di bit di host è k=log⁡2Nk=\log_2N (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 log⁡216=4\log_2 16=4 e log⁡21024=10\log_2 1024=10. Si guardano quindi solo i byte coinvolti: se N≤256N\le256 basta l'ultimo byte (deve essere multiplo di NN); se N=28+jN=2^{8+j} l'ultimo byte deve essere 00 e il penultimo multiplo di 2j2^j.

Punto 1: blocco di 16 indirizzi

16=2416=2^4: gli ultimi 4 bit devono essere 00, cioè l'ultimo byte deve essere un multiplo di 1616.

indirizzo ultimo byte multiplo di 16? esito
205.16.37.32205.16.37.32 32=2⋅1632=2\cdot16 sì valido
190.16.42.44190.16.42.44 44=2,75⋅1644=2{,}75\cdot16 (44=0010110044=00101100, ultimi 4 bit 1100≠01100\ne0) no no
17.17.33.8017.17.33.80 80=5⋅1680=5\cdot16 sì valido
123.45.24.52123.45.24.52 52=0011010052=00110100, ultimi 4 bit 0100≠00100\ne0 no no

Risposta: 205.16.37.32205.16.37.32 e 17.17.33.8017.17.33.80.

Punto 2: blocco di 1024 indirizzi

1024=2101024=2^{10}: gli ultimi 1010 bit devono essere 00. Sono i 88 bit dell'ultimo byte e i 22 meno significativi del penultimo. Quindi: ultimo byte =0=0 e penultimo byte multiplo di 44.

indirizzo ultimo byte =0=0? penultimo multiplo di 4? esito
205.16.37.32205.16.37.32 no (3232) 3737: no no
190.16.42.0190.16.42.0 sì 42=10,5⋅442=10{,}5\cdot4 (0010101000101010, ultimi 2 bit 1010) no
17.17.32.017.17.32.0 sì 32=8⋅432=8\cdot4 valido
123.45.24.52123.45.24.52 no (5252) 24=6⋅424=6\cdot4 sì no (l'ultimo byte non è 00)

Risposta: solo 17.17.32.017.17.32.0 (è il blocco 17.17.32.0/2217.17.32.0/22, che arriva a 17.17.35.25517.17.35.255).

Punto 3: il blocco di 190.87.140.202/29190.87.140.202/29

Un /29/29 lascia 32−29=332-29=3 bit di host: N=23=8N=2^3=8 indirizzi. Si lavora sull'ultimo byte, con la maschera 1111100011111000 (cinque bit a 11):

  • 202=110010102202=11001010_2; AND 1111100011111000 ⇒110010002=128+64+8=200\Rightarrow11001000_2=128+64+8=200. Primo indirizzo (rete): 190.87.140.200190.87.140.200.
  • Ultimo indirizzo (broadcast diretto): si mettono a 11 i 3 bit di host, 110011112=20711001111_2=207, cioè 190.87.140.207190.87.140.207. Equivalente: 200+8−1=207200+8-1=207 (la distanza tra primo e ultimo è N−1=7N-1=7). Con la maschera: NOT(M)=0.0.0.7\text{NOT}(M)=0.0.0.7, e 190.87.140.200+7=190.87.140.207190.87.140.200+7=190.87.140.207.
  • Netmask: 255.255.255.248255.255.255.248.
  • Host utilizzabili: 8−2=68-2=6, da 190.87.140.201190.87.140.201 a 190.87.140.206190.87.140.206.

Configurazione di rete (esempio). Rete 190.87.140.200/29190.87.140.200/29, maschera 255.255.255.248255.255.255.248; il router (default gateway) prende l'ultimo indirizzo utilizzabile 190.87.140.206190.87.140.206; gli altri sono per cinque host, per esempio 190.87.140.201190.87.140.201–190.87.140.205190.87.140.205, tutti con maschera 255.255.255.248255.255.255.248 e gateway 190.87.140.206190.87.140.206. L'indirizzo .200.200 identifica la rete e .207.207 è il broadcast: nessuno dei due si assegna.

Confronto con la soluzione ufficiale

Coincide: nel punto 1 sono eleggibili 205.16.37.32205.16.37.32 e 17.17.33.8017.17.33.80; nel punto 2 solo 17.17.32.017.17.32.0; nel punto 3 il blocco è 190.87.140.200190.87.140.200–190.87.140.207190.87.140.207, 88 indirizzi. (Nella slide ufficiale l'ultimo indirizzo è scritto per errore "190.87.140.207/20190.87.140.207/20": è /29/29.) Verifiche fatte con Python.

Errori comuni

  • Controllare solo che l'indirizzo "finisca per zero": 205.16.37.32205.16.37.32 è valido per 1616 indirizzi ma non per 10241024.
  • Nel punto 2 limitarsi all'ultimo byte: serve anche la divisibilità del penultimo per 44.
  • Contare 88 indirizzi utilizzabili invece di 66.

Versione ripasso

Dati. Primo indirizzo valido di un blocco di 1616 e di 10241024 indirizzi tra alcuni candidati; blocco di 190.87.140.202/29190.87.140.202/29 e configurazione. Teoria: 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 →, 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 →.

  • Regola: blocco di N=2kN=2^k indirizzi: primo indirizzo multiplo di NN (ultimi kk bit a 00).
  • N=16N=16 (ultimo byte multiplo di 1616): 205.16.37.32205.16.37.32 (3232) sì; 190.16.42.44190.16.42.44 (0010110000101100) no; 17.17.33.8017.17.33.80 (80=5⋅1680=5\cdot16) sì; 123.45.24.52123.45.24.52 (0011010000110100) no.
  • N=1024=210N=1024=2^{10} (ultimo byte 00 e penultimo multiplo di 44): 205.16.37.32205.16.37.32 no; 190.16.42.0190.16.42.0 no (42=0010101042=00101010); 17.17.32.017.17.32.0 sì (32=8⋅432=8\cdot4, blocco /22/22 fino a 17.17.35.25517.17.35.255); 123.45.24.52123.45.24.52 no.
  • 190.87.140.202/29190.87.140.202/29: 33 bit di host, N=8N=8, maschera 255.255.255.248255.255.255.248; 202=11001010202=11001010, AND 11111000=1100100011111000=11001000: rete 190.87.140.200190.87.140.200, broadcast 200+8−1=190.87.140.207200+8-1=190.87.140.207, host 8−2=68-2=6 (.201.201–.206.206). Configurazione: gateway .206.206, host .201.201–.205.205, maschera 255.255.255.248255.255.255.248.
  • Errori: guardare solo l'ultimo byte per N=1024N=1024; 88 host utilizzabili invece di 66.

Lezioni in cui compare

Teoria collegata