> For the complete documentation index, see [llms.txt](https://juan-martin-franco.gitbook.io/network-+/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://juan-martin-franco.gitbook.io/network-+/6.-direccionamiento-ip/6.6-subnetting.md).

# 6.6 - Subnetting

## Subnetting

El concepto de <mark style="color:blue;">**subnetting**</mark> se refiere al proceso en donde tomamos una red de mayor tamaño y la dividimos en redes mas chicas.

Todo esto se apoya en el direccionamiento IP lógico.

**La máscara de subred de clase por defecto rara vez será la máscara de subred óptima para nuestro tamaño de subred.** \
En lugar de esto, utilizamos máscaras de subred diferentes para modificar las subredes y crear redes que son mucho mejor en lo que respecta a alcance (la cantidad de hosts disponibles es más acorde a la necesidad).

Por ejemplo, si tenemos disponible la red 10.0.0.0/x, tenemos una dirección de clase A, por lo que tenemos 16.7 millones de hosts disponibles, cifra completamente imposible de alcanzar.\
\
En este caso, con 10.0.0.0/8, tenemos una máscara de subred de clase A, con 16.7 millones de hosts, pero probablemente necesitamos algo como 10.0.0.0/24, el cual nos da la posibilidad de asignar 256 direcciones IP distintas (254 si restamos dirección de red y de broadcast), lo cual es más razonable.\
Utilizar la máscara de subred de clase C (/24) tiene mayor sentido si vamos a necesitar una cantidad no muy grande de hosts.

Luego, si queremos crear otra subred, podemos utilizar la dirección 10.0.1.0/24, el cual también nos da 256 direcciones IP diferentes para utilizar en diferentes hosts. Y así sucesivamente, creando varias subredes de 256 hosts cada una.

Entre las ventajas de crear subredes, encontramos:

* <mark style="color:green;">**Eficiencia**</mark>
* <mark style="color:green;">**Seguridad**</mark>
* <mark style="color:green;">**Flexibilidad**</mark>
* <mark style="color:green;">**Control de Ancho de Banda**</mark>

### Máscaras de subred de clase

Las máscaras de subred de clase (Classful Subnet Mask) son aquellas que están asociadas a una dirección de clase.

Por ejemplo, la dirección IP 10.0.0.0/8 es una dirección de clase A, y su máscara **/8 (255.0.0.0)** es una **máscara de subred de clase A**.

Además, las direcciones 172.16.0.0/16 - 172.31.255.255/16 pertenecen al rango de las direcciones de clase B, y la máscara **/16 (255.255.0.0)** es una **máscara de subred de clase B**.

Por último, la dirección 192.168.0.0/24 es una dirección de clase C y su máscara de subred **/24 (255.255.255.0)** es una **máscara de subred de clase C**.

<figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2F9c4i6GWCnhQq5LNAaiGv%2Fimage.png?alt=media&amp;token=5635f510-d6a9-4d37-bd7d-137eae939ae0" alt=""><figcaption></figcaption></figure>

### Mascaras de subred sin clase

En ocasiones puede ser necesaria una menor cantidad de direcciones IP que las que proveen las máscaras de subred de clase.

Por ejemplo, si tengo pensado utilizar 10 dispositivos en mi red, una máscara /24 es demasiado grande, ya que esta máscara me provee de 254 direcciones y solo necesito 10.

Para solucionar esto, existen máscaras de subred que no son de clase y permiten que en cada subred haya una cantidad de hosts más acorde a la necesidad que tengamos.

Para realizar esto, tomamos prestados bits de la parte relativa a los hosts y la utilizamos en la porción de red, creando máscaras de subred mayores (/25, /26, /27, etc) con menor cantidad de hosts en cada red.

<figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2FDxbBEK5K9THMxOzTooUe%2Fimage.png?alt=media&amp;token=7af962ce-7d47-4fde-a35a-c61e7477ba5a" alt=""><figcaption></figcaption></figure>

### Fórmulas a utilizar a la hora de hacer Subnetting

Cuando realizamos Subnetting, tenemos que tener en cuenta ciertas fórmulas que nos ayudan a elegir el número apropiado de máscara de subred necesaria para cubrir nuestras necesidades.

Entre ellas encontramos:

<mark style="background-color:green;">**CANTIDAD DE SUBREDES CREADAS**</mark>

$$
Subredes = 2^s
$$

​Siendo s = cantidad de bits tomados de la porción de hosts

**Ejemplo**:&#x20;

Si realizo subnetting a una dirección de máscara /24, y tomo prestado 1 bit, obtengo la máscara /25.

Al haber tomado 1 bit, la cantidad de subredes creadas es:&#x20;

$$
Subredes = 2^1 = 2
$$

<mark style="background-color:green;">**​CANTIDAD DE DIRECCIONES IP DISPONIBLES (ASIGNABLES)**</mark>

$$
Direcciones = 2^h - 2
$$

​Siendo h = cantidad de bits disponibles para hosts (es decir, porción de hosts)

Ejemplo:

Si tengo una máscara de subred /25, al total de bits (32) le tengo que restar la cantidad que pertenece a la porción de red (25):

32 (total de bits de una ip) - 25 (total de bits para la red) = 7 (total de bits para los hosts)

Por lo que:

$$
Direcciones = 2^7 - 2 = 128 - 2 = 126
$$

​El número - 2 surge de que cada red tiene que tener 2 direcciones IP para ser una red:

* <mark style="color:orange;">**Network ID (dirección de red, la cual es la primera IP en el rango de dicha red)**</mark>
* <mark style="color:orange;">**Broadcast ID (dirección de broadcast, la cual es la última IP en el rango de dicha red)**</mark>

### CIDR (Classless Interdomain Routing)

La <mark style="color:blue;">**notación CIDR**</mark> es una notación que, en lugar de anunciar múltiples rutas individuales, nos permite resumir todas ellas en una única ruta o dirección.

Esta notación es en realidad solo una abreviatura de la máscara de subred , y representa el número de bits disponibles para la dirección IP. Por ejemplo, el /24 en 192.168.0.101/24 es equivalente a la dirección IP 192.168.0.101 y la máscara de subred 255.255.255.0.

### VLSM (Variable-Length Subnet Mask)

La <mark style="color:blue;">**máscara de subred de longitud variable**</mark>, conocida como <mark style="color:blue;">**VLSM**</mark>, permite crear subredes de varios tamaños para ser utilizadas .

Por ejemplo, si utilizo una máscara /26 tengo 4 subredes con 62 hosts c/u, pero con VLSM puedo romper estas redes y tener porciones de 16 hosts, o 32 hosts y de esa manera puedo hacer el aprovechamiento de la red mucho más grande.

Esto **requiere un protocolo de ruteo que lo soporte**, pero todos los protocolos de ruteo modernos lo hacen, entre ellos:

* <mark style="color:purple;">**RIP**</mark>
* <mark style="color:purple;">**OSPF**</mark>
* <mark style="color:purple;">**IS-IS**</mark>
* <mark style="color:purple;">**EIGRP**</mark>
* <mark style="color:purple;">**BGP**</mark>

<mark style="background-color:orange;">**Básicamente, VLSM se basa en realizar subnetting a las subredes. Sin VLSM, todas las subredes deberían ser del mismo tamaño.**</mark>
