Spazio di indirizzi pubblico e privato
IP pubblico
192.0.2.10
univoco globalmente: instradabile da ovunque
Intervalli privati
non instradabili sulla rete pubblica
Cos'è il CIDR? Routing senza classi, prefissi e aggregazione
Una route come 203.0.113.0/24 sembra una semplice abbreviazione, ma l'idea che sta dietro ha alleviato una crisi che, all'inizio degli anni Novanta, sembrava destinata a bloccare la crescita di Internet. Questo articolo spiega perché l'indirizzamento a classi originale è fallito, che cosa dichiara davvero un prefisso, come i blocchi vicini si fondono in un'unica route e perché un router preferisce sempre la route più specifica che conosce. Per l'aritmetica della suddivisione di un blocco in subnet, il calcolatore subnet è più rapido di qualsiasi spiegazione; qui l'attenzione è su come funziona il sistema e perché.
Il problema delle classi A, B e C
Il piano originale di IPv4, definito nell'RFC 791, suddivideva le reti in classi in base ai bit iniziali di un indirizzo. Come racconta l'RFC 4632, la classe A consentiva 128 reti da circa 16,7 milioni di indirizzi ciascuna, la classe B 16.384 reti da 65.536 indirizzi e la classe C circa 2,1 milioni di reti da 254 host utilizzabili. Non c'era nulla tra 254 e 65.534 host.
Un'organizzazione di medie dimensioni si trovava in un vicolo cieco. Una classe C era troppo piccola e una classe B troppo grande per la maggior parte delle organizzazioni, eppure la classe B era la soluzione più adatta tra quelle disponibili da usare con il subnetting, così la richiesta di numeri di classe B crebbe fuori controllo. Nel novembre 1991 l'IETF costituì il gruppo ROAD (Routing and Addressing). Nel gennaio 1992 aveva individuato tre problemi: lo spazio di classe B si stava esaurendo, le tabelle di routing crescevano oltre ciò che software, hardware e operatori riuscivano a gestire e lo spazio di indirizzamento a 32 bit sarebbe prima o poi stato esaurito. Il suo lavoro produsse l'RFC 1338 e poi l'RFC 1519 (settembre 1993).
Il CIDR, Classless Inter-Domain Routing, è stato progettato per alleviare i primi due problemi, non il terzo. L'RFC 4632, la revisione del 2006, afferma che il piano doveva essere una risposta a breve termine, della durata di circa tre-cinque anni, in attesa di trovare una soluzione a più lungo termine. Più di trent'anni dopo è ancora la notazione usata da router e console cloud.
Che cosa dichiara un prefisso
Nel CIDR un blocco di indirizzi si scrive come un indirizzo, uno slash e una lunghezza del prefisso: il numero di bit iniziali che identificano la rete. I bit restanti identificano gli host al suo interno. 192.0.2.0/24 fissa 24 bit e ne lascia 8, quindi il blocco contiene 2^8 = 256 indirizzi. Ogni bit aggiunto al prefisso dimezza il blocco; ogni bit tolto lo raddoppia. Una rete a classi era semplicemente un blocco la cui lunghezza del prefisso era imposta dai primi bit, sempre /8, /16 o /24. Il CIDR ha eliminato questa imposizione, così un'organizzazione che ha bisogno di circa mille indirizzi può ricevere una /22, che ne contiene 1.024, invece di una classe B.
| Prefisso | Indirizzi | Ruolo tipico |
|---|---|---|
/8 | 16.777.216 | La dimensione della vecchia classe A |
/16 | 65.536 | La dimensione della vecchia classe B |
/22 | 1.024 | Un sito di medie dimensioni, una taglia che il sistema a classi non sapeva esprimere |
/24 | 256 | La dimensione della vecchia classe C e una dimensione comune per una LAN |
/30 | 4 | Un tradizionale collegamento punto-punto con 2 host utilizzabili |
/31 | 2 | Un collegamento punto-punto secondo l'RFC 3021, con entrambi gli indirizzi utilizzabili |
/32 | 1 | Un singolo host, o una route verso un solo indirizzo |
Aggregazione: una route invece di molte
L'altra metà dello scopo del CIDR riguardava il routing. Se un provider possiede un grande blocco e ne assegna porzioni ai clienti, il resto di Internet ha bisogno di una sola route verso l'intero blocco invece di una per cliente. L'RFC 4632 afferma che i prefissi sono pensati per seguire a grandi linee la topologia sottostante di Internet, in modo che l'aggregazione sia possibile, ed è per questo che vengono in genere assegnati lungo le linee provider-cliente.
L'aggregazione funziona solo quando i blocchi sono allineati. Due blocchi /24 adiacenti si fondono in un /23 solo se il primo parte da un confine pari. 192.168.0.0/24 e 192.168.1.0/24 si combinano in 192.168.0.0/23. 192.168.1.0/24 e 192.168.2.0/24 no, perché nessun /23 inizia a 192.168.1.0. Il più piccolo blocco singolo che li copre entrambi è 192.168.0.0/22, che comprende anche 192.168.0.0/24 e 192.168.3.0/24, indirizzi che potresti non possedere. Questa regola di allineamento è la ragione pratica per assegnare gli indirizzi in blocchi di dimensione pari a una potenza di due fin dall'inizio di un piano di rete.
Longest match: perché vince la route più specifica
Quando le route si sovrappongono, il router ha bisogno di un criterio di spareggio. L'RFC 4632 afferma che l'inoltro su Internet avviene secondo il criterio del longest match: tra tutte le route il cui prefisso contiene la destinazione, viene usata quella con il prefisso più lungo. Supponi che una tabella contenga 10.0.0.0/8 tramite il router A, 10.1.0.0/16 tramite il router B e 10.1.2.0/24 tramite il router C.
- Un pacchetto per
10.1.2.9corrisponde a tutte e tre le route e segue la /24 verso C. - Un pacchetto per
10.1.9.9corrisponde alla /8 e alla /16 e segue la /16 verso B. - Un pacchetto per
10.9.9.9corrisponde solo alla /8 e va ad A.
L'RFC 4632 (sezione 5.1) aggiunge due regole. Una rete raggiungibile attraverso più provider deve annunciare esplicitamente il proprio prefisso invece di restare nascosta dentro l'aggregato di un solo provider. E un router che genera un aggregato deve scartare i pacchetti che corrispondono all'aggregato ma a nessuna delle sue route più specifiche, altrimenti il traffico diretto a parti irraggiungibili del blocco può finire in loop.
Dettagli che ancora fanno inciampare
- Host utilizzabili. Un blocco di 2^(32−n) indirizzi di norma ne perde due: l'indirizzo di rete e l'indirizzo di broadcast. Una /30 ha quindi due host utilizzabili. L'RFC 3021 consente i prefissi /31 sui collegamenti punto-punto, dove entrambi gli indirizzi sono utilizzabili.
- Anche gli intervalli privati sono blocchi CIDR. L'RFC 1918 riserva
10.0.0.0/8,172.16.0.0/12e192.168.0.0/16. Il blocco intermedio va solo da172.16.0.0a172.31.255.255, quindi un indirizzo come172.32.0.1è pubblico. - Subnet zero. L'RFC 950 (1985), scritto per l'era dell'indirizzamento a classi, sconsigliava di assegnare subnet il cui campo subnet fosse composto da soli zeri o da soli uni. L'RFC 1878 (1995) definisce obsoleta questa pratica, e il software moderno può usare ogni subnet definibile.
- IPv6 usa una notazione simile. L'RFC 4291 richiede identificatori di interfaccia a 64 bit per tutti gli indirizzi unicast, tranne quelli che iniziano con il valore binario 000, quindi una normale subnet IPv6 è una /64 e la pianificazione degli indirizzi avviene nei bit al di sopra di essa.
Da ricordare
La lunghezza del prefisso dice quanti bit iniziali costituiscono la rete. Tutto il resto ne discende: blocchi di qualsiasi dimensione pari a una potenza di due, aggregazione di blocchi vicini allineati e inoltro in base al prefisso corrispondente più lungo.
Fonti e letture di approfondimento
- RFC 4632: Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan (Fuller and Li, 2006)
- RFC 1519: Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy (Fuller, Li, Yu and Varadhan, 1993)
- RFC 950: Internet Standard Subnetting Procedure (Mogul and Postel, 1985)
- RFC 1878: Variable Length Subnet Table For IPv4 (Pummill and Manning, 1995)
- RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links (Retana, White, Fuller and McPherson, 2000)
- RFC 1918: Address Allocation for Private Internets (Rekhter et al., 1996)
- RFC 4291: IP Version 6 Addressing Architecture (Hinden and Deering, 2006)
- Kevin R. Fall and W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols, 2nd edition (Addison-Wesley, 2011)
- Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach (Morgan Kaufmann)
Devi controllare gli indirizzi DNS pubblici di un dominio? Usa lo strumento Domain IP Lookup.
Strumenti gratuiti su questo argomento
Domande frequenti
Per approfondire
Spazio di indirizzi pubblico e privato
IP pubblico
192.0.2.10
univoco globalmente: instradabile da ovunque
Intervalli privati
non instradabili sulla rete pubblica
IP pubblici e privati: qual è la differenza?
Il tuo dispositivo ha due indirizzi contemporaneamente e solo uno dei due esiste su Internet. Ecco perché, e cosa significano gli intervalli riservati.
Due schemi di indirizzamento, in parallelo
IPv4
192.0.2.10
32 bit, ~4,3 miliardi di indirizzi, esauriti
IPv6
2606:4700::6810:84e5
128 bit, 340 sestilioni di indirizzi
L'esaurimento di IPv4 e la lenta marcia verso IPv6
Il mondo ha finito i nuovi indirizzi IPv4 anni fa. Ecco cosa ha tenuto in piedi le cose da allora e perché la transizione non è ancora completa.
Due schemi di indirizzamento, in parallelo
IPv4
192.0.2.10
32 bit, ~4,3 miliardi di indirizzi, esauriti
IPv6
2606:4700::6810:84e5
128 bit, 340 sestilioni di indirizzi
Cos'è un indirizzo IP? IPv4 e IPv6 spiegati in modo semplice
L'etichetta numerica dietro ogni sito web, server e telefono su Internet: cosa significa, come si legge e perché esistono due versioni incompatibili.