17 de junio de 2012

Resolviendo ejercicios de subnetting


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⁴ = 16
Hosts:      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)

En la siguiente imagen se puede observar el direccionamiento obtenido en el ejercicio


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

Donde obtenemos 9 bits para el total de direcciones de hosts y 7 bits del tercer octeto para subnettear: 2⁷ = 128.

Obteneniendo un total de 128 redes de 512 direcciones cada una. La máscara que utilizaremos será: 255.255.254.0.

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³

De donde obtenemos un total de redes de 2⁵ = 32

Por tanto tendremos una máscara de 13 bits (/13). Resumiendo la tabla de direcciones, obtenemos la siguiente lista:


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
00001011.11111010.11100001.01100111
00101010.11001000.11110111.01001100
00000010.01001010.01101001.11110011

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
11000001.10101100.00001110.00001011
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
01111111.10101000.00001011.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:

10111001.10101000.00001010.00001011
11000001.10101100.00001110.00001011
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
01111111.10101000.00001011.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:













10111001.10101000.00001010.00001011

11000001.10101100.00001110.00001011
10111111.10101000.00001010.00001011
10111111.10101001.00001010.00001011
01111111.10101000.00001011.00001011
10111111.10101001.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).

Enlaces

Un saludo, Brixton Cat.

No hay comentarios:

Publicar un comentario

Bienvenid= si quieres dejar un comentario