martes, 17 de mayo de 2011

Conceptos de direccionamiento IP de subredes ("subnetting", IV entrega).

Cuarta entrega de Las Selecciones de la guía, y como ven  es mas larga que un dolor :-). El subnetting es un tópico no muy sencillo de entender a la primera (así mismo es uno de los mas importantes de todo IP), pero esta parte tiene una continuación práctica que vuelve sobre el tema de manera mucho mas extensa (saldrá en algún momento luego de esta). Los correspondientes originales de esta parte inician aquí, y concluyen aquí. No hay mucho mas que decir, los que están suscritos vía RSS recuerden que estas entradas no están saliendo (hay un límite con el tamaño de los feeds que obviamente no respetan estas entradotas), de todas maneras pueden actualizarse por cualquier otra vía. Dicho esto aquí les va, un saludo de mitad de semana y provecho

El esquema de direccionamiento IP original ("classful") divide conceptualmente una interconexión de redes de gran tamaño en una jerarquía simple de dos niveles: muchas redes de diferentes tamaños, cada uno de los cuales contiene un número de hosts. El sistema funciona bien para organizaciones más pequeñas que pueden conectar todas sus máquinas en una sola red. Sin embargo, carece de flexibilidad para las grandes organizaciones que a menudo tienen muchas subredes. Para satisfacer mejor los requisitos administrativos y técnicos de organizaciones más grandes, el sistema de direccionamiento IP "classful" se ha mejorado a través de una técnica conocida como direccionamiento de subredes, o más simplemente, subnetting.
En esta sección se describen los conceptos y técnicas generales asociados con el direccionamiento de subredes IP. Comienzo con una visión general del subnetting, incluyendo un análisis de la motivación para el sistema y sus ventajas. Discutiremos cómo el método tradicional de "dos niveles" para dividir las direcciones IP se convierte en "tres niveles" en el subnetting. Hablo acerca de las máscaras de subred y la forma en que se utilizan en los cálculos de direccionamiento y enrutamiento. Discutiremos las máscaras de subred por defecto usadas para representar las clase A, B y C del sistema "classful" en un ambiente de subnetting, y luego cómo se utilizan las máscaras de subred personalizadas para las clases A, B y C. Finalmente, discutiremos los identificadores de subred y los conceptos generales detrás de la determinación las direcciones de subred y de host en un entorno de subnetting. Proporciono las tablas resumen para redes subneteadas de clase A, B y C. Concluyo con una breve discusión del subnetting de longitud variable (VLSM Variable Length Subnet Masking), una mejora del subnetting tradicional que incrementa su flexibilidad.

Nota: Proporciono una gran cobertura de las subredes, porque su comprensión es una parte importante del aprendizaje acerca de cómo trabajan las direcciones IP, y por lo tanto, cómo funciona TCP/IP. Sin embargo, tengo que enfatizar en algo que muy pocos mencionan: la técnica hoy se considera sobre todo histórica. La razón es que la división en subredes se sigue basando en el esquema "classful", que ha sido sustituido el nuevo esquema "classless" en la Internet. El concepto de subredes y máscara de subredes ciertamente no ha desaparecido por completo, pero la idea de asignar un bloque de direcciones de Clase A, B o C en Internet y, a continuación dividirlo explícitamente en subredes ya no es relevante.

Información relacionada: Esta es la primera de dos secciones dedicadas a la división de direcciones IP en subredes. La segunda sección sigue a esta y describe el proceso de división en subredes paso a paso utilizando ejemplos. Si usted encuentra que después de leer esta sección de conceptos no entiende muy bien la división en subredes, trate de leer la sección basada en ejemplos y es posible que le ayude a entender todo. Por otro lado, si usted ya está algo familiarizado con las subredes, es posible que usted pueda saltarse los conceptos de esta sección e ir directo a los ejemplos paso a paso. Encontrará mucho más en esa sección en forma de "detalles sangrientos" sobre la máscara de subred, las direcciones de subred y los cálculos de las direcciones de hosts. Poner los detalles prácticos en esa sección nos permite concentrarnos en esta en los conceptos sin tener que empantanarnos en los numeros.

Antecedentes: La comprensión de las subredes requiere una cierta familiaridad con los números binarios y la forma en que son manipuladas. Esto incluye el concepto de usar operadores booleanos como AND para "enmascarar" dígitos binarios. Si la lectura de esta última oración hizo que exclamaras ¿eh? Te recomiendo revisar la sección de antecedentes sobre cálculos matemáticos antes de continuar.

Regresar al contenido
El direccionamiento IP se diseñó originalmente en torno al supuesto de una estricta jerarquía de dos niveles de interconexión de redes. El primer nivel fue la red, y el segundo nivel el host. Cada organización estuvo representada generalmente por un solo identificador de red que indicaba un bloque de clase A, B o C dedicado. Dentro de esa red tenían que poner todos los dispositivos que querían conectarse a la red IP pública.

La motivación para el subnetting.
No pasó mucho tiempo antes de que el esquema "classful" plan mostrara graves deficiencias, notadas sobre todo por las grandes organizaciones. La razón es que, si bien la división de una interconexión de redes grandes en redes que contienen hosts es conceptualmente simple, no siempre coincide adecuadamente con la estructura de cada una de las redes que abarca Internet. Una gran empresa con miles de ordenadores no los estructura como una gran red física. Tratar de asignar y administrar las direcciones IP para toda la red de una organización sin ningún tipo de estructura lógica interna es muy difícil.

Por desgracia, en el esquema de direccionamiento original "classful", no había una buena solución a este problema. La alternativa más comúnmente elegida en ese momento fue cambiar un solo bloque grande de direcciones como uno de Clase B, a un grupo de bloques de clase C. Sin embargo, esto causó problemas adicionales:
  • Ha contribuido a la explosión en el tamaño de las tablas de enrutamiento IP. 
  • Cada vez que se necesitaba más espacio de direcciones, el administrador tendría que solicitar un nuevo bloque de direcciones. 
  • Cualquier cambio en la estructura interna de la red de una empresa afectaba potencialmente dispositivos y sitios fuera de la organización. 
  • Llevar un seguimiento de todas las diferentes redes de clase C sería un dolor de cabeza en si mismo.


El desarrollo del direccionamiento de subredes (subnetting)
A fin de abordar este problema de manera adecuada, se debió hacer una "mejora" al esquema clásico de direccionamiento "classful". Este cambio se describe en el RFC 950, que define un nuevo procedimiento llamado direccionamiento de subredes o "subnetting". (Esta RFC se publicó allá por 1985, lo cual sorprende a algunas personas!)
La idea básica detrás del esquema de subredes es añadir un nivel jerárquico adicional en la forma en que las direcciones IP son interpretadas. El concepto de una red se mantiene sin cambios, pero en lugar de tener sólo "hosts" dentro de una red, una nueva jerarquía de dos niveles se crea: subredes y hosts. Cada segmento es una subred, y funciona de manera general a como lo hace una red completa en un esquema de direccionamiento tradicional "classful". De esta manera se crea una jerarquía de tres niveles: redes, que contienen subredes, cada una de las cuales contiene un número de hosts.
Así, en lugar de una organización que tiene que agrupar todos sus hosts en una red de forma no estructurada, puede organizar los hosts en subredes que reflejan la forma en que se estructuran las redes internas. Estas subredes encajan en el identificador de red asignado a la organización, al igual que lo hacían antes todos los hosts "desorganizados".

Ventajas del direccionamiento de subredes.
En esencia, el subnetting permite que cada organización tenga su propia "Internet dentro de la Internet". Así como la Internet real ve sólo redes y hosts, en una jerarquía de dos niveles, cada organización puede ahora también tener subredes y hosts dentro de su red. Este cambio ofrece numerosas ventajas sobre el viejo sistema:

  • Mas congruente con la estructura física de la red: Los hosts pueden ser agrupados en subredes que reflejan la forma en que se estructuran en la red física de la organización. 
  • Flexibilidad: El número de subredes y el número de hosts por subred se pueden personalizar para cada organización. Cada uno puede decidir sobre la estructura de su propia subred y cambiarla a conveniencia. 
  • Invisibilidad a la Internet pública: El subnetting se implementó de manera que la división interna de una red en subredes sólo es visible dentro de la organización, para el resto de Internet la organización sigue siendo sólo una gran "red" plana. Esto también significa que los cambios realizados en la estructura interna no son visibles fuera de la organización. 
  • No hay necesidad de solicitar nuevas direcciones IP: Las organizaciones no tienen que solicitar constantemente más direcciones IP, como lo harían si emplearan la solución de utilizar varios bloques pequeños de clase C. 
  • Si proliferación de entradas en la tabla de ruteo: Puesto que la estructura de la subred sólo existe dentro de la organización, los routers fuera de esa organización no saben nada al respecto. La organización mantiene una única (o tal vez unas pocas) entradas en la tabla de ruteo para todos sus dispositivos. Sólo los routers dentro de la organización tendrá que preocuparse del enrutamiento entre subredes.
El impacto del subnetting en el direccionamiento y el enrutamiento.
El cambio al subnetting afecta tanto al direccionamiento como al enrutamiento en redes IP. El direccionamiento cambia, por supuesto, porque en lugar de tener sólo un identificador de red y el ID de host, ahora también tienen un ID de subred de que ocuparse. El tamaño del identificador de subred puede variar para cada red, por lo que una pieza adicional de información es necesaria para complementar la dirección IP para indicar qué parte de la dirección es el identificador de subred y qué parte es el ID de host. Se trata de un número de 32 bits comúnmente denominado máscara de subred. La máscara se utiliza tanto para el cálculo de las direcciones de subred con las de host, y por los routers para determinar cómo mover los datagramas IP a través de una red subneteada.
El enrutamiento cambia debido al nivel de jerarquía adicional. En el enfoque regular "classful", cuando un router recibe un datagrama IP, sólo tiene que decidir si el destino está en la misma red o una red diferente. Bajo subredes, también debe mirar el ID de subred del destino y elegir una de tres opciones: misma subred, subred diferente en la misma red, o red diferente. Una vez más, esto se hace usando la máscara de subred. También son necesarios cambios en los protocolos de enrutamiento, como el Protocolo de información de enrutamiento (RIP Routing Information Protocol), para lidiar con las subredes y las máscaras de subred.

Concepto clave: El enfoque de subnetting agrega un nivel jerárquico adicional a cómo se interpretan las direcciones IP, dividiendo la red de una organización en subredes IP. Esto permite que cada organización estructure su espacio de direcciones para que coincida con sus redes físicas internas, en lugar de verse forzados a tratarlas como un bloque plano. Esto resuelve una serie de problemas con el esquema de direccionamiento original "classful", pero requiere cambios en la forma en que funcionan el direccionamiento y el enrutamiento, así como modificaciones a varios protocolos TCP/IP.

Es curioso, pero los principales inconvenientes de la división en subredes, en comparación con el esquema anterior, tienen más que ver con la comprensión de cómo funciona la división en subredes que con la tecnología en sí misma! Se requiere más esfuerzo para hacer frente al direccionamiento y enrutamiento en un entorno de subredes, y los administradores deben aprender a dividir su red en subredes y a asignar direcciones adecuadamente. Esto puede ser un poco confuso para alguien que es nuevo en subredes. Sin embargo, la tecnología de hoy esta muy bien establecida por lo que incluso esto no es un gran problema. Para el recién llegado, tener una guía de referencia como ésta sin duda ayuda. 

Regresar al contenido
La división más simple de direcciones IP es en una estructura que contiene dos elementos: el identificador de red y el ID de host. Al explicar este concepto, hice una analogía con la forma en que los números telefónicos de América del Norte tienen diez dígitos de largo, pero se dividen en un código de área de tres números y un número local de siete dígitos.
Como mencioné en el tema anterior, la división en subredes añade un nivel adicional a la jerarquía de las estructuras utilizadas en el direccionamiento IP. Para soportar esto, las direcciones IP deben ser divididas en tres elementos en lugar de dos. Esto se hace dejando el ID de red solo y dividiendo el ID de host en un identificador de subred y el ID de host. Estos bits de ID de subred se utilizan para identificar cada subred dentro de la red. Las máquinas son asignados a las subredes de la manera en que tenga más sentido para esa red.
Curiosamente, la analogía con los números de teléfono que utilizamos antes todavía es válida en el mundo de las subredes, y muestra como la división en subredes cambia la forma en que se interpretan las direcciones IP. Un número como (401) 555-7777 tiene un código de área ("401") y un número local ("555-7777") como ya he dicho antes. El número local, sin embargo, se puede dividir en dos partes: el intercambio ("555") y la extensión local ("7777"). Esto significa que los números de teléfono en realidad constan de tres componentes jerárquicos al igual que las direcciones IP en las subredes.
Por supuesto, el número de bits en una dirección IP está fijado en 32. Esto significa que en la división del ID de host en ID de subred y ID de host, se reduce el tamaño de la parte del ID de host de la dirección. En esencia, estamos "robando" bits del ID de host para utilizarlos en el ID de subred. Las redes de clase A tienen 24 bits para dividir entre el ID de subred y el ID de host: las redes de clase B tienen 16, y la clase C tiene 8.

Concepto clave: Una red "classful" se divide en subredes dividiendo su parte de ID de host, dejando algunos bits para el ID de host, mientras se asignan los otros a una nueva ID de subred. Estos bits se utilizan para identificar las subredes individuales dentro de la red, en la que están asignados los hosts.


Ahora, ¿recuerdas cuando nos fijamos en el tamaño de cada una de las principales clases, vimos que para cada clase, el número de redes y el número de hosts por red son una función de la cantidad de bits que utilizamos para cada uno. Lo mismo aplica a nuestra división de la ID de host. Dado que se trata de números binarios, el número de subredes es una potencia de dos del tamaño del campo de ID de subred. Del mismo modo, el número de hosts por subred es de dos a la potencia del tamaño del campo ID de host (menos dos para casos especiales excluidos).
Figura 65: Subneteando una red de clase B.
Clic para ampliar.
Comenzamos con la red de clase B 154.71.0.0, que tiene 16 bits en su bloque de ID de host, como se muestra en la parte superior. Luego subneteamos esta red dividiendo el ID de host en un ID de subred y el ID de host. En este caso, 5 bits se han asignado a la ID de subred, dejando 11 para el ID de host.

Analicemos un breve ejemplo para ver cómo funciona esto. Imagine que empezamos con la red de Clase B 154.71.0.0. 16 bits son el identificador de red (154.71) y 16 para el ID de host. En el direccionamiento regular "classful" no hay subredes (bueno, una "subred", es decir toda la red, pero no viene a cuento) y un total de 65.534 hosts. Para subnetear esta red, podemos decidir dividir los 16 bits como quiera que pensemos se adapte a las necesidades de nuestra red: 1 bit para el ID de subred y 15 para el ID de host, o 2 y 14, 3 y 13, y así sucesivamente. Casi cualquier combinación funcionará, siempre y cuando el total sea de 16, como 5 y 11, que ilustra la Figura 65. Mientras mas bits "robemos" del identificador de host para el ID de subred, mas subredes podremos tener, pero menos hosts para cada subred.
La decisión de cómo hacer esta elección es una de las consideraciones de diseño más importante en la creación de una subred IP. El número de subredes es generalmente determinado en base al número de subredes físicas de la red general de la organización. El número de hosts por subred no debe exceder el máximo permitido para la elección particular de subnetting que hagamos. Elegir la forma de dividir los bits del ID de host original en bits para ID de subred y bits para el ID de host es a veces llamado subnetting personalizado y se describe con más detalle más adelante en esta sección.

Regresar al contenido
El subnetting divide la red de una organización en una estructura de dos niveles de subredes y hosts. Esta división es puramente interna y oculta de todas las otras organizaciones en Internet. Una de las muchas ventajas de esto es que a cada organización le corresponde tomar su propia decisión acerca de cómo dividir el ID de host "classful" en ID de subred y ID de host.

En un entorno "classful" sin subredes, los routers utilizan el primer octeto de la dirección IP para determinar cual es la clase de la dirección, y de esto saben que bits corresponden al identificador de red y y cuales al identificador de host. Cuando usamos subredes, estos routers también necesitan saber cómo está dividido el ID de host en ID de subred y ID de host. Sin embargo, esta división puede ser arbitraria para cada red. Además, no hay manera de saber cuántos bits pertenecen a cada uno simplemente mirando la dirección IP.
En un ambiente de subnetting, la información adicional acerca de cuales bits son para el ID de subred y cuales para el ID de host debe ser comunicada a los dispositivos que interpretar las direcciones IP. Esta información se da en forma de un número binario de 32 bits llamado máscara de subred. El término "máscara" viene del concepto de matemáticas binaria llamado enmascaramiento de bits. Esta es una técnica donde un patrón especial de unos y ceros puede utilizarse en combinación con las funciones booleanas como AND y OR para activar o desactivar ciertos bits en un número. Explico el enmascaramiento de bits en la sección de antecedentes sobre los números binarios y las matemáticas.

Función de la máscara de subred.
Hay algo acerca de las máscaras de subred que parece ponerle los pelos de punta a las personas, especialmente si no están familiarizados con los números binarios. Sin embargo, la idea detrás de ellas es bastante sencilla. La máscara es un número de 32 bits, así como la dirección IP es un número de 32 bits. Cada uno de los 32 bits de la máscara de subred se corresponde con el bit de la dirección IP en el mismo lugar en el número. Los bits de la máscara en determinada red subneteada se eligen de modo que los bits utilizados para el identificador de red o el identificador de subred son unos, mientras que los bits utilizados para el ID de host son ceros.

Concepto clave: La máscara de subred es un número binario de 32 bits que acompaña a una dirección IP. Se crea para que tenga un bit con valor de uno por cada bit correspondiente de la dirección IP que sea parte de su ID de red o de su identificador de subred, y un cero para cada bit del ID de host de la dirección IP. De este modo la máscara le dice a los dispositivos TCP/IP que bits en la dirección IP pertenecen a la ID de red y el ID de subred, y cuales forman parte del ID de host.

¿Por qué molestarse haciendo esto con un número binario de 32 bits? La respuesta es la magia de la lógica booleana. Nosotros usamos la máscara de subred aplicando la función booleana AND entre esta y la dirección IP. Para cada uno de los 32 "pares de bits" en la dirección IP y la máscara de subred empleamos la función AND, cuya salida es 1 sólo si ambos bits son 1. Lo que esto significa en términos prácticos es lo siguiente, para cada uno de los 32 bits:

  • El Bit de subred es un Uno: En este caso, estamos aplicando un AND ya sea a un 0 o un 1 en la dirección IP con un 1. Si el bit de dirección IP es un 0, el resultado del ADN será 0, y si es un 1, el resultado será de 1. En otras palabras, donde el bit de subred es un 1, la dirección IP se conserva sin cambios. 
  • El Bit de subred es un cero: Aquí estamos aplicando un AND con un 0, por lo que el resultado es siempre 0, independientemente del valor de la dirección IP. Así, cuando el bit de subred es un 0, el bit de la dirección IP es siempre quedará en 0.
Así, cuando usamos la máscara de subred de una dirección IP, los bits en el identificador de red y el ID de subred se dejan intactos, mientras que los bits de ID de host se quitan. Al igual que una máscara que bloquea parte de su cara, pero muestra otras, la máscara de subred bloquea algunos de los bits de la dirección (los bits de host) y deja otros (los bits de red y los bits de subred). Un router que realiza esta función se queda con la dirección de la subred. Dado que ya que sabe de la clase de la red de qué parte es el identificador de red, también sabrá donde está la dirección de subred.

Concepto clave: Para utilizar una máscara de subred, un dispositivo realizará una operación booleana AND entre cada bit de la máscara de subred y cada bit correspondiente de una dirección IP. El número resultante de 32 bits sólo contiene el identificador de red y el ID de subred de la dirección, con el ID de host en cero.

Notación de máscara de subred.
Al igual que las direcciones IP, las máscaras de subred se utilizan siempre como un número binario de 32 bits por las computadoras. Y al igual que las direcciones IP, utilizarlas como números binarios de 32 bits es difícil para los seres humanos. Por lo tanto, generalmente se convierte a notación decimal con puntos para mayor comodidad, al igual que las direcciones IP.
Analicemos un ejemplo rápido para mostrar de que se trata todo esto. Supongamos que tenemos la red de clase B 154.71.0.0. Decidimos subnetearla usando 5 bits para el ID de subred y 11 bits para el ID de host. En este caso, la máscara de subred tendrá 16 "unos" en la parte de red (ya que es de clase B), seguidos por cinco "unos" para el ID de subred, y 11 ceros para el ID de host. Eso es "11111111 11111111 11111000 00000000" en binario, con los bits correspondientes a la ID de subred destacados. Convirtiéndolo a decimales, la máscara de subred sería 255.255.248.0. La figura 66 ilustra este proceso.
Figura 66: Determinación de la máscara de subred de una red subneteada.
Clic para ampliar.
La red de clase B de la figura 65 se muestra en la parte superior, con 5 bits asignados al ID de subred y 11 bits reservados para el ID de host. Para crear la máscara de subred, ponemos en "uno" cada bit del ID de red y subred, y "0" para cada bit de ID de host. Luego, podemos convertir esto en decimal.

Aplicación de la máscara de subred: un ejemplo.
Ahora, vamos a ver cómo la máscara de subred puede ser utilizada. Supongamos que tenemos un host en esta red con una IP de 154.71.150.42. Un router tiene que averiguar en qué subred se encuentra esta dirección. Esto se hace mediante la realización de la operación de enmascaramiento que se muestra en la Tabla 50 y la Figura 67.

Tabla 50: Determinación del ID de subred de una dirección IP a través del enmascarado de la subred.
Clic para ampliar.
Figura 67: Determinación del ID de subred de una dirección IP a traves del enmascarado de la subred.
Clic para ampliar
El enmascaramiento de subred implica la realización de un AND entre cada bit correspondiente en la máscara de subred y la dirección IP. La máscara de subred se puede comparar con una máscara física, cada 1 en ella deja "ver" el bit correspondiente de la dirección IP , mientras que cada cero bloquea el bit correspondiente de la dirección IP. De este modo, los bits de ID de host de la dirección se eliminan de modo que el dispositivo puede determinar la subred a la que pertenece la dirección.

Este resultado, 154.71.144.0, es la dirección IP de la subred a la que pertenece 154.71.150.42. No hay necesidad de distinguir explícitamente los bits de ID de red de los bits de ID subred, porque todavía estamos utilizando direccionamiento "classful". Cualquier router puede ver que, dado que los dos primeros bits de la dirección son "10", que esta es una dirección de clase B. Así que el identificador de red es de 16 bits, lo que significa que el ID de subred debe estar entre los bits del 17 al 21, contando desde la izquierda. Aquí, la subred es la parte resaltada anteriormente: "10010", o subred # 18. (Voy a explicar esto mejor en la sección de subredes personalizadas.)

Concepto clave: La máscara de subred se expresa a menudo en notación decimal con puntos por conveniencia, pero es utilizada por las computadoras como un número binario, y por lo general debe ser expresado en binario para entender cómo funciona la máscara y el número de bits de ID de subred que representa.

Justificación de la notación de máscara de subred.
Así, en términos prácticos, la máscara de subred en realidad sólo nos da una sola pieza de información: ¿dónde se dibuja la línea entre el ID de subred y el ID de host. Usted podría preguntarse, ¿por qué molestarse con un gran número binario de 32 bits en ese caso, en lugar de especificar el número de bits donde ocurre la división? En lugar de llevar la máscara de subred 255.255.248.0, ¿por qué no decir "divide la dirección IP después del bit # 21"? Incluso si los dispositivos desearan realizar una operación de enmascaramiento, no podrían simplemente crear la máscara según sea necesario?
Esa es una pregunta muy buena. Hay dos razones históricas: consideraciones de eficiencia y el soporte a las máscaras no contiguas.

Eficiencia
La expresión de la máscara de subred es eficiente, ya que permite que routers realicen una operación de enmascaramiento rápida para determinar la dirección de subred. Esto mejora el rendimiento, recuerda que las computadoras eran mucho más lentas cuando este sistema fue desarrollado. Hoy en día esto no es un problema en realidad.

Soporte para máscaras no contiguas
La RFC 950 especifica en realidad que, cuando dividimos los bits en el ID de host en el identificador de subred y el ID de host, es posible dividirlo en más de un solo lugar! En el ejemplo anterior, podríamos, en lugar de dividir los 16 bits en 5 bits para el ID de subred y 11 de ID de host, haberlo hecho como 2 bits para el ID de subred, y luego 4 bits para el ID de host, a continuación, tres bits más para el ID de subred y, finalmente, 7 bits más para el ID de host. Esto sería representado por el patrón de la máscara de subred "11000011 10000000" para los dieciséis bits (después de los dieciséis bits del identificador de red).

¿Por qué hacer esto en lugar de dividirlo en 5 bits para el ID de subred seguido de 11 bits para el ID de host como lo hicimos antes? "No tengo idea". De hecho, la mayoría de la gente no tenía ni idea tampoco. Tratar de subnetear de esta manera hace que la asignación de direcciones sea muy confusa. Por esta razón, si bien es técnicamente legal, el uso de máscaras de subred no contiguas, no se recomienda, y no se hace en la práctica.
Dado que las máscaras no contiguas no se utilizan, y las computadoras de hoy en día son más eficientes, el método alternativo de expresión de las máscaras con tan sólo un único número ahora es de uso frecuente. En lugar de especificar "la dirección IP 154.71.150.42 con máscara de subred de 255.255.248.0", sólo tenemos que decir "154.71.150.42/21". A veces esto se denomina notación con barras o notación CIDR. Es más comúnmente usado en entornos de subnetting de mascaras de longitud variable (VLSM Variable Length Subnet Masking), y como el segundo nombre lo indica, es también la norma para la especificación de direcciones sin clases en el esquema de direccionamiento CIDR (Classless Inter-Domain Routing). Sin embargo, también se ve a veces en discusiones regulares sobre subredes.

Nota: Dado que las máscaras extrañas nunca fueron utilizadas en realidad, algunos recursos dicen que la máscara de subred siempre debe de ser contigua, pero esto no es cierto, originalmente, era legal pero "desaconsejado". Más tarde, esta práctica llegó a ser tan inusual que muchos dispositivos de hardware no la soportan. Hoy en día, ahora que el direccionamiento sin clases y CIDR son estándares, es simplemente ilegal.

Si usted nunca ha subneteado antes, este tema puede dejarle la cabeza dando vueltas, a pesar de que vea un ejemplo. No se preocupe. Todo será más claro a medida que se familiarice más con la división en subredes, siguiendo el resto de esta sección. Recuerde también que he incluido toda una sección que muestra cómo subnetear paso a paso, incluyendo la determinación de la máscara de subred.

Regresar al contenido
El subnetting es el proceso de dividir una red de clase A, B o C en subredes, como hemos visto en los temas anteriores. A fin de comprender mejor cómo esta "división de un todo" se lleva a cabo, vale la pena comenzar con una mirada a cómo el "conjunto" de redes de clase A, B y C se representan en un entorno con subredes. Esto también es válido, porque hay situaciones en las que puede necesitar definir una red plana usando la notación de subnetting.

Esto puede parecer un concepto extraño - si no se va a molestar en crear subredes, ¿por qué debe tener en cuenta cómo se usan las viejas clases en entornos de subredes? La respuesta es que después de que el subnetting se hizo popular, la mayoría de los sistemas operativos, el hardware y el software de redes han sido diseñados bajo el supuesto de que se utiliza la división en subredes. Incluso si decide no subnetear, es posible que necesite expresar su red plana usando una máscara de subred.

En esencia, una red no subneteada de clase A, B o C puede ser considerada como el "caso por defecto" de una subred personalizada mas general. En concreto, es el caso en el que decidimos dividir el ID de host de modo que use cero bits para el ID de subred y todos los bits se utilizan para el ID de host. Me doy cuenta de que esto parece un poco un juego semántico. Sin embargo, este caso por defecto es la base de la división en subredes práctica que examinaremos en el siguiente tema.

Así como es siempre el caso, la máscara de subred para una red plana de clase A, B o C tiene un valor de uno para cada bit que se utiliza para identificar el ID de red o subred y ceros para los bits de ID de host. Por supuesto, acabamos de decir que no hay subredes, por lo que no hay bits de ID de subred! Así, la máscara de subred para este caso por defecto tiene 1s en la parte del ID de red y 0 para la parte del ID de host. Esto se conoce como la máscara de subred por defecto para cada una de las clases de direcciones IP.

Dado que las clases A, B y C se dividen en ID de red y ID de host en los límites del octeto, la máscara de subred siempre tienen todo unos o todo ceros en un octeto. Por lo tanto, las máscaras de subred por defecto siempre tendrá 255s o ceros cuando se expresa en notación decimal. La tabla 51 resume las máscaras de subred por defecto para cada una de las clases, y también se muestran gráficamente en la Figura 68.

Tabla 51: Máscara de subred por defecto para redes clase A, B y C.
Clic para ampliar.
Figura 68: Máscara de subred por defecto para redes clase A, B y C.
Clic para ampliar.
Así, las tres máscaras de subred por defecto son 255.0.0.0 para la Clase A, 255.255.0.0 para la clase B y 255.255.255.0 para la clase C. Tenga en cuenta que mientras que todas las máscaras de subred por defecto usar sólo "255" y "0", no todas las máscaras de subred con "255" y "0" son los valores predeterminados. Hay un pequeño número de subredes personalizadas que se dividen en los límites de octeto también. Estas son:
  • 255.255.0.0: Esta es la máscara por defecto para la clase B, pero también puede ser la máscara de subred personalizada para dividir una red de clase A con 8 bits para el ID de subred (dejando 16 bits para el identificador de host). 
  • 255.255.255.0: Esta es la máscara de subred por defecto para la clase C, pero puede ser una clase personalizada A con 16 bits para el ID de subred o una B, con 8 bits para el ID de subred.
Concepto clave: Cada una de las clases de direcciones IP unicast/broadcast A, B y C, tienen una máscara de subred por defecto definida que tiene un 1 para cada bit del ID de red de la clase, y un cero para cada bit del ID de host, y no tiene bits para el ID de subred. Las tres máscaras de subred por defecto son 255.0.0.0 para la Clase A, 255.255.0.0 para la clase B y 255.255.255.0 para la clase C.

Regresar al contenido
Es importante entender que son las máscaras de subred por defecto y cómo funcionan. Una máscara de subred por defecto no representa realmente subredes, dado que es el caso en el que estamos asignando cero bits para el ID de subred. Para hacer subnetting "real" debemos dedicar por lo menos uno de los bits del ID de host para el ID de subred, como se muestra en el ejemplo en el tema que introdujo las máscaras de subred.
Dado que tenemos la posibilidad de personalizar nuestra elección del punto de división entre el ID de subred y el ID de host para adaptarse a las necesidades de nuestra red, esto es a veces llamado subredes personalizadas. La máscara de subred que usamos al crear una subred personalizada, es llamada a su vez, máscara de subred personalizada. La máscara de subred personalizada es utilizada por el hardware de red para determinar la forma en que decidimos dividir el ID de subred del ID de host en nuestra red.

Decidiendo el número de bits de subred a utilizar.
La decisión clave en subredes personalizadas es la cantidad de bits a tomar de la parte del ID de host de la dirección IP para poner en el ID de subred. Recordemos que el número de subredes disponible en nuestra red es un potencia de dos del número de bits que utilizamos para expresar el ID de subred, y el número de posibles hosts por subred es también de dos a la potencia del número de bits que quedan en el ID de host (menos dos, lo que explicaré más adelante en este tema).
Por lo tanto, la decisión de la cantidad de bits a utilizar para cada uno de los ID de subred y el ID de host constituye un elemento fundamental de compromiso en el direccionamiento de subredes:
  • Cada bit tomado del ID de host para el ID de subred duplica el número de subredes que son posibles en la red. 
  • Cada bit tomado del ID de host para el ID de subred (aproximadamente) divide a la mitad el número de hosts que son posibles dentro de cada subred en la red.
Opciones de asignación de bits en subnetting.
Analicemos un par de ejemplos para ver cómo funciona esto. Imagine que empezamos con una red de clase B con la dirección de red 154.71.0.0. Dado que se trata de una clase B, hay 16 bits para el identificador de red (154.71) y 16 para el ID de host. En el caso por defecto no hay subredes (bueno, una "subred", es decir toda la red) y alberga 65.534 hosts en total. Para subnetear esta red, tenemos varias opciones:
  1. Podemos decidir usar un bit para el ID de subred y 15 para el ID de host. Si hacemos esto, entonces el número total de subredes es de 2^1 o 2: la primera subred es 0 y la segunda es 1. El número de hosts disponibles para cada subred es 2^15-2 o 32.766. 
  2. Podemos utilizar 2 bits para el ID de subred y 14 para el ID de host. En este caso, doblamos la cantidad de subredes: ahora tenemos 2^2 o cuatro subredes: 00, 01, 10 y 11 (subredes 0, 1, 2 y 3). Pero el número de hosts es ahora sólo 2^14-2 o 16.382. 
  3. Podemos utilizar cualquier otra combinación de bits que sumen 16, siempre que nos permita por lo menos dos hosts por subred: 4 y 12, 5 y 11, y así sucesivamente.
Decidiendo las asignaciones de bits para cumplir los requisitos de las subredes.
¿Cómo podemos decidir cómo dividir el ID de host "classful" en bits del ID de subred y de ID de host? Esta es la decisión de diseño clave en subredes. Tenemos que hacer esta elección sobre la base de los requisitos para la cantidad de subredes que hay en la red, y también teniendo en cuenta el número máximo de hosts que necesitan ser asignados a cada subred en la red. Por ejemplo, supongamos que tenemos un total de 10 subredes de nuestra red de clase B. Necesitamos 4 bits para representar esto, porque 2^4 es 16 mientras que el 2^3 solo son 8. Esto deja a 12 bits para el ID de host, con un máximo de 4.094 hosts por subred.
Ahora supongamos que en vez de eso tenemos 20 subredes. Si es así, 4 bits para el ID de subred no son suficientes: necesitamos 5 bits (2^5 = 32). Esto significa a su vez que ahora tenemos sólo 11 bits para el ID de host, con un máximo de 2.046 hosts por subred. El paso # 2 del ejemplo práctico de subredes discute estas decisiones con mas detalles.
Ahora, ¿qué pasa si tenemos 20 subredes y necesitamos además un máximo de 3.000 hosts por subred? Bueno, tenemos un problema. Necesitamos 5 bits para expresar 20 subredes diferentes. Sin embargo, necesitamos 12 bits para expresar el número 3000 para el ID de host. Eso es 17 bits, demasiados. ¿La solución? Podríamos ser capaces de mezclar nuestras redes físicas a fin de que sólo tuviéramos 16. Si no es así, necesitamos una segunda red de clase B.
También es importante entender de que en subredes regulares, la elección de la cantidad de bits a utilizar para el ID de subred se fija para toda la red. No se pueden tener subredes de diferentes tamaños, todos ellos deben ser los mismos. Así, el número de hosts en la subred mas grande determinará la cantidad de bits que necesita para el ID de host. Esto significa que en el caso anterior, si tenía una configuración extraña donde habían 19 subredes con sólo 100 hosts cada una, pero la red 20 tenía 3000 hosts, entonces tendría un problema. Si este fuera el caso, podría resolver el problema fácilmente dividiendo la subred de gran tamaño en dos o más subredes pequeñas. Una mejora para el subnetting llamada enmascaramiento de subredes de longitud variable (VLSM Variable Length Subnet Masking) fue creado en gran parte para eliminar esta restricción.

Nota: He incluido cuadros sinópticos que muestran la compensación del subnetting para cada una de las clases A, B y C, y la máscara de subred para cada una de las opciones.

Concepto clave: El compromiso fundamental en subnetting: cada adición de un bit para el ID de subred (por lo tanto, una sustracción de ese bit del ID de host) duplica el número de subredes, y divide por dos aproximadamente el número de hosts en cada subred. Cada sustracción de un bit de la ID de subred (adicionando un bit al ID de host) hace lo contrario.

Determinación de la máscara de subred personalizada.
Una vez que hemos determinado la cantidad de bits que se van a dedicar al ID de subred y al ID de host, podemos calcular la máscara de subred. Esto es bastante fácil de hacer, ahora que entendemos cómo funciona la división en subredes. Comenzamos con la máscara de subred por defecto en binario para la clase apropiada de nuestra red. A continuación, comenzamos con el cero más a la izquierda en la máscara y cambiamos tantos bits a 1 como queramos dedicar al ID de subred. Luego podemos expresar la máscara de subred en formato decimal. Figura 69 muestra como se puede determinar la máscara de subred personalizada para cada una de las opciones de subnetting de una red de clase C, tanto en binario como en decimal.
Figura 69: Máscara de subred personalizada para una red clase C.
Clic para ampliar.
Puesto que hay 8 bits de ID de host en una dirección de red Clase C, hay seis maneras diferentes en que la red puede ser dividida en subredes. Cada una corresponde a una máscara de subred personalizada, que se crea al cambiar los bits asignados al ID de subred de cero a uno.
Así que, para tomar el ejemplo de la figura, considere la red de clase C 200.13.94.0. Hay 8 bits en el ID de host original, lo que nos ofrece seis diferentes opciones de subredes (no podemos utilizar 7 u 8 bits para el ID de subred, por razones que discutiremos en breve.) Supongamos que utilizamos tres de estos para el ID de subred y cinco se dejan para el ID de host. Para determinar la máscara de subred personalizada, comenzamos con la máscara de subred de clase C por defecto:

11111111 11111111 11111111 00000000
A continuación, cambiamos los primeros tres ceros a uno, para obtener la máscara de subred personalizada:

11111111 11111111 11111111 11100000
En formato decimal con puntos, esto es 255.255.255.224.

Concepto clave: Una vez que se ha hecho la elección de como subnetear, la máscara de subred personalizada se determina simplemente, comenzando con la máscara de subred predeterminada de la red y cambiando cada bit del ID de subred de 0 a 1.

Restando dos de la cantidad de hosts por subred y (posiblemente) de subredes por red.
Hay una cuestión que más necesita ser explicada con respecto a la división en ID de subred y ID de host. Ya hemos visto cómo en el enfoque regular "classful", hay que restar 2 al número de hosts permitidos en cada red. Esto es necesario debido a que dos identificadores de host en cada subred tiene "un significado especial": el identificador de host todos en ceros - que significa "esta red", y el identificador de host de todos unos - que es un broadcast a "todos los hosts de la red". Estas restricciones también se aplican a cada subred en subredes, y es por lo que debemos seguir restando 2 del número de hosts por subred. (Esta es la razón por la que la división de los 8 bits de ID de host de una red de clase C en 7 bits para el ID de subred y 1 bit para el ID de host no solo es una tontería, sino que además carece de sentido: deja 2^1-2 = 0 hosts por subred. No es particularmente útil.)
Hay un problema similar con el ID de subred. Cuando la división en subredes se definió originalmente en el RFC 950, la norma excluye específicamente el uso subredes con todos a ceros y todos a unos. Esto se debió a la preocupación de que los enrutadores pudieran ser confundidos por estos casos. Una norma publicada mas adelante, la RFC 1812 (Requisitos para routers IPv 4) eliminó esta restricción en 1995. Por lo tanto, el hardware moderno ya no tiene ningún problema con subredes de todos ceros o todos unos, pero algún hardware muy viejo puede todavía tener problemas con esto.

Concepto clave: El número de hosts permitidos en cada subred es una potencia binaria del número de bits de ID de host que queda después de subnetear, menos dos. La reducción en dos se produce porque los ID de host de todos-ceros y todos-unos en cada subred se reservan para dos direcciones de "significado especial": para referirse a la misma subred y la dirección de broadcast local. En algunas implementaciones, el número de subredes también se reduce en dos porque originalmente no se les permitió utilizar las combinaciones de todos a ceros y todos a unos.

Por esta razón, a veces verá discusiones sobre subredes que excluyen estos casos. Cuando se hace esto, ud pierde dos subredes potenciales: las subredes de todos en ceros y la de todos en unos. Si usted hace esto, entonces la elección de un solo bit para el ID de subred ya no es válido, ya que da como resultado 2^1-2 = 0 subredes. Usted debe elegir 2 bits si necesita dos subredes.

Nota: En esta guía asumimos que tratamos con hardware moderno y no excluimos las subredes de todos ceros y todos unos, pero trato de hacer mención explícita de este hecho cuando sea pertinente.

Regresar al contenido
La principal ventaja del enfoque tradicional "classful" sin subredes es su simplicidad. Aunque hemos visto que puede haber problemas con la forma de gestionar miles de dispositivos en una sola red de clase B, por ejemplo, hay poca complejidad en la forma de asignar direcciones en la red. Todos ellos están agrupados, por lo que se pueden usar cualquier combinación de bits dentro del ID de host (a excepción de todos en ceros y todos en unos, que son especiales).
Cuando subneteamos, sin embargo, creamos una estructura de dos niveles dentro del ID de host "classful", el ID de subred y el ID de host. Esto significa que debemos elegir las direcciones IP para los dispositivos con más cuidado. En teoría, estamos seleccionando subredes de modo que correspondan con nuestras redes físicas dentro de la organización, por lo que queremos asignar direcciones IP de manera consistente con nuestra estructura de red física.

Identificadores de subred.
Una vez que decidimos cuántas subredes vamos a tener, tenemos que identificar las subredes y determinar cuales van a ser sus direcciones. Comencemos por mirar el identificador de subred. Este es sólo el ID de subred de cualquiera de las subredes de nuestra red. Las subredes se numeran empezando por 0 y aumentando hasta llegar número máximo de subredes menos uno, que es una función de que tantos bits hay en el ID de subred.(Si excluimos las combinaciones de todos ceros y todos unos del ID de subred como se especifica en el RFC 950 entonces el primer identificador de subred es uno).
Por supuesto, es posible que no necesitemos todas las subredes que se pueden definir teóricamente. Por ejemplo, si tenemos 20 subredes, necesitamos 5 bits para el identificador de subred, lo que permite un máximo teórico de 32 subredes. Utilizaremos solo las subredes de 0 a 19; del 20 al 31 se reservan para uso futuro. Estas subredes pueden ser expresados ??en forma decimal (0, 1, 2 ... hasta 19) o en binario (00000, 00001, 00010 ... hasta 10011).

Direcciones de subredes.
Para cada subred también puede determinar la dirección de subred. Para ello partimos de la dirección IP para la red global, que como recuerdan tiene todos los bits en ceros en el ID "classful" de host (8 bits, 16 bits o 24 bits). A continuación, insertamos el identificador de subred para una subred particular en los bits de subred designados.
Como ejemplo, vamos a hacer referencia a la división en subredes de la red de clase B, 154.71.0.0, que se muestra en la Figura 66. Se utilizaron cinco bits para el ID de subred allí. Comenzamos con la siguiente dirección IP de red, con los bits del ID de subred destacados:

10011010 01000111 00000000 00000000
Para encontrar la dirección de, por ejemplo, la subred # 11, sustituiríamos "01011" para estos bits, dejando los bits de ID de host en cero:

10011010 01000111 01011000 00000000
A continuación, puede convertirla de binario a decimal, que resulta en la dirección de subred 154.71.88.0.

Concepto clave: El identificador de subred de la subred es el ID de subred. La dirección de una subred se determina mediante la sustitución del ID de subred en los bits de subred de la dirección general de la red.

Fórmulas de direcciones de subred.
Nótese cuando vemos direccionamiento de subredes que cuando sustituimos el identificadores de subred en secuencia, se hace inmediatamente visible un patrón. La primera dirección de subred siempre es la dirección de la red global, ya que el ID de subred es todo ceros. Entonces, la segunda dirección de subred en forma decimal se calcula sumando un múltiplo específico de dos a uno de los octetos. La tercera dirección se encuentra a continuación, mediante la adición de este mismo número a la segunda dirección, y así sucesivamente.
De hecho, me di cuenta de que el valor decimal de cada dirección de subred se puede expresar como una fórmula, basada en la clase de la red original y el número de bits que utilizados para el ID de subred. Por ejemplo, considere una red de clase B con la dirección general de "x.y.0.0" (los que son "x" y "y" no es relevante para nuestros propósitos). Ahora, digamos que estamos utilizando dos bits para el ID de subred. Tenemos cuatro direcciones de subred aquí:
  1. La dirección de la subred # 0 será la misma que la dirección de red: x.y.0.0. 
  2. La dirección de la subred # 1 se encuentra sustituyendo por "01" los dos primeros bits del tercer octeto. Esto produce una dirección de "x.y.01000000.0000000", o "x.y.64.0" en decimales simples. 
  3. La dirección de la subred # 2 se encuentra sustituyendo los bits de ID de subred por "10" , por lo que es "x.y.10000000.0000000", o "x.y.128.0" en decimales simples. 
  4. La dirección de la subred #3 será "x.y.192.0".
Así, la fórmula en este caso de la subred # N es "x.y.N*64.0". Si utilizamos cinco bits para una subred, la fórmula es "x.y..N*8.0", como vimos anteriormente, la dirección de subred para la subred # 11 en la red 154.71.0.0 es 154.71.88.0. He mostrado las fórmulas para todas las combinaciones de ID de subred y tamaño de ID de host en las tablas resumen de subredes. Estas fórmulas pueden parecer un poco confusas al principio, pero pueden ser un gran ahorro de tiempo una vez que se familiarice más con la división en subredes.

Direcciones de hosts dentro de cada subred.
Una vez que conocemos la dirección de subred para una subred particular, la asignación de direcciones IP es fácil. Simplemente asigne los valores de los bits de ID de host restantes. Por supuesto, nos saltamos el valor de todos ceros, por lo que el primer host de la subred tiene todos los bits a ceros para el ID de host a excepción del bit mas a la derecha que estaría a uno. Entonces el siguiente host tiene todos a ceros a excepción de un "10" al final (dos en decimal). Podemos hacer esto hasta el final a excepción de el último valor que serian todos a unos. Una vez más, a continuación, convertimos cada dirección IP de binario a decimal.
Algunos ejemplos ayudarán en definitiva a entender mucho mejor cómo se determinan estas direcciones. Esto nos obliga a hacer frente a un gran número de pequeños detalles y un montón de números binarios. Puede encontrar exactamente estos detalles en la sección práctica sobre subredes.

Regresar al contenido
Dado que sólo hay unas cuantas opciones para subnetear cada red de clase A, Clase B y clase C, he listado las opciones para cada clase en tres tablas resumen a continuación: La tabla 52, la tabla 53 y la tabla 54. Estas tablas pueden ayudarle a decidir rápidamente el número de bits a utilizar para el ID de subred y el ID de host, y a continuación la máscara de subred correspondiente a su selección. También, resumen muy bien lo que hemos discutido en esta sección.
Cada fila de cada tabla muestra una opción posible de subred de dicha categoría, incluyendo el número de bits para el ID de subred y el ID de host, y el número de subredes y hosts en función de estos números. Luego mostramos la máscara de subred en formato binario y decimal, así como en la notación CIDR. Por último, incluyo la fórmula para el cálculo de las direcciones para cada subred en cada una de las opciones.

Notas sobre las tres tablas resumen de subnetting.

Algunas notas adicionales explicativas relacionadas a las tablas:
  • Los valores para el número de subredes por red presuponen que están permitidos las combinaciones de todos a ceros y todos a unos. Si no, usted debe restar 2 de estas cifras, lo que también significa que la opción de usar un solo bit para el ID de subred no es válida, y las fórmulas para las direcciones de subred ya no funcionan como se muestra. 
  • El número de hosts por subred excluye las combinaciones de todos ceros y todos unos, por lo que es de dos a la potencia del número de bits de ID de host, menos dos. 
  • La primera fila de cada tabla se muestra el caso "default" donde el número de bits de subred es cero, y por lo tanto la máscara de subred es la máscara de subred por defecto para la clase.
  • En la máscara de subred para todas las opciones, menos para la opción por defecto, he puesto de relieve la parte de la máscara de subred que corresponde al ID de subred, para mayor claridad. Esto se ha hecho para cada bit individual de la máscara binaria, y para cada octeto en la representación decimal con puntos de la máscara donde se encuentra parte de la ID de subred. 
  • Usted verá que no todas las divisiones tienen mucho sentido en el mundo real ... así que puede que se sorprenda. Por ejemplo, a primera vista parece una tontería pensar que querríamos asignar 14 bits al ID de subred de un ID de host de clase B y dejar 2 bits para el ID host - qué tipo de red real tiene 16.384 subredes con 2 hosts en cada una? Sin embargo, algunas compañías de servicios grandes en Internet pueden necesitar miles de pequeñas subredes al establecer conexiones entre los routers, o entre la red principal y sus clientes. 
  • Las fórmulas de dirección de subred en la última columna de cada tabla muestran la dirección para la subred # N (numeradas de cero al número máximo de subredes menos uno).Vean el final del paso # 4 en el paso a paso de la sección de subnetting para una explicación completa de cómo funcionan estas fórmulas.
Subredes IP Tablas Resumen de la clase A, clase B y las redes de clase C. 

Clase A
Tabla 52: Tabla resumen del subnetting para una red de clase A.
Clic para ampliar.

Clase B
Tabla 53: Tabla resumen del subnetting para una red de clase B.
Clic para ampliar.

Clase C
Tabla 54: Tabla resumen del subnetting para una red de clase C.
Clic para ampliar.

Regresar al contenido
El enmascaramiento de subredes convencional reemplaza el esquema de direccionamiento IP de dos niveles por un método de tres niveles más flexible. Dado que permite a los administradores de red asignar direcciones IP a las máquinas basados en la forma en que están conectadas las redes físicas, el subnetting es un gran avance en el mantenimiento de redes IP grandes. Tiene sus propias debilidades, sin embargo, y aún tiene margen de mejora. La principal debilidad de la división en subredes convencional es, de hecho, que el ID de subred representa sólo un nivel jerárquico más en la forma en que se interpretan de direcciones IP y se utilizan para el enrutamiento.

El problema con un solo nivel de subredes.
Puede parecer "codiciosos" mirar las subredes y decir "¿que?, ¿sólo un nivel adicional"? Sin embargo, en grandes redes, la necesidad de dividir nuestra red en un solo nivel de subredes no representa el mejor uso de nuestro bloque de direcciones IP. Por otra parte, ya hemos visto que dado que el ID de subred tiene la misma longitud en toda la red, podemos tener problemas si tenemos subredes con números muy diferentes de hosts de ellas - el ID de subred debe ser elegido sobre la base de la subred que tenga el mayor número de hosts en ella, aunque la mayoría de las subredes tengan muchos menos. Esto es ineficiente incluso en pequeñas redes, y puede resultar en la necesidad de utilizar bloques adicionales, malgastando muchas de las direcciones de cada bloque.

Por ejemplo, considere una empresa relativamente pequeña con una red de clase C, 201.45.222.0/24. Tienen seis subredes en la red. Las primeros cuatro subredes (S1, S2, S3 y S4) son relativamente pequeñas, con sólo 10 hosts cada una. Sin embargo, una de ellas (S5) está en su planta de producción y cuenta con 50 hosts, y la última (S6) corresponde a su grupo de desarrollo e ingeniería, que cuenta con 100 hosts.
El número total de hosts necesarios es, pues, 196. Sin subredes, tenemso suficientes hosts en nuestra red de clase C para manejarlos todos. Sin embargo, cuando tratamos de subnetear, tenemos un gran problema. Con el fin de tener seis subredes necesitamos usar 3 bits para el ID de subred. Esto deja sólo 5 bits para el ID de host, lo que significa que cada subred tendrá una capacidad idéntica, de 30 hosts, como se muestra en la Figura 70. Esto es suficiente para las subredes más pequeñas, pero no para que las más grandes. La única solución con subredes convencionales, que no sea revolver las subredes físicas, es conseguir otro bloque de clase C para las dos subredes grandes y usar el original para las cuatro pequeñas. Pero esto es caro, y significa perder cientos de direcciones IP!
Red Clase C (/24) (254 Hosts)
Figura 70: Red Clase C(/24) dividida en 8 subredes convencionales.
Clic para ampliar.
Con subredes tradicionales, todas las subredes deben ser del mismo tamaño, lo que crea problemas cuando hay subredes que son mucho más grandes que otras. Contraste con la figura 71.

La solución: enmascaramiento de subredes de longitud variable.
La solución a esta situación es una mejora al esquema básico de direccionamiento de subredes llamado enmascaramiento de subredes de longitud variable (VLSM). VLSM parece complicado al principio, pero es fácil de comprender si se entiende la división de subredes básica. La idea es que subneteamos la red, y luego subneteamos las subredes de la manera que originalmente subneteamos la red. De hecho, usted puede hacer esto varias veces, la creación de subredes de subredes de subredes, tantas veces como sea necesario (según la cantidad de bits que tenga en el ID de host de su bloque de direcciones). Se puede optar por aplicar esta división de varios niveles a sólo algunas de las subredes, lo que le permite dividir de forma selectiva el "pastel de direcciones IP" para que algunos de los cortes sean más grandes que otros. Esto significa que nuestra empresa ejemplo podría crear seis subredes para que coincidan con las necesidades de sus redes, como se muestra en la Figura 71.
Red Clase C(/24) (254 hosts)
Figura 71: Red Clase C (/24) dividida utilizando VLSM.
Clic para ampliar.
Usando VLSM, una organización puede dividir su red IP múltiples veces, para crear subredes que cumplan mejor los requisitos de tamaño de sus redes físicas. Contraste con la figura 70.

Concepto clave: El enmascaramiento de subredes de longitud variable (VLSM) es una técnica donde el subnetting es ejecutado múltiples y repetidas veces, para permitir que una red se divida en una jerarquía de subredes que varían en tamaño. Esto permite a una organización adecuar mucho mejor el tamaño de sus subredes a las necesidades de sus redes.

Un ejemplo: Subnetting de niveles múltiples usando VLSM.
El subnetting VLSM se realiza del mismo modo que la división en subredes regular, es sólo más compleja debido a los niveles extra de jerarquía. Usted hace una división inicial de la red en subredes grandes, y luego la divide en una o varias de subredes como sea necesario. Agrega bits a la máscara de subred para cada una de las "sub-subredes" y "sub-sub-subredes" para reflejar su menor tamaño. En VLSM, la notación con barras del direccionamiento "classless" es de uso general en lugar de las máscaras de subred binarias - VLSM es muy parecido a CIDR en cómo funciona, así que eso es lo que voy a utilizar.

Nota: Antes de proceder al ejemplo de VLSM que sigue, una sugerencia: si usted no se siente cómodo con cómo funciona la división en subredes básica, es probable que quiera leer primero la sección sobre práctica de subredes. Confíe en mi. 

Tomemos el ejemplo anterior de nuevo y ver cómo podemos hacer que todo encaje con VLSM. Empezamos con nuestra red de clase C, 201.45.222.0/24. A continuación, hagamos tres subnettings de la siguiente manera (ver Figura 72 para una ilustración del proceso):
  1. En primer lugar, hacemos una división en subredes inicial utilizando un bit para el ID de subred, dejándonos 7 bits para el ID de host. Esto nos da dos subredes: 201.45.222.0/25 y 201.45.222.128/25. Cada uno de estas puede tener un máximo de 126 hosts. Dejamos reservada la primera de ellas para la subred S6 y sus 100 hosts. 
  2. Tomamos la segunda subred, 201.45.222.128/25, y subneteamos nuevamente en dos sub-subredes. Hacemos esto mediante la adopción de bit de los 7 bits restantes en el ID de host. Esto nos da las sub-subredes 201.45.222.128/26 y 201.45.222.192/26, cada una de ellas puede tener 62 hosts. Dejamos reservada la primera de ellas para la subred S5 y sus 50 hosts. 
  3. Tomamos la segunda subred, 201.45.222.192/26, y subneteamos nuevamente en cuatro sub-sub-subredes. Tomamos dos bits de los 6 que quedan en el identificador de host. Esto nos da cuatro sub-sub-subredes con un máximo de 14 hosts cada una. Estas se utilizarán para S1, S2, S3 y S4. 
Figura 72: Ejemplo de Enmascaramiento de subredes de longitud variable (VLSM)
Clic para ampliar.
 
Este diagrama ilustra el ejemplo descrito en el texto, de una red de clase C (/ 24) dividida usando tres niveles jerárquicos. En primer lugar, dividida en dos subredes, una subred se divide en dos sub-subredes, y una sub-subred se divide en cuatro sub-sub-subredes. Las seis subredes resultantes se muestran con los bordes en negro, y tienen una capacidad máxima de 126, 62, 14, 14, 14 y 14 hosts.

Bueno, elegí los números en este ejemplo para que funcionen las cosas a la perfección, pero les da una idea. VLSM mejora enormemente la flexibilidad y la eficiencia de las subredes. Con el fin de utilizarlo, deben emplearse routers que soporten protocolos de enrutamiento con capacidades VLSM. VLSM también requiere más atención en cómo se construyen las tablas de enrutamiento para asegurar que no hay ninguna ambigüedad en cómo interpretar una dirección en la red.
Como he dicho antes, VLSM es similar en concepto a la forma en que se hace el direccionamiento y enrutamiento "classless" (CIDR). La diferencia entre VLSM y CIDR es sobre de enfoques. VLSM lidia con subredes de una red única en una organización privada. CIDR lleva el concepto que acabamos de ver en VLSM a Internet como un todo, cambiando la forma en que las redes organizacionales son asignadas reemplazando la jerarquía "classful" de un nivel único por una jerarquía de múltiples capas.
Regresar al contenido