Salta al contenuto
Note per Studenti Esercizio - rete di appartenenza di un indirizzo

Esercizio - rete di appartenenza di un indirizzo

In questa pagina 5

Testo.

  1. Qual è l'indirizzo di rete se l'indirizzo di destinazione è 200.45.34.56200.45.34.56 e la maschera è 255.255.240.0255.255.240.0?
  2. Una rete ha primo indirizzo 205.16.32.0205.16.32.0 e maschera 255.255.248.0255.255.248.0. Un router riceve tre pacchetti con indirizzi di destinazione: (1) 205.16.37.44205.16.37.44; (2) 205.16.42.56205.16.42.56; (3) 205.17.33.76205.17.33.76. Quale pacchetto appartiene alla rete?

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 → (maschera di rete e operazione AND), 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 →.

Idea comune

Dato un indirizzo XX e una maschera MM, l'indirizzo di rete è X AND MX\ \text{AND}\ M (AND bit a bit, la porta ANDvale 1 solo se entrambi gli ingressi valgono 1, quindi un bit AND 1 resta com'è e un bit AND 0 diventa 0Algebra di Boole e porte logiche → applicata a ogni coppia di bit; per il numero di bit a 1 della maschera si veda 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 →): l'AND tiene i bit di XX dove la maschera ha 11 (la parte di rete) e azzera gli altri (la parte di host). Un indirizzo appartiene alla rete RR con maschera MM se e solo se X AND M=RX\ \text{AND}\ M=R. Dove il byte della maschera vale 255255 il byte dell'indirizzo resta com'è, dove vale 00 diventa 00: serve il calcolo bit a bit solo sul byte "di confine", cioè quello con valore diverso da 00 e 255255.

Punto 1

La maschera 255.255.240.0255.255.240.0 ha 8+8+4=208+8+4=20 bit a 11 (240=11110000240=11110000), cioè è un /20/20. Il byte di confine è il terzo.

1° byte 2° byte 3° byte 4° byte
indirizzo 200200 4545 34=0010001034=00100010 5656
maschera 255255 255255 240=11110000240=11110000 00
AND 200200 4545 00100000=3200100000=32 00

Indirizzo di rete: 200.45.32.0\mathbf{200.45.32.0} (ufficiale: 200.45.32.0200.45.32.0).

Punto 2

La maschera 255.255.248.0255.255.248.0 ha 8+8+5=218+8+5=21 bit a 11 (248=11111000248=11111000): /21/21. La rete 205.16.32.0/21205.16.32.0/21 ha 211=20482^{11}=2048 indirizzi, da 205.16.32.0205.16.32.0 a 205.16.39.255205.16.39.255 (il terzo byte va da 3232 a 32+8−1=3932+8-1=39). Il byte di confine è il terzo, con maschera 1111100011111000. Per ogni pacchetto si calcola l'AND e si confronta con 205.16.32.0205.16.32.0.

  1. 205.16.37.44205.16.37.44: terzo byte 37=0010010137=00100101; AND 11111000=00100000=3211111000=00100000=32. Si ottiene 205.16.32.0205.16.32.0, uguale alla rete: appartiene.
  2. 205.16.42.56205.16.42.56: terzo byte 42=0010101042=00101010; AND 11111000=00101000=4011111000=00101000=40. Si ottiene 205.16.40.0≠205.16.32.0205.16.40.0\ne205.16.32.0: non appartiene (è nella rete successiva, 205.16.40.0/21205.16.40.0/21).
  3. 205.17.33.76205.17.33.76: già il secondo byte è 17≠1617\ne16 e la maschera lo lascia intatto, quindi non può coincidere. Il calcolo completo dà: terzo byte 33=0010000133=00100001; AND =00100000=32=00100000=32, indirizzo di rete 205.17.32.0≠205.16.32.0205.17.32.0\ne205.16.32.0: non appartiene.

Solo il primo pacchetto appartiene alla rete.

Controllo rapido. Un indirizzo è nella rete se il terzo byte sta tra 3232 e 3939 e i primi due byte sono 205.16205.16: 3737 sì; 4242 no; il terzo ha il secondo byte sbagliato.

Confronto con la soluzione ufficiale

Coincide: 200.45.32.0200.45.32.0 per il punto 1; per il punto 2 le reti ottenute sono 205.16.32.0205.16.32.0 (sì), 205.16.40.0205.16.40.0 (no), 205.17.32.0205.17.32.0 (no). Verificato con Python (modulo ipaddress).

Errori comuni

  • Applicare l'AND al decimale invece che al binario sul byte di confine.
  • Confrontare solo il terzo byte e dimenticare i byte precedenti (terzo pacchetto).
  • Leggere la maschera 240240 come /24/24 invece di /20/20: i bit a 11 si contano, non si leggono dal numero.

Versione ripasso

Dati. (1) 200.45.34.56200.45.34.56 con maschera 255.255.240.0255.255.240.0: rete? (2) Rete 205.16.32.0205.16.32.0 con maschera 255.255.248.0255.255.248.0: quali tra 205.16.37.44205.16.37.44, 205.16.42.56205.16.42.56, 205.17.33.76205.17.33.76 le appartengono? 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 →, 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 →.

  • Regola: rete =X AND M=X\ \text{AND}\ M; X∈R/M  ⟺  X AND M=RX\in R/M\iff X\ \text{AND}\ M=R. Il calcolo in binario serve solo sul byte di confine (né 00 né 255255).
  • Punto 1: 240240 dà /20/20; 34=0010001034=00100010, AND 11110000=00100000=3211110000=00100000=32. Rete 200.45.32.0\mathbf{200.45.32.0}.
  • Punto 2: 248=11111000248=11111000, /21/21: la rete 205.16.32.0/21205.16.32.0/21 va da 205.16.32.0205.16.32.0 a 205.16.39.255205.16.39.255 (211=20482^{11}=2048 indirizzi).
    • 37=00100101→3237=00100101\to32: 205.16.32.0205.16.32.0, appartiene;
    • 42=00101010→4042=00101010\to40: 205.16.40.0205.16.40.0, no;
    • 33→3233\to32 ma il secondo byte è 17≠1617\ne16: 205.17.32.0205.17.32.0, no.
  • Errori: AND in decimale; confrontare solo il terzo byte; leggere 240240 come /24/24 invece di /20/20.

Lezioni in cui compare

Teoria collegata