Como de momento vuelvo a tener algo de tiempo para el blog y antes de continuar la serie Practicando MPLS, aprovecho un tema recurrente en el mundo del networking, el Subnetting y sus derivados. Recientemente me ha tocado recordar viejas cosas así que con algunos ejercicios quiero mostrar una manera fácil de realizar los cálculos para toda clase de direccionamiento.
No quiero entrar en detalle en la teoría, dado que existe mucha documentación y me limitare a desarrollar ejercicios con los que mostrar distintos métodos para realizar los cálculos. No por ello comentar por encima algunas técnicas que utilizaremos:
* Exponecial: En el octeto correspondiente, utilizaremos el número de bits de hosts y de redes como exponente del número 2 (binario) para calcular los totales.
11110000 => 2³ = 8 11111000 => 2² = 4 11111100 => 2¹ = 2 11111110 => 2⁰ = 1
* Restando: En el octeto correspondiente, restaremos el valor de la máscara a 256 para obtener el número de direcciones por red. Teniendo una máscara de 240 realizaremos el siguiente cálculo:
256 - 240 = 16
* Multiplicando: Multiplicaremos por 2 el valor de los bits utilizados en función del número de host que necesitemos.
11111000 => 2x3 = 8 11111100 => 2x2 = 4 11111110 => 2x1 = 2
* Sumar número de hosts: Para crear las tablas de direccionamiento iremos sumando en el octeto correspondiente el número de host obtenido.
Si tenemos 4 redes de 64 direcciones, iremos sumando de 64 en 64: 0, 64, 128 y 192.
* Tabla de binario: Es imprescindible conocerse la siguiente secuencia de valores
Nº bit: 7 6 5 4 3 2 1 0
Valor: 128 64 32 16 8 4 2 1
Con ella podremos realizar todos los cálculos que necesitemos: obtener el valor de los bits subnetteados y viceversa, calcular el valor digital y binario de las máscaras de red, etc.
Máscara: 128 192 224 240 248 252 254 255
* Descarte: Como en cualquier otro cuestionario, siempre nos encontraremos con preguntas trampas, autenticas burradas que poco tienen que ver con la pregunta, etc.
Como vamos a utilizar todas las clases que existen dentro del direccionamiento IPv4, empezaremos desde los más "sencillos" hasta los más "complejos", usando ejercicios reales y algunos modificados.
Ejercicios
Clase C
Ejercicio: Utilizando el siguiente direccionamiento: 192.168.16.0/24, nos piden crear 10 redes de 10 direcciones.
Podemos calcular el exponente en función del número de redes y direcciones que necesitemos:
Red: 2¹ 2² 2³ 2⁴ = 16
Hosts: 2¹ 2² 2³ 2⁴ = 16
Con lo que obtenemos que necesitamos 4 bits tanto para la parte de red como para la de host y una máscara de red 255.255.255.240 que nos proporciona un total de 16 redes.
Si restamos a 256 el valor del último octeto, 256 - 240 = 16, obtenemos el número de direcciones que tenemos por cada subred. Dicho valor coincide con el resultado anterior.
Igualmente podríamos calcular el número de bits de hosts que necesitamos multiplicando por 2 el valor de los bits que utilizamos, es decir:
Host: 2x1 2x2 2x4 2x8 = 16 (4 bits)
Clase B
Ejercicio: Necesitamos dividir una red de clase B en subredes con un mínimo de 500 direcciones ¿Qué máscara utilizará?.
De las distintas maneras que hemos visto para obtener el número de bits en función del número de hosts, el más rápido es ir multiplicando por 2 según vamos cogiendo bits para el rango. En este caso:
Host: 2x1 2x2 ... 2x64 2x128 2x256 = 512
Utilizando por ejemplo el rango: 172.30.0.0/23, obtendremos la siguiente tabla de direcciones:
Clase A
Ejercicio: Teniendo el siguiente direccionamiento 10.18.71.2 255.248.0.0 ¿Cuál es la dirección de Red y de Broadcast?
En primer lugar vamos a realizar algunos cálculos para obtener el número de bits de máscara y el número de host por red: 256 - 248 = 8 == 2³
Resultando que la dirección de red es 10.16.0.0 y la de broadcast 10.23.255.255.
VLSM
Ejercicio: Teniendo el siguiente direccionamiento completo 172.25.0.0/16 nos piden crear los siguientes rangos:
2 subredes de 1000 hosts
2000 hosts
5 hosts
60 hosts
70 hosts
15 enlaces de 2 hosts por enlace
En este caso vamos a utilizar un ejercicio complejo de VLSM que aglutina todo lo que hemos aprendido en los ejercicios anteriores.
En primer lugar deberemos organizar los distintos rangos de mayor a menor dado que es en ese orden como iremos realizando los cálculos.
1 x 2000 direcciones
2 x 1000 direcciones
1 x 70 direcciones
1 x 60 direcciones
1 x 5 direcciones
15 x 2 direcciones
Iremos calculando el número de direcciones multiplicando por 2 los valores de los bits que utilizaremos. Para el primer rango, de 2000 direcciones:
1.1.11111000.00000000
2048 direcciones
Para los rangos de 1000 direcciones:
1.1.11111100.00000000
1024 direcciones
Para el siguiente rango, de 70 direcciones:
1.1.1.10000000
128 direcciones
Una vez realizados todos los cálculos, tenemos las diferentes máscaras de red que utilizarán cada fragmento:
1 x 2000 direcciones - 5 bits de red - 255.255.248.0
2 x 1000 direcciones - 6 bits de red - 255.255.252.0
1 x 70 direcciones - 1 bits de red - 255.255.255.128
1 x 60 direcciones - 2 bits de red - 255.255.255.192
1 x 5 direcciones - 5 bits de red - 255.255.255.248
15 x 2 direcciones - 6 bits de red - 255.255.255.252
Con estos datos podremos calcular los distintos rangos partiendo desde el mayor hasta el menor para perder el mínimo número de direcciones.
Traducción decimal/binario
Ejercicio: Cual de las siguientes direcciones corresponde a una clase A privada
00001010.01111000.01101101.11111000
00001011.11111010.11100001.01100111
00101010.11001000.11110111.01001100
00000010.01001010.01101001.11110011
En primer lugar podemos utilizar el método de descarte para determinar rápidamente cual es la dirección que nos pide el enunciado. En este caso ha coincidido con un ejercicio sencillo pero que demuestra como fácilmente podemos contestar este tipo de preguntas.
En este caso nos hablan de una red de clase A privada, donde el rango empieza en 10.0.0.0 y finaliza en 10.255.255.255. Basándonos en el primer octeto, obtenemos un binario de 00001010 por lo que descartaríamos las siguientes respuestas:
00001010.01111000.01101101.11111000
Ejercicio: Convertir en binario la siguiente dirección: 191.168.10.11
10111001.10101000.00001010.00001011
11000001.10101100.00001110.00001011
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
01111111.10101000.00001011.00001011
10111111.10101001.00001010.00001011
Utilizando el mismo método anterior, descartaremos inicialmente las respuestas que sepamos. Recomendablemente utilizaremos valores pequeños para facilitar el trabajo, en este caso nos fijaremos en el tercer octeto que debería corresponder con 00001010 (10)
10111001.10101000.00001010.00001011
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
10111111.10101001.00001010.00001011
Posteriormente pasaremos octeto a octeto, según el nivel del dificultad, descartando respuestas. En éste caso utilizamos el primer octeto: 255 - 191 = 64, de donde obtenemos que el primer octeto debe ser 10111111:
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
10111111.10101001.00001010.00001011
Como con el primer octeto no hemos tenido mucho éxito pasamos al siguiente. Otra de las técnicas que podemos utilizar es ver si se trata de un número par o impar; cuando nos piden números impares, el bit menos significativo debe estar activo:
10111111.10101000.00001010.00001011
Actualización: No sé por qué leches hace lo que le da la gana con el formato : (
Resultando que la respuesta correcta es 10111111.10101000.00001010.00001011.
Supernetting
Ejercicio: Dado el siguiente rango: 200.17.7.0 255.255.255.224, sumariza las redes obtenidas.
En primer lugar pasaremos a desarrollar todo el direccionamiento:
Host: 256-224 = 32 == 2⁵
Red: 2³ = 8
Por tanto, obtenemos la siguiente tabla de resultados:
A simple vista se puede observar un patrón común entre todas las direcciones de red, pero vamos a pasar a traducir el octeto correspondiente a la máscara proporcionada. Dado que tenemos una máscara de 27 bits, utilizaremos el último octeto de cada dirección:
0 = 00000000
32 = 00100000
64 = 01000000
96 = 01100000
128 = 10000000
160 = 10100000
192 = 11000000
224 = 11100000
Como se puede observar, todos los bits más significativos son utilizados imposibilitando sacar un patrón común de los mismo. Deberemos utilizar el octeto anterior, en donde observamos:
00000111 00000000
00000111 00100000
00000111 01000000
00000111 01100000
00000111 10000000
00000111 10100000
00000111 11000000
00000111 11100000
Obtenemos que la máscara que nos sumarizará la red es 255.255.255.0 (24 bits).
Ejercicio: Sumarizar los siguientes rangos de red:
172.16.0.0/24
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24
Una manera sencilla de realizar este ejercicio sería calcular el exponente que debemos utilizar: 2² = 4 redes. Pero vamos a desarrollar el ejercicio para entenderlo mejor:
172.16.0.0 -> ... 00000000 00000000
172.16.1.0 -> ... 00000001 00000000
172.16.2.0 -> ... 00000010 00000000
172.16.3.0 -> ... 00000011 00000000
Con 2 bits del rango de red, obtenemos un patrón común a utilizar simplificado en la siguiente máscara 255.255.252.0 (22 bits).
Un saludo, Brixton Cat.
No hay comentarios:
Publicar un comentario
Bienvenid= si quieres dejar un comentario