Subnetting e supernetting
In questa pagina 3
In questa pagina 4
Questa nota usa le definizioni di prefisso, maschera, indirizzo di rete e broadcast di 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 →. Nello schema senza classi (classless) il confine tra NetID e HostID si può spostare a piacere; spostarlo in due direzioni opposte dà il subnetting e il supernetting.
Subnetting
Definizione (subnetting). Un'organizzazione (o un ISP) a cui è stato assegnato un intervallo di indirizzi può dividerlo in più sottointervalli e assegnare ciascuno a una sottorete (subnet). Ogni sottorete si può dividere a sua volta in sotto-sottoreti. Si crea così un livello di gerarchia in più: NetID (rete), SubnetID (sottorete), HostID (host).
La maschera della sottorete (subnet mask) ha più bit a 1 di quella della rete originaria: i bit presi in prestito dall'HostID per numerare le sottoreti. Le sottoreti vanno progettate con attenzione, perché devono permettere l'instradamento dei pacchetti: ogni sottorete è un blocco CIDR a tutti gli effetti, con il suo indirizzo di rete, il suo broadcast e le sue regole.
Formula (conteggio delle sottoreti). Si parte da una rete con prefisso (HostID di bit). Si prendono bit dall'HostID per il SubnetID: il nuovo prefisso è , ci sono sottoreti e ogni sottorete ha indirizzi, cioè host utilizzabili.
Esempio. Dalla rete (UniPD, classe B) con maschera (): bit di SubnetID, quindi al più sottoreti, ciascuna con host. Senza subnetting si avrebbe un'unica rete con host.
Esempi svolti
1. Un indirizzo di classe A con maschera lunga: . Il primo byte è : classe A, quindi bit di NetID e di HostID. La maschera dice però : solo bit sono l'HostID reale, quindi al più host per sottorete. I bit di SubnetID sono : al più sottoreti. L'ultimo byte è ; con 4 bit di host, si azzerano gli ultimi 4: . La sottorete è con broadcast (). Confronto: senza subnetting (indirizzamento con classi) la classe A ha reti da host; con la maschera /28 si ottengono invece sottoreti da host ciascuna.
2. Sottoreti di almeno 500 host dalla rete (classe B, NetID 16 bit). 500 non è potenza di 2: serve la più piccola potenza di 2 che contenga gli host più i due indirizzi riservati, cioè (con non basta). Servono quindi 512 indirizzi, cioè bit di HostID (logaritmo in base 2 è l'esponente tale che , cioè quanti bit servono per distinguere valoriEsponenziale e logaritmo →). Dei 16 bit originari di HostID ne restano 9 per gli host e per il SubnetID: al più sottoreti. La maschera ha bit a 1: (i primi due byte sono uni, il terzo byte deve averne , cioè , e l'ultimo è ). Ogni sottorete ha host (: va bene).
3. Almeno 1000 sottoreti dalla rete (classe B). 1000 non è potenza di 2: con bit di SubnetID si numerano sottoreti, e , quindi servono bit (cioè ), presi dai 16 di HostID. Restano bit di host: al più host per sottorete. La maschera ha bit a 1: i primi due byte ( uni), il terzo tutto a 1 ( uni) e 2 uni nell'ultimo (): . Compromesso: più sottoreti si vogliono, meno host entrano in ciascuna, perché i bit sono sempre 16 in tutto.
Le tre regole del progetto
Quando si devono ritagliare sottoreti di dimensioni diverse da un blocco (progetto con maschere di lunghezza variabile, VLSM, variable-length subnet mask) valgono queste regole:
- Regola 1. Il numero di indirizzi di ciascuna sottorete è una potenza di 2: se servono host si prende la più piccola potenza di 2 con (due indirizzi vanno persi: rete e broadcast).
- Regola 2. La lunghezza del prefisso della sottorete è .
- Regola 3. L'indirizzo iniziale di una sottorete deve essere divisibile per il numero di indirizzi della sottorete: per rispettarla si assegnano gli indirizzi partendo dalla sottorete più grande e finendo con la più piccola (così ogni blocco comincia a un multiplo della propria dimensione). Perché funziona: se i blocchi sono ordinati dal più grande al più piccolo, ogni dimensione è una potenza di 2 che divide le dimensioni precedenti (che sono potenze di 2 maggiori o uguali), quindi la somma delle dimensioni già assegnate, che è l'indirizzo di partenza del blocco successivo, è automaticamente un multiplo di . Se invece si parte dal più piccolo si sprecano indirizzi: con un blocco da 16 posto in , una sottorete da 128 non può partire da (non è multiplo di 128) e deve slittare a , lasciando inutilizzati i 112 indirizzi da a . L'allineamento è lo stesso richiesto nella regola di assegnazione dei blocchiil primo indirizzo di un blocco di indirizzi ha zeri finali, quindi è multiplo di Livello di rete e indirizzamento IP →.
Formula (progetto di una sottorete).
Esempio. Servono 100 host: ; , quindi e ; ; il broadcast è la rete (la rete è il primo indirizzo, quindi l'ultimo dista ).
Nota sui testi. Se un testo dice "una sottorete da 10 indirizzi" si prende ; se dice "da 60 host" serve , quindi ; con 63 host servirebbe 128 (). Bisogna sempre leggere se il dato è in host o in indirizzi.
Progetto completo: in tre sottoreti
Un'organizzazione ha il blocco e vuole tre sottoreti: da 120 host, da 60 host e da 10 host. Il blocco ha indirizzi, rete e broadcast .
Si parte dalla più grande (regola 3).
- Sottorete da 120 host. , . Prima sottorete: , broadcast ().
- Sottorete da 60 host. , . Parte subito dopo: (128 è multiplo di 64), broadcast .
- Sottorete da 10 host. , . Parte da (192 è multiplo di 16), broadcast .
Restano liberi gli indirizzi da a (48 indirizzi, riutilizzabili per altre sottoreti, per esempio un e un ).
Grafico interattivo: Blocco 14.24.74.0/24: ultimo byte da 0 a 255 e sottoreti assegnate
Dimensioni dei blocchi più usati
| prefisso | maschera | indirizzi | host |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /23 | 255.255.254.0 | 512 | 510 |
| /22 | 255.255.252.0 | 1024 | 1022 |
| /21 | 255.255.248.0 | 2048 | 2046 |
| /20 | 255.255.240.0 | 4096 | 4094 |
Il /30 è la scelta tipica per un collegamento punto-punto tra due router: 2 host utilizzabili, nessuno spreco. Un avrebbe host (due soli indirizzi, entrambi riservati).
Supernetting
Definizione (supernetting). È il duale del subnetting: si uniscono più blocchi piccoli e contigui in un unico blocco più grande. Si accorcia il prefisso (più bit di HostID, meno bit di NetID). È il caso della classe C: le reti da 254 host sono piccole, quindi se ne prendono alcune per formare una rete più grande. Nelle tabelle di instradamento si parla di aggregazione (route aggregation).
Proprietà (condizioni per aggregare). blocchi con prefisso si possono sostituire con un unico blocco di prefisso se e solo se (a) sono contigui, (b) sono esattamente (una potenza di 2), (c) il primo indirizzo è un multiplo della dimensione del blocco aggregato ().
Esempio. I quattro blocchi , , , sono contigui () e il terzo byte del primo, , è multiplo di : si uniscono in (maschera , indirizzi). Quattro blocchi sono con , quindi il prefisso scende di 2: . In binario il terzo byte è : i due bit meno significativi () diventano parte dell'HostID (due bit assumono combinazioni: ), quindi il terzo byte va da a , cioè proprio i quattro blocchi. Si può verificare con la maschera (AND bit a bitl'AND con la maschera /22 azzera gli ultimi 2 bit del terzo byteLivello di rete e indirizzamento IP →): ciascuno dei quattro terzi byte ha la forma e dopo l'AND diventa , quindi tutti e quattro cadono nella stessa rete .
Controesempio. e sono contigui ma non si possono aggregare in un : il primo () non è multiplo di ; un che li contenga sarebbe (–) più (–), e ognuno contiene uno solo dei due.
Esempio (ritorno). Due sottoreti e (, multiplo di ): si aggregano in , che va da a ( host). Il prefisso è sceso da a : unire reti significa togliere bit al prefisso (meno reti, meno bit di rete): Esercizio - supernetting di due sottoreti.
Con l'aggregazione un ISP annuncia al resto di Internet una sola riga (per esempio ) invece di una per ogni cliente: le tabelle dei router si accorciano e l'instradamento continua a funzionare, grazie alla regola del prefisso più lungo (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 →).
Dove si applica
Esercizi svolti: Esercizio - progetto di sottoreti con indirizzi di dimensione diversa, Esercizio - sottoreti di una rete di 4000 host e di 15 sottoreti, Esercizio - piano di indirizzamento con cinque router e collegamenti punto-punto, Esercizio - sottoreti classful e sottoreti con rete privata, Esercizio - piano di indirizzamento e inoltro con MTU (tema d'esame), Esercizio - supernetting di due sottoreti, Esercizio - indirizzamento di LAN A e LAN B e tabella di router 1.
Versione ripasso
Subnetting
- Definizione: un intervallo assegnato si divide in sottoreti, aggiungendo un livello: NetID, SubnetID, HostID. La maschera ha più bit a 1 (bit presi in prestito dall'HostID); ogni sottorete è un blocco CIDR con rete e broadcast propri.
Formula. Rete , si prendono bit per il SubnetID: , sottoreti, ciascuna con indirizzi, cioè host.
- Esempio con maschera (): , sottoreti da host.
- : classe A (), host reali (), SubnetID bit ( sottoreti). : sottorete , broadcast .
- Almeno 500 host da : indirizzi, 9 bit di host, bit di SubnetID (128 sottoreti), maschera , host.
- Almeno 1000 sottoreti da : , 10 bit di SubnetID, restano bit di host ( host), maschera .
Tre regole del progetto (VLSM)
- (indirizzi della sottorete) potenza di 2, la più piccola con .
- Prefisso .
- Indirizzo iniziale divisibile per : si assegna dalla sottorete più grande alla più piccola.
Formula.
- 100 host: , , broadcast rete .
- "10 indirizzi" ; "60 host" ; 63 host (). Leggere se il dato è in host o in indirizzi.
Progetto di (120, 60, 10 host)
Il blocco ha indirizzi, dal più grande:
- 120 host: , : , broadcast .
- 60 host: , : ( multiplo di 64), broadcast .
- 10 host: , : ( multiplo di 16), broadcast .
- Liberi da a .
Dimensioni (/host): /24 256/254, /25 128/126, /26 64/62, /27 32/30, /28 16/14, /29 8/6, /30 4/2 (tipico per un collegamento punto-punto; un ha host).
Supernetting
- Definizione: duale del subnetting, si uniscono blocchi contigui e si accorcia il prefisso (route aggregation).
Proprietà. blocchi di prefisso diventano un blocco di prefisso se e solo se sono (a) contigui, (b) esattamente , (c) con il primo indirizzo multiplo della dimensione dell'aggregato .
- Esempio: , , , (, multiplo di 4) , maschera , indirizzi.
- Controesempio: e non si aggregano in un ( non multiplo di 2).
- e () , da a , 126 host (Esercizio - supernetting di due sottoreti).
- Un ISP annuncia una sola riga invece di una per cliente (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 →).
Errori tipici: confondere host e indirizzi; dimenticare i 2 indirizzi persi; assegnare prima le sottoreti piccole; aggregare blocchi contigui non allineati.
Esercizi su questo argomento
- Esercizio - Blocco 131.175.208.0-21 con quattro LAN e inoltro di quattro pacchetti
- Esercizio - blocco /21 con quattro LAN e collegamenti punto-punto
- Esercizio - indirizzamento di LAN A e LAN B e tabella di router 1
- Esercizio - Indirizzi di tre LAN, tabelle di Router 1 e Router 2 e sottoreti di LAN B
- Esercizio - inizio di un blocco e blocco di un indirizzo CIDR
- Esercizio - Inoltro di quattro pacchetti, rete da 1014 host e sottoreti da 34 nodi
- Esercizio - Inoltro di tre pacchetti e piano di indirizzamento di un blocco 13.14.0.0-16
- Esercizio - inoltro diretto e indiretto con router a tre interfacce
- Esercizio - piano di indirizzamento con cinque router e collegamenti punto-punto
- Esercizio - Piano di indirizzamento di nove LAN, inoltro di cinque pacchetti e due sottoreti da 1950 host
- Esercizio - piano di indirizzamento e inoltro con MTU (tema d'esame)
- Esercizio - progetto di sottoreti con indirizzi di dimensione diversa
- Esercizio - sottoreti classful e sottoreti con rete privata
- Esercizio - sottoreti di una rete di 4000 host e di 15 sottoreti
- Esercizio - supernetting di due sottoreti