Mรกscara de subred &
Subnetting
Antes de Imprimir este documento considere si es necesario
Ayudemos al Ambiente !!!!
.
Universidad San Carlos de Guatemala
Danilo Escobar
Máscara de subred Máscara de subred El primer esquema de direccionamiento propuesto por el protocolo de internet dividía todas las direcciones IP en dos partes claramente establecidas, una indicando la dirección de la red a la que esta pertenecía (Network ID) y la otra indicando la parte que podía utilizarse para asignar una dirección individual a un dispositivo específico (Host ID), siendo sus respectivos límites establecidos por las antiguas clases de direcciones IP (A, B, C, D, E) las cuales organizaban las mismas dentro de varios rangos. Esta primera aproximación no se ajustaba a la estructura utilizada dentro de las organizaciones, por lo que estas requerían usualmente de varias redes, sin importar cuántos dispositivos tuvieran que colocar dentro de cada una de ellas, para poder proveer de conectividad a los grupos dispares existentes.
Para poder identificar estas nuevas subredes fue necesario introducir un nuevo trozo de información en forma de una máscara de bits llamada máscara de subred, momento en el cual las máscaras por defecto fueron asignadas a las clases de direcciones ya existentes. La máscara de subred es una combinación de 32 bits (en IPv4) formada por una serie de unos y ceros continuos (en toda implementación moderna) y que indican, respectivamente, que parte de una dirección IP será utilizada para identificar la red/subred y cuál será la empleada para identificar de manera individual a un dispositivo.
Agregado al costo económico, existía también la posibilidad del completo agotamiento del esquema de direcciones, por lo que a la espera de una solución a largo plazo, era necesario crear una manera de hacer un mejor uso de las mismas. Uno de los ajustes realizados fue la introducción de las subredes, las cuales permitían a las organizaciones conectadas a internet tomar una red asignada y dividirla en redes más pequeñas para acomodar mejor las direcciones adquiridas.
Operación AND entre una dirección IP y una máscara de subred.
02
Máscara de subred Es a través de la combinación de la dirección IP y la máscara de subred (empleando varias operaciones matemáticas) que un host puede llegar a conocer la red/subred a la que este pertenece así como la dirección de broadcast de la misma, sabiendo por consiguiente, si una transmisión está destinada a un dispositivo dentro de la misma red o si va dirigida a una red externa, utilizando en este último caso la ayuda de su puerta de enlace predeterminada.
VLSM y CIDR Si bien la introducción de las subredes constituyó un gran avance para las organizaciones, estas se encontraban todavía limitadas debido al hecho de que cada nuevo subconjunto de direcciones era de un tamaño fijo y no podía ser ajustado acorde a un número de dispositivos.
límites de las antiguas clases de direcciones, dando la posibilidad de poder asignar cualquier máscara a cualquier dirección, aunque estas siguieron utilizándose como referencia debido a su familiaridad. Al poder modificar la longitud de las máscaras de subred a conveniencia, se hizo posible no solamente la división de una red en varias subredes sino también agregar varias redes a una sola red mucho más grande referida como superred, lo que ayudó a reducir la cantidad de rutas que los dispositivos debían conocer. A partir de la introducción de las tecnologías mencionadas, la combinación de una dirección IP junto con su máscara se hizo obligatoria ya que de manera separada estas no pueden transmitir ninguna información útil.
xas e t
Para proporcionar la flexibilidad deseada, se decidió que las máscaras de subred podrían establecerse de una manera arbitraria acuñando el término “máscara de subred de longitud variable” (Variable Length Subnet Mask (VLSM)). Los beneficios y funcionalidad aportados por la máscara de subred de longitud variable fueron adoptados un poco más adelante para servir no solamente a las organizaciones sino a todo el internet, por lo que en 1993 la Internet Engineering Task Force (IETF) introdujo el Classless Inter Domain Routing (CIDR) el cual permite romper los
r
an
ge
r
03
Máscara de subred Notaciones de la máscara de subred
Conversión decimal a binario
Es posible indicar una máscara de subred utilizando números decimales o a través de una notación alternativa usualmente referida como de bit, de barra diagonal, CIDR o como longitud del prefijo, misma que está compuesta por una barra oblicua seguida de la cantidad de bits con un valor de 1 presentes en la máscara.
El sistema decimal es un esquema numérico que posee 10 símbolos (0-9) donde la posición de los mismos es utilizada para representar diferentes potencias del número 10.
De esta manera se presentan nuevamente la dirección IP y la máscara de subred utilizadas previamente empleando ambas notaciones.
Por ejemplo al analizar el número 53 empleando el sistema decimal, encontramos lo siguiente:
53
192.168.1.1 255.255.255.0 192.168.1.1 /24 Notaciones de la máscara de subred.
5
3
Posición 1
Posición 0
(5 x 101 ) = (5 x 10) = 50
(3 x 100 ) = (3 x 1) = 3
El sistema binario, por otra parte, es también un sistema numérico posicional solo que en vez de contar con diez símbolos, cuenta solamente con dos: 0 y 1. Siendo las posiciones donde se coloquen los mismos, representaciones de las potencias del número 2.
04
Máscara de subred En el caso de las direcciones IPv4 en donde cada segmento está compuesto por 8 bits, se encuentran los siguientes valores: Número de posición Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal
7
2
7
128
6
2
6
64
5
2
5
32
4
3
4
2
16
8
2
3
2
2
2
4
1
2
1
2
0
20 1
De esta manera se hace más fácil visualizar que empleando 8 bits, podemos representar 256 cantidades (0-255) en el sistema decimal. Para convertir un número del sistema decimal al binario basta con tomar el valor a convertir y sustraer sucesivamente el valor más alto permitido por alguna potencia del número 2, colocando el valor de 1 en la posición correspondiente hasta que el resultado sea cero. Por ejemplo, para convertir el número decimal 210 a binario se comenzará por sustraer el valor más alto capaz de ser representado por una potencia del número 2, la que en este caso sera 128 (27). Nótese la imposibilidad de utilizar el valor 256 (28) debido a que este es superior a la cantidad que queremos convertir. Al realizar la resta llegamos al siguiente resultado: 210 - 128 = 82. Y marcamos con un 1 la posición respectiva.
Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (En progreso)
27
26
25
24
23
22
21
20
128 1
64
32
16
8
4
2
1
Continuando con la conversión, tomamos ahora el residuo de la operación anterior y se repite el mismo procedimiento. El valor más alto que puede sustraerse es 64 (26) y el resultado de la operación es: 82 - 64 = 18. Al marcar con un 1 la posición correspondiente se obtiene: Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (En progreso)
27
26
25
24
23
22
21
20
128 1
64 1
32
16
8
4
2
1
En este momento es posible apreciar la imposibilidad de utilizar el valor de la siguiente posición debido a que 32 (25) es mayor a la cantidad que queda por convertir, por lo que en lugar de colocar un 1 en dicha posición se colocará un 0 y se utilizará el siguiente valor más alto posible 16, el realizar la sustracción se obtiene el siguiente resultado: 18 - 16 = 2. Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (En progreso)
27
26
25
24
23
22
21
20
128 1
64 1
32 0
16 1
8
4
2
1
05
Máscara de subred De esta manera es posible completar la conversión utilizando el siguiente valor posible (2 - 2 = 0) y marcando con 0 las posiciones de aquellos valores que no pudieron ser utilizados. Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (Completa)
27
26
25
24
23
22
21
20
128 1
64 1
32 0
16 1
8 0
4 0
2 1
1 0
Es posible validar el resultado obtenido al convertirlo nuevamente al sistema decimal simplemente sumando los valores decimales de aquellas posiciones marcadas con 1.
Por ejemplo, es posible ver en la conversión anterior que para representar el valor 210 son necesarios 8 bits, hecho que es evidente al encontrar la posición que ocupa la potencia del número 2 más alta que dicho valor es capaz de contener y que no cambiará independientemente de si se completa o no la conversión. Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (Completa) Conversión (En progreso)
27
26
25
24
23
22
21
20
128 1 1
64 1
32 0
16 1
8 0
4 0
2 1
1 0
8 Bits Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (Completa)
2
7
128 1
2
6
64 1
2
5
32 0
4
2
16 1
8 0
2
3
2
2
4 0
2
1
2 1
2
0
1 0
De esta manera 128 + 64 + 16 + 2 = 210, el valor original, por lo que 21010 es equivalente a 110100102. Es necesario mencionar, que en muchos problemas prácticos no es necesario realizar la conversión completa ya que lo único que se requiere es averiguar la cantidad de bits necesaria para albergar un valor específico.
Siguiendo esa línea de razonamiento, si un problema solicitara averiguar la cantidad de bits necesarios para albergar el valor decimal del número 5 (Equivalente a 1012), se tendría que son necesarios tres bits. Potencia del número 2 acorde a su posición Valor Posicional Sist. Decimal Conversión (Completa) Conversión (En progreso)
27
26
25
24
23
22
21
20
128 0
64 0
32 0
16 0
8 0
4 1 1
2 0
1 1
3 Bits
06
Subnetting Subnetting Es el nombre que recibe la técnica empleada para dividir una sola red en varias subredes más pequeñas.
Subnetting tradicional
A manera de ejemplo se introduce la siguiente topología donde una organización ha comprado un bloque de direcciones pertenecientes a la antigua clase C: 215.10.5.0 /24. Con el objetivo de direccionar las redes que se muestran.
Para llevar a cabo la división de una red en subredes más pequeñas (de un mismo tamaño) es necesario seguir los siguientes pasos: 1. Definir los requerimientos del diseño y determinar la cantidad de redes o de dispositivos finales (hosts) necesarios, convertir a binario y descubrir la cantidad de bits que se necesitan para satisfacer dichos requerimientos. 2. Reservar los bits requeridos en la máscara de subred, determinar el corrimiento y hallar el incremento entre subredes contiguas. 3. Usar el incremento en el octeto apropiado y determinar los rangos de las nuevas subredes.
Topología a direccionar utilizando subnetting tradicional. En la topología presentada es posible apreciar que es necesario dividir el bloque de direcciones en 5 subredes más pequeñas.
07
Subnetting Siguiendo en orden los pasos explicados anteriormente: Paso 1: Para direccionar esta topología se requiere crear 5 subredes. Al convertir dicho requerimiento se encuentra que este necesita 3 bits para poder ser expresado en binario.
Conversión a binario del número cinco. Paso 2: Se procede a reservar los bits necesarios en la máscara de subred original en orden de poder acomodar el requerimiento. Dadas las características de la máscara de subred explicadas en las secciones anteriores, se tiene que esta debe ser continua y que los bits con un valor de 1 indican la parte de red/subred y aquellos bits con un valor de 0 muestran la parte reservada para las direcciones de host. Al ser utilizados para identificar la totalidad de direcciones que pueden utilizarse en una red, los bits con un valor de 1 en la máscara original son inamovibles, por lo que para la creación de las subredes necesarias se modificará aquella parte originalmente destinada a los hosts dando lugar a una nueva máscara de subred.
En este caso, al ser el requerimiento presentado en un número de subredes, se procede a agregar 3 bits con un valor de 1 a la máscara original de la manera que se muestra a continuación.
Reserva de los bits necesarios en la máscara original. Al agregar dichos bits se encuentra una nueva máscara de subred la que será /27 o 255.255.255.224. Adviértase que al aumentar la longitud de la máscara, tomando bits del último octeto, se ha introducido un corrimiento u offset (indicado por la banderilla en la figura anterior localizada en la quinta posición) por lo que el incremento entre subredes será de 32 (25) en vez de ser de 1 (20). Paso 3: Al haber encontrado el incremento (32) puede encontrarse los rangos de las subredes necesarias al sumar el mismo a la dirección original en el octeto apropiado. Nótese que estos rangos solo son válidos si las direcciones incluidas son utilizadas junto con la máscara de subred determinada en el paso anterior (/27).
08
Subnetting Así pues, para corroborar el ejemplo anterior, dada la máscara /27, será posible tener 23 = 8 subredes, con 25-2 = 30 hosts dentro de cada una de ellas.
Subredes necesarias para direccionar la topología solicitada. Para corroborar que se han cumplido con todos los requerimientos es posible utilizar las fórmulas mostradas a continuación, mismas que toman en cuenta la cantidad de bits con valor de 1 agregados y la cantidad de bits con un valor de 0 restantes en la nueva máscara de subred.
2 2
En orden de presentar otro ejemplo considérese una organización que ha comprado el bloque de direcciones 196.5.20.0/24 y le gustaría utilizar dichas direcciones para crear subredes de 50 hosts cada una. Siguiendo los mismos pasos que en el ejercicio anterior, se tiene: Paso 1: En este ejemplo se requiere que cada subred esté compuesta por 50 hosts. Al convertir dicho requerimiento a binario se obtiene que son necesarios 6 bits.
Conversión a binario del número cincuenta.
#Subredes
Número de 1´s agregados
#Host
Número de ceros que quedaron
-2
Fórmulas para averiguar la cantidad de subredes y las direcciones de host disponibles dentro de cada una de ellas dada una máscara de subred.
Paso 2: Se procede a reservar los bits necesarios en la máscara de subred original en orden de poder acomodar el requerimiento. En esta oportunidad, debe asegurarse que las subredes resultantes tengan al menos 50 hosts, razón por la cual se procederá a reservar la cantidad necesaria de bits con un valor de 0 en la máscara de subred y luego se utilizaran los bits restantes para crear las nuevas subredes asignándoles un valor de 1 tal y como se hizo en el ejemplo anterior.
09
Subnetting Reserva de los bits necesarios en la máscara original. Al agregar dichos bits se encuentra una nueva máscara de subred la que será /26 o 255.255.255.192. Esta vez el corrimiento u offset (indicado por la banderilla en la figura anterior) nos indica que el límite entre la parte de red/subred y aquella correspondiente a los dispositivos finales se encuentra en la sexta posición del cuarto octeto por lo que el incremento entre subredes será de 64 (26). Paso 3: Al haber encontrado el incremento (64) puede encontrarse los rangos de las subredes necesarias al sumar el mismo a la dirección original en el octeto apropiado, en este caso el cuarto.
Subredes que cumplen lo solicitado. Adviértase en este ejemplo que cada subred posee 62 direcciones utilizables (26 - 2 = 62), el número mínimo de direcciones que pueden tenerse para cumplir con lo solicitado considerando que estamos trabajando con potencias del número 2. Otra cuestión que es necesario destacar es que dada la máscara original y los bits agregados a la misma (2) solo es posible obtener 4 subredes (22 = 4) antes de pasar a utilizar un bloque diferente de direcciones fuera de aquellas adquiridas por la empresa del ejercicio, hecho que también puede apreciarse al sumar el incremento en el octeto respectivo en donde al llegar al valor máximo permitido de 255 se acarrea una unidad al tercer octeto mismo que estaba delimitado por la máscara original.
10
Subnetting Diferencia entre publicar y direccionar Es conveniente en este momento presentar la diferencia entre tomar un bloque de direcciones para asignar a cierta topología y publicar o anunciar dicho bloque al resto del mundo para que otras redes conozcan la manera en la que pueden alcanzar nuestra organización. Considerese por ejemplo el bloque de direcciones dado por la red 192.168.1.0 /24 como se muestra en la siguiente figura.
En la imagen presentada es posible apreciar que existe cierta cantidad finita de direcciones en el bloque 192.168.1.0 /24 antes de alcanzar el siguiente bloque que en este caso sería 192.168.2.0 /24. La manera en que se distribuyan esas direcciones queda enteramente a nuestro criterio. Es posible tener una sola red con 254 direcciones de host, en cuyo caso bastará con la máscara original, o también es factible modificar la misma y crear subredes más pequeñas, pero siempre estando limitados por la cantidad de direcciones presentes en un inicio. Por otro lado publicar o anunciar un bloque de direcciones es un proceso que es llevado de manera independiente pero que guarda cierta similitud con aquel que es utilizado para direccionar una red. Empleando nuevamente el bloque de direcciones dado por 192.168.1.0 /24, es factible crear 8 subredes con 30 direcciones utilizables dentro de cada una agregando 3 bits a la máscara original para utilizar una nueva máscara /27. Entonces, en orden de publicar ese rango de direcciones al mundo exterior es posible anunciar cada una de estas 8 subredes con máscara /27 de manera individual o hacerlo como un solo bloque empleando una máscara /24 ya que, como puede apreciarse en la figura anterior, abarca el mismo rango de direcciones.
11
Subnetting Subnetting VLSM Si bien la introducción del subnetting tradicional significó un gran avance, todavía no era lo suficientemente flexible ni eficiente para satisfacer las necesidades de todas las organizaciones. Considerando de nuevo el primer ejemplo presentado en la sección de subnetting tradicional, es posible darse cuenta que todas las subredes poseían 30 direcciones útiles, independientemente de la necesidades individuales de cada una de ellas, siendo el caso más evidente aquellas redes necesarias para direccionar los enlaces punto a punto en donde solo se requerían dos direcciones por lo que 28 de estas eran desperdiciadas.
Esta situación fue solucionada en parte con la introducción de la máscara de red de longitud variable (Variable Length Subnet Mask (VLSM)) la cual permite modificar la longitud de la máscara de subred a conveniencia para dividir un bloque de direcciones en subredes de distintos tamaños. El subnetting VLSM puede realizarse siguiendo los mismos pasos que los vistos durante el subnetting tradicional, con la salvedad, que este método exige que los requerimientos individuales de cada subred sean ordenados y resueltos de mayor a menor en orden de evitar el desperdicio de direcciones. En caso esta indicación fuera ignorada y se asignara primero espacio a una subred pequeña seguido de una más grande, muchas direcciones nunca podrían ser utilizadas como se muestra en la siguiente figura:
12
Subnetting Con el objetivo de presentar un ejemplo de este tipo de subnetting se recurre a la topología presentada en el primer ejemplo, con el bloque de direcciones 192.168.1.0 /24 y con los requerimientos de direcciones utiles presentados acto seguido.
Para este ejemplo:
2. Reservar los bits requeridos en la máscara de subred, determinar el corrimiento y hallar el incremento entre subredes contiguas. En el caso del requerimiento de la primera subred en donde se necesitan 6 bits, se tiene lo siguiente:
A manera de realizar el esquema de direccionamiento necesario para esta topología se seguirán pasos muy similares a los empleados en la última sección: 1. Definir los requerimientos del diseño, considerando el crecimiento futuro de la red, y ordenarlos de mayor a menor para luego convertirlos a binario y descubrir la cantidad de bits que se necesitan para satisfacer dichos requerimientos.
Reserva de los bits necesarios en la máscara original. Donde se muestra una máscara /26 y un incremento entre redes contiguas de 64 en el último octeto.
13
Subnetting 3. Usar el incremento en el octeto apropiado y determinar la dirección de subred del siguiente bloque.
4. Volver a realizar el procedimiento indicado en los pasos 2 y 3 con cada una de las subredes necesarias.
Siguiendo nuevamente el proceso para las subredes 4 y 5 (ambas con el mismo requerimiento) se encuentra una máscara de subred /30 con un incremento de 4, (128 + 4 = 132) con lo que el esquema está ahora completo.
De esta manera para asignar un bloque de direcciones a la segunda subred, se toma nuevamente la máscara original y se realiza el mismo procedimiento.
Reserva de los bits necesarios en la máscara original. De esta nueva cuenta se utilizará una máscara /27 y un incremento de 32, mismo que se adicionará a la dirección de subred con la que se finalizó el paso anterior (64 + 32 = 96) y se aprovecha para llenar los datos pertenecientes a la tercera subred (96 + 32 = 128) debido a que ambas presentan el mismo requerimiento.
14
Subnetting Para finalizar esta sección se presentan las siguientes consideraciones importantes: En el momento de plantear un esquema de direccionamiento, especialmente al utilizar subnetting VLSM, es importante siempre tener en cuenta el futuro crecimiento de la red. Si el esquema propuesto es demasiado ajustado no podrá adaptarse ante el inexorable crecimiento de la red y deberá de ser reemplazado. Dependiendo de la situación podría esperarse un 50%, 100% o 150% de crecimiento en el futuro inmediato, por lo que habrá que ajustar los requerimientos que se presenten para que reflejen esta realidad (Ej.: Si se solicitan 60 direcciones utilizables, se creará un bloque que contenga 100 de las mismas para permitir a esa red cierto crecimiento).
Los métodos presentados anteriormente fueron incluidos en este trabajo debido a su sencillez y fácil comprensión, sin embargo, también presentan ciertas excepciones cuando los requerimientos se aproximan a las potencias del número 2, por ejemplo, si se solicitan 8 subredes y se emplea el método presentado se obtiene que se necesitan 4 bits, pero en la realidad solo se necesitan 3 (3 bits permiten representar el rango de valores decimales 0-7), de la misma manera si se solicitan subredes de 15 hosts se hallará, nuevamente gracias al mismo método, que se necesitan 4 bits, sin embargo esa cantidad solo provee 14 direcciones utilizables (24 - 2 = 14). Afortunadamente, estos escenarios son muy inusuales y pueden resolverse muy fácilmente sustrayendo una unidad cuando se quiera asegurar cierto número de subredes y adicionando la misma cuando se requiera cierto número de direcciones útiles. En el ejemplo anterior si solicitan 8 subredes se hará el cálculo para 7, y si solicitan 15 hosts entonces se realizará el cálculo para 16.
15
Diseño y edición: María Esther Pineda Carolina Villatoro
Descargo de Responsabilidad El autor y los colaboradores de este trabajo han hecho su mejor esfuerzo en la preparación del mismo para asegurar que su contenido sea lo más exacto posible, sin embargo, no se hacen responsables por el uso de la información en este documento así como de errores u omisiones que pudieran resultar en pérdida de cualquier tipo. La información está proporcionada “como está” para ser utilizada bajo “su propia cuenta y riesgo”.