El Problema Los Siguientes Requerimientos. Use VLSM, Es Decir, Optimice El Espacio de
El Problema Los Siguientes Requerimientos. Use VLSM, Es Decir, Optimice El Espacio de
El problema
Solución
Para 80 hosts necesito 7 bits (2^7=128, menos red y broadcas 126 hosts máx.), por lo tanto
el prefijo de subred del primer bloque sería /25 (8-7=1; 24+1=25) Tomando la subred cero,
la primera dirección de subred sería 192.168.0.0/25, broadcast 192.168.0.127, por lo tanto
el rango asignable sería .1 hasta .126.
Para 20 hosts necesito 5 bits (2^5=32, es decir 30 hosts máx.). Prefijo: /27 (8-5=3,
24+3=27); Dir. de red: 192.168.0.128/27, broadcast 192.168.0.159. Rango
asignable .129-.158.
Los enlaces entre enrutadores sólo necesitan 2 bits (2^2=4, es decir 2 hosts máx) por lo
tanto el prefijo debe ser /30 (8-2=6, 24+6=30). Dir. de enlace 1: 192.168.0.192, dir. de
broadcast en enlace 1: 192.168.0.195, rango .193-.194. Dir. enlace 2: 192.168.0.196/30,
broadcast en enlace 2: 192.168.0.199, rango .197-.198. Dir. enlace 3: 192.168.0.200/30,
broadcast enlace 3: 192.168.0.203, rango: .201-.202.
Se puede observar que los rangos de direcciones asignados son contínuos y que queda
disponible para crecimiento futuro un rango de direcciones desde 204 en adelante.
Referencias
Si ud. no comprende qué significa o de dónde salieron los cálculos del ejercicio, por favor
lea estas otras entradas anteriores de mi blog en las que se habla de varios aspectos del
direccionamiento y se explica lo que es un esquema de direccionamiento y cómo
diseñarlos. Las últimas dos entradas hablan de qué son clases de direcciones, direcciones
privadas y el funcionamiento del direccionamiento en casos concretos de conexiones punto
a punto (sólo dos PCs)
Hace unos días escribí una entrada con ejercicios de VLSM calificados como fáciles. Esos
ejercicios eran fáciles porque la división en subredes comprendía sólo el último octeto y en
ese sentido los números decimales eran pequeños y la numeración de las subredes era en
saltos predecibles y fáciles de entender. Ahora vamos a repetir el ejercicio pero haciendolo
a través de varios octetos para aumentar la dificultad, aunque como van a ver, lo de difícil
es un decir porque, siendo sistemáticos, la división en subredes o “subneteo” (hachazo al
español derivado de subnetting en inglés) es bastante clara incluso en éstos casos.
Antes de comenzar los invito a revisar las entradas anteriores sobre el tema de las subredes:
Ejercicios fáciles de subredes con VLSM, ¿Cómo se diseñan redes con máscara de subred
variable?. En éstas entradas describo la idea y los fundamentos en caso de que el lector no
los tenga suficientemente claros . Ahora sí comencemos.
El problema
El potencial ideal de la red base sería 2^16-2, es decir 65534 hosts si no usamos subredes,
osea que debemos esperar que esa capacidad potencial no se desperdicie mucho, en especial
si usamos VLSM. Lo anterior nos permite saber que los requerimientos aparentes (4165
hosts) caben de sobra en la red base.
Procedimiento
Una vez ordenados los requerimientos, procedemos a operar la división en subredes como
si fueramos a usar subredes de máscara fija para la subred actual y la siguiente. Es
decir, hacemos los cálculos para una subred y dejamos indicada cuál sería la siguiente
subred, sólo que, como usamos máscara variable sabemos que las siguiente subred puede o
no tener la misma máscara (usualmente la tendrá más larga).
Todo lo que hay que explicar y racionalizar en éste “difícil” problema de subredes está
dicho en la sección anterior, digamos que los principios están descritos. Lo que haremos de
acá en adelante es repetir esta mecánica, ya que entendemos la justificación de la misma,
por lo tanto, asegúrese de entender lo que indica el párrafo anterior y la justificación de la
primera subred.
La segunda subred es de 1000 hosts, por lo tanto necesito 10 bits (2^10=1024 menos dir.
de red y de broadcast = 1022 hosts máximo). Éstos los tomo de la parte de host, quedando
así 6 bits de subred. Del cálculo de la subred anterior sabemos que la siguiente sería la
172.25.8.0/21, osea que a partir del cálculo de la subred anterior tomamos la siguiente
subred (la actual) pero con una máscara más larga (/22) dado que necesitamos menos
capacidad. De ésto se desprenden los otros dos números, la dir. de broadcast es
172.25.11.255/22 y las direcciones después de la de red y antes de la de broadcast son
asignables (172.25.8.1 hasta 172.25.11.254). Como del cálculo de ésta subred vamos a
tomar la siguiente, de una vez digamos cual sería la siguiente subred sin cambiar la
máscara: 172.25.12.0/22.
La tercera subred es también de 1000 hosts, por lo que no cambia la máscara y del
ejercicio anterior ya tenemos la dirección de subred: 172.25.12.0/22. La dir de broadcast es
entonces 172.25.15.255/22 y las direcciones asignables 172.25.12.1/22 hasta
172.25.15.254/22). La siguiente subred con la misma máscara sería 172.25.16.0/22.
La cuarta subred es de 70 hosts, para los que necesito 7 bits (2^7=128 menos broadcast y
subred 126 hosts máx), que tomo de la parte más baja de la porción de host lo que me deja
9 bits de lo que tenía originalmente en host (16 bits), por lo tanto la máscara de subred
queda en /25. La dir. de red es 172.25.16.0/25, la dir de broadcast es 172.25.16.127/25 y
las direcciones asignables desde 172.25.16.1/25 hasta 172.25.16.126/25. La siguiente
subred sería 172.25.16.128/25
La quinta subred es de 60 hosts, necesito 6 bits (2^6=64-2=62 hosts máximo) y de ahí que
la máscara de subred sea /26. La dir de red es 172.25.16.128/26, la dir de broadcast es
172.25.16.191/26 y las direcciones asignables son 172.25.16.129/26 hasta
172.25.16.190/26. La siguiente subred sería 172.25.16.192/26
La siguente subred es de 5 hosts por lo tanto la máscara será /29 (haga el cálculo). La dir.
de subred es 172.25.16.192/29, la dir. de broadcast es 172.25.16.199/29 y las direcciones
asignables de 172.25.16.193/29 hasta 172.25.16.198/29 (inclusive). La siguiente subred
sería 172.25.16.200/29
Las últimas son las subredes de enlaces WAN que sólo admiten dos hosts, por lo tanto
necesito sólo 2 bits de host y sin hacer más cálculos tengo que la máscara es /30 (de todos
modos para enlaces punto a punto, usualmente WAN, siempre se usa ésta máscara).
Las direcciones de subred serían 172.25.16.200/30, 172.25.16.204/30, –.16.208/30, –
16.212/30, –16.216/30, –16.220/30, –16.224/30, –16.228/30, –16.232/30, –16.236/30, –
16.240/30, –16.244/30, –16.248/30, –16.252/30, –17.0/30. Por favor deduzcan uds. las
direcciones asignables y las direcciones de broadcast de cada una de éstas subredes de
enlaces punto a punto. Note que la última dirección rompió el límite del octeto y pasó de la
.16.252 a la .17.0.
Note que el ejercicio esta cuidadosamente planeado para romper los límites de octeto que
tanto malacostumbran a los estudiantes y para incluir direcciones en los rangos de
asignación que pueden engañar como aquellas direcciones de hosts que tienen 0 ó 255 en su
último octeto.
Note también que a pesar de haber usado tantas direcciones y tantas subredes, todavía
queda un rango gigantesco por asignar, todas las direcciones por encima de 172.25.17.0 en
adelante siguen libres.
Conclusiones y recomendaciones
Este ejercicio es un poco más complejo que el anterior, ya que pasa los límites de los
octetos y ya en esos casos la numeración se hace truculenta y engañosa, además, se
acostumbra hacer cálculos en decimal y en estos casos el decimal no ayuda mucho (si no se
tiene mucho entrenamiento en eso).
Esta es una entrada para describir la técnica actual de creación de subredes, que resulta un
poco compleja al principio, pero si se entienden los principios básicos es más fácil. Todos
los que hemos pasado por un curso de CCNA la conocemos y el nombre técnico es VLSM
por sus siglas en inglés Variable Length Subnet Masks o creación de subredes de
longitud de máscara variable. Ésta entrada supone el conocimiento básico de las
direcciones IP con clase y la función de la máscara de red/subred en una dirección IP
asignada a un dispositivo de red, para leer algo muy básico al respecto revise las siguientes
entradas anteriores Compartir una conexión I: Enrutador inalámbrico y ¿Cómo crear una
red punto a punto en Win XP? Paso a paso.
[English version]
Antes de comenzar hay que aclarar un término que se va a usar en todo el documento:
máscara. La máscara consiste en 32 bits con los cuales cada nodo de una red IP determina
si los paquetes se dirigen a una red diferente a la propia. Ésta máscara es igual que la IP
pero en binario está compuesta por una secuencia de unos seguida por una secuencia de
ceros, la secuencia de unos determina qué parte de una dirección IP es la dirección de red.
Dado que la máscara es una secuencia de unos seguida de ceros, ésta se suele representar
con un número que indica cuántos unos tiene (ya se sabe que al principio) y a ese número
se le suele llamar prefijo. Para que quede más claro, una máscara 255.255.255.0 tiene 32
bits de los cuales los primeros 24 son unos y los últimos 8 son ceros, por lo tanto el prefijo
es /24. En éste documento el término máscara significa lo mismo que prefijo.
Primero hay que repasar la base de la creación de subredes, por lo menos para entender por
qué el término máscara variable. Un esquema de direccionamiento es una forma de decir
cómo se va a repartir la capacidad de numeración de hosts que tiene cierta red,
básicamente consta de una dirección de red base, una máscara de red, una máscara de
subred y la enumeración de las subredes. Usualmente la máscara de red (la de la red
base) suele ser una dirección de clase, es decir, una que usa uno, dos o tres octetos (clase A,
B y C respectivamente). Para ilustrar la idea, un esquema de direccionamiento consistiría
en lo siguiente:
Dirección base y máscara: 192.168.11.0/24, ésta es la dirección que nos
proporcionan y de la cual sólo podemos variar arbitrariamente la máscara (alargarla
solamente) y los números en la parte de host (el último octeto).
Nueva máscara: /27, si agregamos 3 bits a la máscara original(24+3=27), tendremos
la capacidad de dividir el potencial de hosts (255) en 8 subredes (2^3) y en cada
subred podríamos tener hasta 32 host en potencia (2^5), pero no podemos usar el
host 0 ni el hosts 31 ya que éstas direcciones especiales corresponden a la dirección
de red y de broadcast para cada subred (parte de host toda en 0 y toda en 1
respectivamente).
Enumeración de las subredes: la primera subred va a ser numerada como
192.168.11.32/27, la primera dirección asignable sería 192.168.11.33 (la cero no
se puede usar) y la última sería 192.168.11.62 (hay que recordar que la 63 es la
dirección de broadcast -parte de host toda en unos- para ésta subred y no se puede
usar para un host ni un enrutador). Si quisieramos enumerar más subredes con la
misma máscara, además de la primera (con ésta máscara tenemos 8 subredes en
total, 27-24=3 bits de subred y 2^3=8), la numeración de las subredes aumentaría en
saltos de a 32 (2^5) y así tendríamos las otras subredes hasta llegar al límite. Es
decir, las siguientes subredes serían 192.168.11.64/27, 192.168.11.96/27,
192.168.11.128/27, 192.168.11.160/27, 192.168.11.192/27, 192.168.11.224/27 y
para cada una tendríamos una dirección de broadcast y un rango de direcciones
asignables a los hosts de cada subred. Note que cada dirección de subred es la
anterior más 32, eso sería si usamos máscara fija.
En éste esquema, todas las redes tienen la misma capacidad de numeración de hosts, es
decir, todas las subredes pueden numerar hasta 30 hosts (2^5=32 menos la dir. de red y de
broadcast que no se pueden asignar a ningún host) y ésta capacidad está dada por la
máscara /27 que agrega 3 bits para subred a la máscara original, alargandola y dejando 5
bits para numerar hosts. Ésta capacidad fija se nota en que la máscara de todas las
subredes es la misma, lo único que varía en cada subred es la dirección y sus parámetros
(dir. de red/broadcast y rango de direcciones asignables), eso la hace poco flexible y
desperdicia capacidad de numeración de la red original.
Usando máscara fija, los requerimientos se pueden presentar de dos formas: pidiendo una
cantidad de subredes o pidiendo una cantidad de hosts por subred. En el primer caso
determinar la longitud de la máscara es fácil y directo, dado que sólo debo agregar los bits
que se necesitan para cierta cantidad de subredes, por ejemplo, para 5 subredes necesito 3
bits, ya que con tres bits puedo numerar hasta 8 subredes (2^3). Por otro lado, si me piden
una cantidad de hosts no es posible determinar directamente la longitud de la máscara, debo
determinar la cantidad de bits de hosts necesaria y luego restarla a los bits de hosts que
tengo en la red base y esa diferencia es el aumento en la máscara de subred, por ejemplo, si
la máscara base es de 24 bits y me piden redes de por lo menos 20 hosts, para éste número
necesito 5 bits (2^5=32-2=30) y estos 5 bits se los quito a los 8 de host que tenía para hosts
en la máscara inicial, es decir 3 bits para subredes, por lo tanto la máscara que debería usar
para redes de por lo menos 20 hosts sería 24+3=27 bits.
Para ilustrar vamos a usar el mismo ejemplo anterior: la dirección base es 192.168.11.0/24,
tenemos el último octeto para asignar subredes y hosts y vamos a usar VLSM para hacerlo.
La primera diferencia grande es que en el anterior esquema si, por ejemplo, nos decían que
necesitaban redes de 5, 10 y 30 hosts, la única posibilidad era hacer redes de a 30 hosts y
esperar que el esquema soportara eso, en otras palabras, las redes de 5 hosts tenían una
capacidad ociosa de 25 hosts y las de 10 tenían 20 hosts que probablemente no se usarían
nunca.
En VLSM, podemos elegir máscaras según las necesidades individuales de cada subred, es
decir para 5 hosts necesito 3 bits, por lo tanto sólo dejo tres bits para hosts y el resto para
numerar la subred (24 de la máscara original más 5 de la subred = 29), para la red de 10
hosts necesito 4 bits, osea que puedo usar para la subred una máscara de 28 bits y para la
de 30 hosts necesito 5 bits (2^5=32, puedo usar el resto para la subred) uso una máscara de
27 bits. Ya establecidas las máscaras según la capacidad, puedo asignar las direcciones
concretas, preferiblemente tomando las subredes más grandes de los números más
bajos.
En nuestro caso empezaré con la red más grande que es de 30 hosts y por lo tanto necesita
una máscara de 27 bits. Si no tengo direcciones asignadas todavía, asumo un esquema de
dirección fijo y numero ésta primera red como si fuera la número uno (sin usar la cero).
Esto es una preferencia personal, lo verdaderamente importante es que ninguna dirección
de host/subred combinada con su máscara esté dentro del rango de numeración de otra
subred. Los enrutadores Cisco detectan este tipo de conflicto y no dejan asignar direcciones
de ésta manera. Otra forma menos compleja de comenzar sería empezar con la subred cero
y eso es perfectamente válido si se usa VLSM, en éste caso la dirección de la primera
subred sería 192.168.11.0/27 (la única diferencia con la red base es la máscara más larga) y
ocuparía el rango de .1 hasta .30 en hosts válidos y .31 sería la dir. de broadcast.
En mi estilo (dejando una red del tamaño de la más grande sin asignar al principio del
rango), la dirección específica de la primera subred sería 192.168.11.32/27, igual que el
ejercicio con máscara fija, pero en éste caso, el resto de la capacidad de la red original sigue
disponible con máscaras de otros tamaños como veremos. Con ésta subred asignada,
quedan en uso los números de .33 hasta .63 (dir. de broadcast) y por lo tanto la
siguiente dirección debe estar antes o después de ese rango.
Nos queda la última subred de 5 hosts. Para numerar 5 hosts elegimos una máscara de 29
bits, dado que sólo tenemos que dejar 3 bits para hosts y podemos usar los primeros cinco
para subred (24+5=29). Sabemos que la siguiente subred debería estar fuera de los números
ya asignados y la última subred terminaba en .79, por lo tanto la siguiente sería .80. La
máscara nos dice qué direcciones quedan reservadas, 2^3 hosts potenciales, por lo tanto las
direcciones asignables son .81 hasta .86 con dirección de broadcast .87, todas las
direcciones con máscara /29 y aún nos quedan direcciones para asignar (un rango
escondido al principio desde .0 hasta .31 y desde la .88 que sería la siguiente subred hasta el
máximo del rango .255).
Como se observa, las combinaciones de direcciones de red y máscaras elegidas nunca son
iguales, es decir, aunque las últimas dos direcciones de subred coinciden en sus primeros
dos bits, la máscara las distingue unívocamente. Otra cosa notable, es que las direcciones
de red siguen teniendo, en sus bits de hosts, sólo ceros. Ésto último es muy importante,
dado que si se asigna una red grande después de una pequeña, puede ser necesario dejar un
espacio sin asignar para cumplir el requisito de tener los bits de host en cero. Por ejemplo,
si se deseara asignar una subred de 25 hosts después de la última, necesitaríamos una
máscara de /27 (2^5-2=30 hosts) y la siguiente dirección de red después de la .88/29 con
ésta máscara (/27) sería .96/27 que tiene sus últimos 5 bits en cero. Notese que entre .88 y
96 queda un espacio disponible, pero que sólo se puede usar para redes de tamaño pequeño,
por ejemplo una red de 6 hosts (2^3-2) o dos redes de 2 hosts (2^2-2).
En el esquema de ejemplo, si quisieramos asignar una nueva subred, primero
estableceríamos cuántos hosts debe numerar, seleccionamos la máscara adecuada para la
cantidad de hosts y buscamos un rango de direcciones que no esté asignado, bien sea antes
de la primera gran subred (192.168.11.32/27) o después de la última pequeña subred
(192.168.11.80/29).
Este tema no es fácil y lo único que ayuda es practicarlo. Mi recomendación es que usen el
siguiente método o algoritmo:
Reto
En el esquema del ejercicio, se necesita una red adicional de 25 hosts y otra de 2 hosts.
Solución
Enlaces:
Hola Miguel,
Hasta pronto.
Hola Ghost,
Solo tengo una pequena duda, no me queda muy claro el concepto de “actualización
de enrutamiento”, recien estoy ingresando en este mundo del networking y te
agradeceria mucho si puedes explicarlo un poco
Saludos,
Rolando
Hola Rolando,