Esercizio - rete di appartenenza di un indirizzo
In questa pagina 5
Testo.
- Qual è l'indirizzo di rete se l'indirizzo di destinazione è e la maschera è ?
- Una rete ha primo indirizzo e maschera . Un router riceve tre pacchetti con indirizzi di destinazione: (1) ; (2) ; (3) . 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 e una maschera , l'indirizzo di rete è (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 dove la maschera ha (la parte di rete) e azzera gli altri (la parte di host). Un indirizzo appartiene alla rete con maschera se e solo se . Dove il byte della maschera vale il byte dell'indirizzo resta com'è, dove vale diventa : serve il calcolo bit a bit solo sul byte "di confine", cioè quello con valore diverso da e .
Punto 1
La maschera ha bit a (), cioè è un . Il byte di confine è il terzo.
| 1° byte | 2° byte | 3° byte | 4° byte | |
|---|---|---|---|---|
| indirizzo | ||||
| maschera | ||||
| AND |
Indirizzo di rete: (ufficiale: ).
Punto 2
La maschera ha bit a (): . La rete ha indirizzi, da a (il terzo byte va da a ). Il byte di confine è il terzo, con maschera . Per ogni pacchetto si calcola l'AND e si confronta con .
- : terzo byte ; AND . Si ottiene , uguale alla rete: appartiene.
- : terzo byte ; AND . Si ottiene : non appartiene (è nella rete successiva, ).
- : già il secondo byte è e la maschera lo lascia intatto, quindi non può coincidere. Il calcolo completo dà: terzo byte ; AND , indirizzo di rete : non appartiene.
Solo il primo pacchetto appartiene alla rete.
Controllo rapido. Un indirizzo è nella rete se il terzo byte sta tra e e i primi due byte sono : sì; no; il terzo ha il secondo byte sbagliato.
Confronto con la soluzione ufficiale
Coincide: per il punto 1; per il punto 2 le reti ottenute sono (sì), (no), (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 come invece di : i bit a si contano, non si leggono dal numero.
Versione ripasso
Dati. (1) con maschera : rete? (2) Rete con maschera : quali tra , , 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 ; . Il calcolo in binario serve solo sul byte di confine (né né ).
- Punto 1: dà ; , AND . Rete .
- Punto 2: , : la rete va da a ( indirizzi).
- : , appartiene;
- : , no;
- ma il secondo byte è : , no.
- Errori: AND in decimale; confrontare solo il terzo byte; leggere come invece di .