Subnetting, subredes y máscaras de red

Para hoy, me gustaría explicar el concepto de subred (subnet) y máscaras de red o máscaras de subred. Aunque hay amplia cantidad de información muy interesante en internet y, también, en la wikipedia, creo que va a ser conveniente preparar un artículo que explique de modo resumido qué es una subred y para qué sirven las máscaras de red. La idea es ir un poco más allá de la simple configuración de nuestra red local de casa y saber para qué es el numerito 255.255.255.0 que todos ponemos sin pensar en la máscara de subred que nos pide el equipo o por qué, a veces, el ordenador “adivina” cuál es la máscara de subred.

Para empezar, un resumen de cómo se numeran las direcciones IP.

Escribí un artículo anterior que hablaba del máximo número de direcciones IP que podíamos configurar a partir del modelo IPv4 que llevamos usando 30 años.

En él, hacíamos una descripción de las redes IPv4 de 32bits, que no era otra cosa que un conjunto de cuatro octetos, osea, cuatro grupos de 8 bits cada uno:

213.15.12.167 = 11010101.00001111.00001100.10100111

Si abrimos una consola de comandos (o terminal, o cmd, o como quieras llamarlo) y escribimos ipconfig ó ifconfig (linux), nos dará un resultado parecido a ésto:

Direc. inet:192.168.1.30  Difus.:192.168.1.255  Másc:255.255.255.0

La primera dirección nos indica la IP del equipo y la última dirección nos muestra la máscara de red.

La dirección IP suele estar bastante clara, pero cuando hablamos de la máscara de red, no todo el mundo sabrá decirte a qué se refiere o qué significa.

Existen 3 clases de direcciones: Clase A, Clase B y Clase C que corresponden con el prefijo de red de la dirección. Así, tenemos direcciones como las siguientes:

10.1.1.1
180.192.192.128
192.168.1.1

Si tomamos el primer número y lo pasamos a binario, obtenemos:

 1010 = 000010102
18010 = 101101002
19210 = 110000002

Salvo error en la conversión. Los tres primeros bits de la numeración en binario nos indican qué clase de red es cada dirección:

 10 es 000, o clase A
180 es 101, o clase B
192 es 110, o clase C

Para cada clase tenemos un máscara de red concreta, que indicará qué parte reservamos a direcciones de red y qué parte reservamos para direcciones de hosts (o de ordenadores):

 10 es 000, o clase A, máscara de red 255.0.0.0
180 es 101, o clase B, máscara de red 255.255.0.0
192 es 110, o clase C, máscara de red 255.255.255.0

Más fácil de ver si colocamos las máscaras en notación binaria:

11111111.00000000.00000000.00000000
11111111.11111111.00000000.00000000
11111111.11111111.11111111.00000000

Estas máscaras nos dicen que los 1 corresponden con direcciones de red y los 0 se destinan a hosts.
El número de redes de cada clase se puede obtener conociendo cuántos bits a 1 tenemos y restando el bit destinado a la definición de red (1-A, 2-B, 3-C) con la siguiente tabla sencilla:

Clase A 11111111 2⁸⁻¹ = 128 redes // 00000000.00000000.00000000 2²⁴-2 = 16777214 hosts
Clase B 11111111.11111111 2¹⁶⁻² = 16384 redes // 00000000.00000000 2¹⁶-2 = 65534 hosts
Clase C 11111111.11111111.11111111 2²⁴⁻³ = 2097152 redes // 00000000 2⁸-2 = 254 hosts

La máscara de subred

Puesto que, por definición, a cada clase le corresponde una máscara, siempre que configuramos nuestro ordenador con la ip, éste es capaz de mostrar la máscara automáticamente, con lo que es bastante normal que no nos preguntemos para qué sirve esta máscara. En un entorno doméstico en el que apenas hay unos pocos hosts (ordenador, portátil, teléfonos móviles), no parece importante ir más allá con las subredes, con lo que nos bastará con una máscara éstandar de red de clase C 255.255.255.0 que es la habitual. De este modo, en casa podremos tener un máximo de 254 equipos en una misma red.

En caso de que lo que queramos sea administrar una oficina que esté dividida en varios departamentos y que formen redes independientes, necesitaremos utilizar la máscara de subred o diferentes enrutadores para separar las redes.

Una subred dentro de una red se configura “tomando” bits de la parte que corresponde a los hosts:

Por ejemplo:
255       255     255       0
Clase C 11111111.11111111.11111111.00000000
[         red            ].[ hosts]
255       255     255      192
11111111.11111111.11111111.11000000
[        red             ] sr[hosts]
En este caso hemos tomado "prestados" dos bits de la zona hosts, de tal modo
que podemos crear 2² = 4 subredes, permitiendo la existencia de, por ejemplo,
4 departamentos separados cuyos ordenadores no podrían verse entre sí.
El número de IPs disponibles para hosts quedaría en 2⁶-2=62.
Restamos 2 porque la primera dirección corresponde con la dirección de
red y la última es la dirección de multidifusión (broadcast).

Ejemplo real

Vamos a crear una red local con 3 departamentos separados entre sí. Diseñar una tabla con todas las direcciones: – En primer lugar, elegimos la clase de la red que vamos a preparar. Para este caso y
sabiendo que se trata de una red local pequeña, elegimos una clase C, por ejemplo 192.168.1.0.

192.168.1.0 con máscara 255.255.255.0
Para montar 3 subredes se requieren 2bits = 2²=4 totales, de las que usaremos 3.

Pasamos la máscara a binario:
255.255.255.0 = 11111111.11111111.11111111.00000000
Tomamos dos bits de la parte hosts:
11111111.11111111.11111111.11000000 = 255.255.255.192
En esta ocasión no necesitamos saber a qué subred pertenece la dirección IP 192.168.1.0,
pero si fuera necesario porque no lo hemos ubicado, haríamos una multiplicación (AND)
de la dirección por la máscara de subred:
11000000.10101000.00000001.00000000 ->192.168.1.0
11111111.11111111.11111111.11000000 ->255.255.255.192
-----------------------------------
11000000.10101000.00000001.00000000 -> 192.168.1.0
Las subredes posibles son:
11000000.10101000.00000001.00000000 -> 192.168.1.0/26
11000000.10101000.00000001.01000000 -> 192.168.1.64/26
11000000.10101000.00000001.10000000 -> 192.168.1.128/26
11000000.10101000.00000001.11000000 -> 192.168.1.192/26
Y su dirección se obtiene poniendo a cero todos los bits correspondientes a host

Para obtener el primer host de la subred, ponemos todos los bits de la parte de host a 0 excepto el último:

11000000.10101000.00000001.00000001
11000000.10101000.00000001.01000001
11000000.10101000.00000001.10000001
11000000.10101000.00000001.11000001

Para obtener la dirección del último host, ponemos todos los bits de la parte host a 1, excepto el último, que será 0:

11000000.10101000.00000001.00111110
11000000.10101000.00000001.01111110
11000000.10101000.00000001.10111110
11000000.10101000.00000001.11111110

Para obtener la dirección de multidifusión o broadcast, ponemos a 1 todos los bits de host:

11000000.10101000.00000001.00111111
11000000.10101000.00000001.01111111
11000000.10101000.00000001.10111111
11000000.10101000.00000001.11111111

Y para poder entender de modo humano todos estos bits, los pasamos a decimal y obtenemos la tabla de subredes:

Dpto. Subred Broadcast Hosts Máscara
1o 192.168.1.0/26 192.168.1.63 192.168.1.1 a 192.168.1.62 255.255.255.192
2o 192.168.1.64/26 192.168.1.127 192.168.1.65 a 192.168.1.126 255.255.255.192
3o 192.168.1.128/26 192.168.1.191 192.168.1.129 a 192.168.1.190 255.255.255.192
4o 192.168.1.192/26 192.168.1.255 192.168.1.193 a 192.168.1.254 255.255.255.192

Usando esta tabla podremos ubicar cualquier host en cualquiera de las subredes sin necesidad de hacer nuevos cálculos. Se trataría, pues, de un mapa ideal de nuestra red local.

Por ejemplo, para instalar un ordenador nuevo en el tercer departamento, podríamos elegir cualquier dirección IP entre la 192.168.1.129 y la 192.168.1.190 que esté disponible. Este ordenador sólo podría ver ordenadores de su subred correspondiente, de tal modo que cada departamento comparte recursos sólo con ordenadores que forman parte de esa subred.

Así, mediante el uso de máscaras de red, podremos diseñar cualquier tipo de red en nuestra casa u oficina. Por supuesto, esta tarea sencilla se puede convertir en un auténtico quebradero de cabeza cuando se trata de grandes empresas con cientos de hosts divididos en muchos departamentos, pero los cálculos que se realizan son los mismos. Si planteamos correctamente la red desde el principio, después será mucho más fácil ubicar equipos en los departamentos o redes que nos interesen.

Artículo Copyleft con estos permisos.

Fuente: Memorieta personal. Es posible que existan errores 😉

Corrección a 26-08-2014. Había un error en la conversión a binario del decimal “180”. Indicaba que era clave B por ser 010…., lo cual es un error. Si echáis un ojo, ya está corregido ;). Los tres primero números en binario indican la clase. Buscamos dónde aparece el primer cero y ese será el indicador: 000, aparece en primera posición – Clase A; 101, aparece en segunda posición -Clase B-; 110, aparece en tercera posición -Clase C.


[wpb-feature-product title=”Recomendados”]

Sugerencias y dudas

¿Quieres añadir alguna sugerencia?

¿Would you like to ask something or tell us what you think about us?

¿Te gustaría cambiar algo de esta web?

Would you like to change something in this site?

¿Quieres publicar algo aquí?

Would you like to publish a post in this blog?

Si tu respuesta es afirmativa, recuerda que tienes que especificar tu email en el recuadro inferior para que podamos enviarte el formulario.

Si quieres, puedes indicar un email para que te respondamos

You can add an email where we can send our reply

Para minimizar que los bots usen este formulario, por favor, inserta el siguiente código en el recuadro
In order to void the internet bots to use this form, please, insert the code in the square
Para usar CAPTCHA, necesitarás instalado el plugin Really Simple CAPTCHA.

Código:

A %d blogueros les gusta esto: