Negli ultimi anni la crescita vertiginosa del numero di macchine connesse a internet ha iniziato a far emergere i vari limiti di IPv4; in particolare si è iniziata a delineare la possibilità di arrivare ad una carenza negli indirizzi disponibili.
In realtà il problema non è propriamente legato al numero di indirizzi disponibili. Infatti con 32 bit si hanno cioè circa quattro miliardi di numeri diversi possibili, che sono molti di più dei computer attualmente esistenti.
Il punto è che la suddivisione di questi numeri in una gerarchia a due livelli e l'utilizzo delle classi di indirizzamento mostrate in precedenza ha comportato che, nella sua evoluzione storica, il dispiegamento delle reti e l'allocazione degli indirizzi siano stati inefficienti. Neanche l'uso del CIDR ha permesso di eliminare le inefficienze che si erano formate, dato che un ridispiegamento più efficiente comporterebbe cambiamenti complessi a tutti i livelli e la riassegnazione (manuale) di tutti gli indirizzi dei computer di ogni sottorete.
Diventava perciò necessario progettare un nuovo protocollo che permettesse di risolvere questi problemi, e garantisse flessibilità sufficiente per poter continuare a funzionare a lungo termine; in particolare necessitava un nuovo schema di indirizzamento che potesse rispondere alle seguenti necessità: