Originalmente, se planteó dividir las redes en clases. Esto se llamó Classful Subnetting, o Classful Addressing. Existían tres grupos principales:
- Class A: Desde hasta
- Class B: Desde hasta
- Class C: Desde hasta
También existían las clases (multicast) y las de clase (reservadas).
El problema con estas redes, era que había mucho desperdicio. Si no te alcanzaban las redes de clase (256) debías reservar una red de clase (25536).
Debido a esto, se optó por un sistema de particionamiento flexible, en el que las máscaras pueden ser de cualquier longitud.
Método de Subnetting
Partiremos de un espacio de direcciones con longitud de máscara . Debido a que cada red debe reservar una dirección para la Network Address y otra para la Broadcast Address, tendremos un total de redes para entregar:
Esto también aplica para las subredes, por lo que si tendremos una subred con hosts y routers, entonces necesitaremos un total de redes para entregar:
Las conexiones entre los routers también son subredes, por lo que una conexión punto a punto entre dos routers necesitaría direcciones, mientras que una entre tres routers necesitaría direcciones.
Debido a como se funcionan las máscaras, solo se pueden entregar cantidades de direcciones que sean potencias de dos, por lo que si una subred necesita direcciones, debemos entregarle por lo menos . Nos quedaremos con la menor potencia de dos que nos proporcione al menos la cantidad de redes necesarias.
Para evitar tener tablas mal configuradas, debemos entregar subespacios de direcciones de forma creciente en orden de mayor cantidad de redes solicitadas a menor.