educación, informática y demás

8 – Direccionamiento IP. Subredes

Introducción

Hemos visto como funciona el direccionamiento IP. Sabemos que una dirección IP está compuesta por una parte de red y una parte de host. Para saber qué parte es de red y qué parte es de host podemos utilizar la máscara de red cuyos bits nos indican qué parte de la dirección IP es de red y qué parte es de host.

Hasta ahora, tan solo conociendo la clase de la dirección IP, podríamos saber cuál es la máscara de red de la dirección IP, puesto que no estábamos usando subredes. Sin embargo, ahora si vamos a utilizar subredes y en estos casos tanto el cálculo de la máscara de subred como su uso para obtener la dirección de red será esencial para poder analizar información de una dirección IP.

Comencemos con un breve repaso sobre direccionamiento IP básico. Como hemos dicho, toda dirección IP tiene, al menos, dos partes: una de red y otra de host. Por ejemplo, en la red 192.168.0.0 de la clase C sin subredes tendrémos el siguiente escenario.

En esta red contamos con 24 bits para red y 8 bits para representar los hosts. La dirección de red es 192.168.0.0/24, donde 24 es un sufijo conocido como sufijo CIDR. Este sufijo indica los bits que están reservados para red y subred.

Ya veremos más adelante como funciona CIDR, qué significa y qué usos tiene, sobre todo con las VSLM. Por ahora, para nosotros, ahora mismo, el CIDR nos indica los bits que se reservan para red y subred.

Ambas formas de proporcionar la información sobre la red son válidas. Utilizando un sufijo CIDR tras la dirección IP con una barra / como separador o bien proporcionando la máscara de subred completa.

Como el valor del sufijo CIDR coincide con los bits reservados para red en las direcciones IP de la clase C, sabemos que no hay subredes en esta red.

Como sabemos, en una red de la clase C tenemos 24 bits reservados para red y 8 bits para Hosts. Con 8 bits para host, podremos direccionar 2^8 – 2 hosts dentro de esta red, puesto que del total de direcciones posible con 8 bits, se reservan:

  • La primera dirección, que identifica a la dirección de la red. Por definición, la dirección de red mantiene los bits de red con su valor y los bits de host se establecen a 0. 192.168.0.0
  • La última dirección, que identifica a la dirección de broadcast. Por definición, la dirección de broadcast se obtiene manteniendo los bits de la red y estableciendo a 1 los bits de host. 192.168.0.255
  • Direcciones de hosts. Se trata de las direcciones que van desde la primera dirección disponible después de la dirección de red hasta la última dirección disponible, antes de la dirección de broadcast. En este caso: 192.168.0.1 – 192.168.0.254.

Bien, pues en este caso, con 8 bits tendremos las siguientes combinaciones.

Bits de host de la dirección IP de la red 192.168.0.0

Como podéis ver, con 8 bits tenemos 256 valores distintos, números. Cada combinación identifica a un host dentro de la red, excepto la primera y la última combinación que tienen un valor especial como ya hemos visto.

Al final, teniendo en cuenta los bits de red, que se mantienen para todas las direcciones IP de esta red, nos quedaría algo así.

No podemos olvidar que, al final, una dirección IPv4 es un número de 32 bits, que se representa como cuatro números decimales para facilitar la comprensión a los humanos, pero la lógica de red trabaja con estos números.

En cuanto a la máscara de red asociada a una IP tiene gran importancia puesto que nos permite conocer qué bits se reservan para red (también para subred) y para host. Gracias a ella podemos obtener toda esta información:

  • Dirección de red a la que pertenece la dirección IP.
  • Dirección de broadcast de la red.
  • Dirección de cada host direccionable dentro de la red.

Bien pues la máscara es esencial cuando trabajamos con subredes y habitualmente se representa como un sufijo CIDR. En este caso sería 24, que indica el número de bits de red y subred, que se deberán establecer a 1. El resto de bits, serán de host y se establecen a 0.

Subredes

Una subred es una red que está dentro de una red de mayor tamaño. Hemos visto que las direcciones IP tienen dos partes, la parte de Red y la parte de Host. En ninguna parte se habla de bits de subred. Así que tenemos que tomar parte de estos bits para representar las subredes.

Para representar subredes tomaremos «prestados» bits de la parte de la dirección IP reservada para hosts. Podremos tomar tantos bits como necesitemos para representar las subredes necesarias.

Veamos con un pequeño ejemplo con subredes dentro de una red de clase C como la del ejemplo.

Supongamos que tomamos un bit para representar subredes. De esta forma, los bits en los que se divide la dirección IP serían los siguientes.

Analicemos algunos detalles.

  1. Una dirección IP tiene 32 bits. La suma de los bits de red, de subred y de host siempre debe dar 32.
  2. El sufijo CIDR ha cambiado, puesto que los bits resevados para red y subred ahora son 25. Hemos de recordar que el sufijo CIDR representa los bits reservados para red y subred. Por tanto CIDR = R + S.
  3. La máscara de subred ha cambiado. Ahora se debe establecer a 1 el bit que hemos reservado para subredes de los que teníamos para host.
  4. El número de subredes con N bits será 2 elevado a N (Más adelante veremos otras opciones). Así que con 1 bit tendremos 2 subredes posibles.
  5. Cada subred tendrá dirección propia de subred, de broadcast y de hosts dentro de la subred. El número de hosts por subred se calcula con los bits que quedan para representar hosts restando dos, puesto que en cada subred debemos reservar la dirección de subred y la dirección de broadcast de cada subred.
  6. La parte de la dirección IP reservada para red no cambia en absoluto.

Ahora una dirección IP de esta red, tendrá las siguientes partes

Y conocemos las partes que tiene gracias al sufijo CIDR y a su máscara de subred, que será así.

Dirección de subred

¿Cómo obtenemos la dirección de subred?. Usando las combinaciones posibles con los S bits reservados para subred.

En nuestro caso, solo tenemos 1 bit, así que solo tenemos dos combinaciones posibles.

1 bit. Subred 0 y Subred 1

Si solo tenemos en cuenta ese bit, fuera del bloque de 8 bits al que pertenece tendríamos dos valores: 0 o 1.

Pero, tenemos que tener en cuenta que este bit está en medio de la dirección IP, en concreto es el bit más significativo, más a la izquierda, de los bits reservados para host. Por tanto, su valor en el bloque de 8bits en el que se encuentra no será 0 o 1.

Si nos fijamos en la imagen superior, el bit más significativo del bloque de 8bits dedicados para hosts inicialmente, se ha reservado para subred. De esta forma, ese bit identifica a la subred y el resto de los 7 bits identifican a los hosts dentro de cada subred.

La primera subred estara compuesta por todas las direcciones IP de la red que tengan el bit 7 a 0. La segunda subred estará compuesta por aquellas direcciones IP de la red que tengan el bit 7 a 1.

Es decir, ese bit, con su valor 0 o 1, indica la subred, pero al formar parte de un bloque de 8 bits más, su valor en el bloque decimal no será 0 o 1, sino el de la posición en la que se encuentre.

Al ser el bit en la posición 7, su valor será 0, si no está a uno o 128 si está a 1.

  • Si nos fijamos en la primera dirección de cada subred, esta dirección tiene todos los bits de host a cero y el bit de subred con el valor que le corresponda. Ahí se puede observar perfectamente como afecta el bit de subred en el número decimal del bloque en el que está. Esta dirección es la dirección de subred, que cumple con la definición: «Los bits de red y subred se mantienen con el valor correspondiente, los bits de host se establecen a cero».
  • La última dirección de la subred es la dirección de broadcast de la subred, que cumple con la definición: «Los bits de red y subred se mantienen con el valor correspondiente, los bits de host se establecen a 1».
  • La dirección del primer host de la subred será la primera dirección después del dirección de subred. Por tanto, la de subred más uno.
  • La dirección del último host de la subred será la penúltima dirección, justo antes de la dirección de broadcast de la subred. Por tanto, la de broadcast de la subred menos uno.
  • El número de hosts por subred será 2 elevado a los bits de host actuales menos 2.

Resumiendo…

  1. Los bits de subred se toman de los bits reservados para hosts originalmente. De esta forma tendremos R bits de red, S bits de subred y H bits de host en una dirección IP, cuya suma debe ser 32.
  2. Podemos conocer el valor de R por la clase de la dirección IP. El valor de S por el sufijo CIDR o por la máscara de subred y el valor de H por una operación de resta con S.
  3. Con S bits de subred tendremos 2 elevado a S subredes distintas.
  4. Cada subred tiene una dirección de subred, una de broadcast y una serie de hosts direcccionables que será 2 elevado a H – 2.
  5. Las direcciones de las subredes distarán una de la otra en suma de la cantidad del bit de menos peso de los reservados para subred. Recuerda, aunque son bits individuales forman parte de un bloque de 8 bits o incluso de varios.

Atendiendo a la siguiente imagen, dependiendo del número de bits que tomemos de subred tendremos distintas cantidades de subredes disponibles

En cuanto al número de hosts por subred debemos calcularlo en cada caso, puesto que no sabemos el valor de H. Este valor cambiaría si estamos trabajando con una red de Clase A, B o C.

Por ejemplo si tomamos 3 bits para subred en una dirección de la Clase B tendríamos R=16; S=3; H=13, lo que nos dejaría 2 elevado a 13 menos dos hosts por subred, 8190 hosts por subred y 8 subredes.

Sin embargo, si esto mismo lo hacemos con una dirección de la Clase C, tendríamos R=24; S=3; H=5, lo que nos dejaría 2 elevado a 5 menos dos hosts por subred, 30 hosts por subred y 8 subredes.

En cuanto al cálculo de la siguiente subred tenemos que tener en cuenta siempre la posición dentro del bloque de 8 bits del bit menos significativo reservado para subred. Por ejemplo, si tomamos 3 bits para subred, las direcciones de subred distarán una de la otra 2 elevado a 5, 32. Esto es así porque el bit menos significativo que determina las subredes está en la posición número 5, como se puede observar en la imagen.

Si solo tuvieramos estos bits tendríamos ocho números que irían del 0 al 7, pero como estos 3 bits forman parte de un número de 8bits, el resultado es distinto.

La mejor forma de entender estos conceptos es realizar ejercicios de análisis de direccionamiento con subredes.