lunes, 6 de junio de 2011

Subredes IP: Diseño práctico de subredes y ejemplo de determinación de direcciones. (V entrega)


Bueno, resultó que tenemos "lunes de redes", pero es coincidencia ya habíamos hablado de eso antes. Aquí tienen la quinta entrega de nuestra serie de Selecciones de la Guía y como habíamos dicho en la anterior entrega, este viene a ser una especie de adendum del tema de subnetting que iniciamos antes. Son implementaciones prácticas del diseño de subredes de modo que si no les quedo muy claro el asunto en el tema pasado aquí encontrarán en la práctica lo que ya habían visto en teoría antes. El original de esta inicia aquí y concluye aquí, es la referencia obligada. Otra cosa, les dejo esta herramienta, les va a servir como complemento de todo lo que verán abajo, aprendan a subnetear usando lápiz y papel, luego de que se lo hayan aprendido de memoria, pueden usarla a sabiendas de que en cualquier caso no les es imprescindible. Estas partes son mas o menos extensas (creo que les dije también el detalle con los feeds) mas adelante van adelgazando un poco (no mucho). Listo, esta es una muy buena forma de iniciar la semana que espero que sea mejor que la anterior porque esa estuvo bien cargada. No les demoro más, aquí les va y ahora si, provecho!



Contenido:
2.1.4.- Subredes IP: Diseño práctico de subredes y ejemplo de determinación de direcciones.
2.1.4.1- División en subredes IP Paso # 1: Análisis de requerimientos.
2.1.4.2- División de subredes IP Paso # 2: La decisión clave en el diseño: La división de los bits de host de la dirección IP.
2.1.4.3- División de subredes IP Paso # 3: Determinación de la máscara de subred personalizada.
2.1.4.4- División en subredes IP Paso # 4: Determinación de los identificadores y las direcciones de subred.
2.1.4.5- División en subredes IP Paso # 5: Determinación de las direcciones de host en cada subred.

Cuando los educadores le preguntan a los estudiantes lo que ellos consideran es el aspecto más confuso en el aprendizaje acerca de las redes, muchos dicen que es la división en subredes de las direcciones IP. Mientras que la división en subredes no es tan difícil conceptualmente, puede ser un poco complicada, en parte debido a las manipulaciones necesarias de números binarios. Mucha gente entiende las ideas detrás de las subredes, pero les resulta difícil seguir los pasos reales necesarios para subnetear una red.
Por esta razón, a pesar de que expliqué los conceptos detrás de las subredes en detalle en la sección anterior, creo que sería útil tener a otra sección que ofrezca un enfoque paso a paso de cómo realizar la división en subredes personalizadas. Esta sección divide el subnetting en cinco etapas relativamente sencillas, que cubren los requerimientos necesarios, en la toma de las decisiones de diseño relativas a la cantidad de bits a utilizar para el ID de subred y el ID de host, y luego la determinación de números importantes, como la máscara de subred, la dirección de subred y las direcciones de host.

Mi enfoque en esta sección es mostrar el "como" práctico de las subredes. Los temas aquí utilizan dos redes clase B y clase C de ejemplo para mostrarles cómo se hace la división en subredes, y soy muy explícito mostrando como se calcula todo. Esto significa que la sección es un poco "pesada de números". Además, trato de no duplicar los temas conceptuales tratados en la sección anterior, aun cuando se produzca un cierto grado de solapamiento. En general, si no están familiarizados en ningún grado con cómo funcionan las subredes, tendrán que leer antes esa sección. Me refiero a algunos temas en esa sección cuando viene al caso, sobre todo las tablas de resumen. Por cierto, aquí solo cubriremos el subnetting convencional, no el VLSM.
Esta sección le puede servir como un recordatorio útil o un resumen de las subredes para quien ya esté familiarizado con los conceptos básicos, y sólo quiere revisar los pasos realizados en subredes. Una vez más, tenga siempre en cuenta que la división en subredes se basa en el esquema tradicional de direccionamiento clásico "classful", y la Internet de hoy es "classless", lo que utiliza es CIDR.

Antecedentes: Si usted no está familiarizado con los números binarios, la conversión de binario a decimal y el enmascaramiento, y usted no siguió mi consejo en las secciones anteriores de refrescar estos conceptos usando las explicaciones previas sobre matemáticas computacionales, realmente debería hacerlo ahora.

Nota: Si en la lectura de esta sección le entran ganas de hacer las conversiones de binario a decimal u operaciones de matemática binaria, recuerde que la mayoría de las versiones de Windows (y muchos otros sistemas operativos) tienen un programa de calculadora que incorpora funciones científicas.

Cuando usted está construyendo o mejorando una red en su conjunto, el primer paso no es la compra del hardware, o la definición de los protocolos, o incluso el diseño. El primer paso es el análisis de los requerimientos, el proceso de determinar que es lo que necesita hacer la red. Sin esta base, corre el riesgo de implementar una red que perfectamente puede coincidir con su diseño, pero no satisface las necesidades de su organización. La misma regla se aplica exactamente a la división en subredes. Antes de examinar los detalles sangrientos de direcciones de host y máscaras de subred, debemos decidir la forma de subnetear la red. Para ello, debemos entender los requisitos de la red.

Requisitos clave del subnetting.
El análisis de los requerimientos de la red para subnetearla no es difícil, porque sólo tenemos que considerar unos pocos detalles. Dado que el análisis de los requisitos se hace generalmente haciendo preguntas, aquí tienes una lista de las preguntas más importantes en el análisis de los requisitos de las subredes:
  • ¿De qué clase es nuestro bloque de direcciones IP? 
  • ¿Cuántas subredes físicas existen en la red hasta ahora? (Un "subred física" generalmente se refiere a un dominio de broadcast en una LAN, un conjunto de hosts en una red física limitada por routers.) 
  • ¿Tenemos previsto añadir mas redes físicas en un futuro próximo?, y si es así, ¿cuántas? 
  • ¿Cuántos hosts tenemos en la mayor de nuestras subredes hoy? 
  • ¿Cuántos hosts esperamos tener en la subred mas grande en el futuro cercano?
La primera pregunta es importante porque todo en subredes se basa en dividir una red de Clase A, Clase B o de clase C, por lo que necesitamos saber con que estamos tratando. Si estamos en el proceso de diseño de una red desde cero y no tenemos un bloque de clase A, B o C, entonces determinaremos nuestras necesidades en función del tamaño aproximado de la organización. Después de eso, tenemos que determinar dos números clave: el número de subredes físicas que tenemos, y el número máximo de hosts por subred.

Evaluación de las necesidades futuras durante el análisis de requerimientos.
Tenemos que analizar los requisitos anteriores, no sólo para la red actual, sino también para un futuro próximo. Los valores actuales de estos dos números representan cómo la red debe ser diseñada en la actualidad. Sin embargo, diseñar sólo para el presente no es una buena idea.
Supongamos que tenemos hoy exactamente cuatro subredes en nuestra red. En teoría, podríamos utilizar sólo dos bits para el ID de subred, ya que 2^2 es 4. Sin embargo, si nuestra empresa está creciendo rápidamente, esta sería una mala elección. Cuando tengamos que añadir una quinta subred entonces tendríamos un problema!
Del mismo modo, tenga en cuenta el crecimiento en el número de hosts en cada subred. Si la subred más grande actual tiene 60 hosts, no querrá 6 bits para el ID de host, ya que esto lo limitará a 62 hosts (2^6). Ud puede dividir subredes grandes en otras más pequeñas, pero esto puede significar trabajo adicional innecesario.
Entonces, ¿qué es el "futuro cercano"? El término es necesariamente vago, porque depende de cuán lejos en el futuro de la organización querrá ud ver. Por otro lado, la planificación para el crecimiento de varios años puede tener sentido, si usted tiene suficientes direcciones IP para hacerlo. Así mismo, usted no desea planificar demasiado lejos, ya que los cambios en el corto plazo pueden hacer que tenga que rediseñar su red de todas maneras.

Concepto clave: Para tener éxito en el subnetting de una red, usted debe comenzar por entender cuáles serán los requisitos de la red. Los parámetros más importantes para determinar son la cantidad de subredes requeridas y el número máximo de hosts necesarios por subred. Los números deben basarse no sólo en las necesidades presentes, sino en las necesidades en el futuro próximo.

Después de completar nuestro breve análisis de los requisitos, debemos conocer los dos parámetros críticos que debemos tener claros con el fin de subnetear nuestra red: el número de subredes necesarias para la red, y el número máximo de hosts por subred. Con la manipulación de estas cifras en el diseño de nuestra red subneteada, nos enfrentaremos a la decisión clave en el diseño de subredes: cómo dividir los 8, 16 o 24 bits del ID de host del esquema tradicional "Classful" en el ID de subred y el ID de host.

Decidiendo cuantos bits vamos a utilizar para el ID de subred y el ID de host
Dicho de otra manera, tenemos que decidir la cantidad de bits que le "robaremos" al ID de host para utilizarlos en el ID de subred. Como ya he introducido en el tema de las máscaras de subred personalizadas, la disyuntiva fundamental en la elección de este número es la siguiente:
  • 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) divide (aproximadamente) a la mitad el número de hosts que son posibles dentro de cada subred en la red.
Hay seis formas posibles en que esta decisión puede ser tomada para una red de clase C, como se ilustra en la Figura 73.
Figura 73: Decisión del diseño de una subred de clase C
Clic para ampliar.
La relación entre los bits y el número de subredes y hosts es la siguiente:
  • El número de subredes permitidas en la red es de dos a la potencia del número de bits de ID de subred. 
  • El número de hosts permitidos por subred es de dos a la potencia del número de bits de ID de host, menos dos.
Restamos dos de la cantidad de hosts en cada subred para excluir los casos con "significados especiales" en que el identificador de host es todo ceros o todos unos. Como expliqué en el tema de subredes personalizadas, esta exclusión también fue originalmente aplicada al ID de subred, pero ya no se aplica a los nuevos sistemas.
Ahora, para elegir la cantidad de bits a utilizar para la subred podemos utilizar el método de prueba y error. Con esto quiero decir que podríamos tratar de calcular primero la cantidad de subredes y hosts resultantes cuando usamos un bit para el ID de subred y dejamos el resto para el ID de host. A continuación, podemos probar con dos bits para el ID de subred, y luego tratar con tres y así sucesivamente. Esto sería tonto, consume demasiado tiempo y hace que sea difícil para nosotros elegir la mejor opción. Hay un método más sencillo: podemos usar las tablas de resumen de subredes. Las tablas nos permiten echarle un vistazo a todas nuestras opciones y por lo general veremos de inmediato cual es la mejor para nosotros.


Ejemplo de diseño de subredes de clase C.
Tomemos un ejemplo. Supongamos que tenemos una red de clase C, con una dirección base de 211.77.20.0, y un total de siete subredes. El número máximo de hosts por subred es de 25. Mirando en la tabla resumen para subredes de Clase C, la respuesta es inmediatamente clara: necesitamos 3 bits para el ID de subred. ¿Por qué? Esto nos permitirá 8 subredes y 30 hosts por subred. Si tratamos de elegir 2 bits, no podemos definir suficientes subredes (sólo 4). Como muestra la Figura 74, si optamos por usar 4 bits para el ID de subred, entonces sólo podemos tener 14 hosts por subred.
Figura 74: Ejemplo de un subnetting para una clase C: Una decisión sencilla.
Clic para ampliar.
En este ejemplo en particular, donde se necesitan siete subredes y 25 hosts para la subred más grande, sólo hay una elección del tamaño de ID de subred que cumpla los requisitos.

Ejemplo de diseño de subredes de clase B.
En algunos casos, especialmente con las redes más grandes, podemos tener varias opciones. Consideremos un ejemplo más interesante, una red mas grande de clase B 166.113.0.0, donde tenemos un total de 15 subredes y la más grande tiene 450 hosts. Examinando la tabla resumen de subred de Clase B nos sugiere cuatro opciones aceptables, como se muestra en la Figura 75.
Figura 75: Ejemplo de subnetting para clase B: Una decisión mas difícil.
Clic para ampliar. 
Esta red de clase B necesita por lo menos 15 subredes y debe permitir hasta 450 hosts por subred. Tres bits para el ID de subred es demasiado poco, y 8 bits significan solo 254 hosts por subred, lo cual es insuficiente, pero hay cuatro opciones aceptables, por lo que debemos elegir sabiamente. 

En estas cuatro, el número de subredes es igual a 15 o mayor, y el número de hosts por subred es de más de 450. Por lo tanto, que opción debemos elegir? Por lo general, queremos elegir una opción promedio. Si usamos cuatro bits para el ID de subred, esto nos da sólo un máximo de 16 subredes, lo que limita el crecimiento en el número de subredes, puesto que ya tenemos 15. Lo mismo se aplica a la elección de 7 bits para el ID de subred, ya que ahora tenemos 450 hosts en una subred, y esto nos limitaría a 510 hosts. Por lo tanto, probablemente queramos 5 o 6 bits en este caso. Si esperamos un mayor crecimiento en el número de hosts en la subred mas grande, nos quedaríamos con 5 bits, y si esperamos un mayor crecimiento en el número de subredes, nos quedaríamnos con 6 bits. Si no está seguro, es probablemente mejor asumir un mayor crecimiento en el número de hosts por subred, así que aquí elegiremos 5 bits.
El problema inverso también puede ocurrir: usted puede estar en una posición donde no haya ninguna coincidencia en la tabla. Por ejemplo, si nuestro ejemplo de clase C tiene 35 hosts en la subred más grande en lugar de 25, mala suerte: no hay ninguna combinación de ID de subred y tamaño de ID de host que funcione. Lo mismo ocurre en nuestro ejemplo de clase B, si tuviéramos 4.500 hosts en la subred grande en vez de 450. En esta situación, tendríamos o bien que dividir la subred grande en una más pequeña, o bien utilizar más de un bloque de direcciones IP, o sino actualizar a un bloque más grande.

Concepto clave: Si hay más de una combinación de ID de subred y tamaño de ID de host que cumplan con los requisitos, trate de elegir la opción "término medio", que se anticipe mejor a las necesidades futuras de crecimiento. Si ninguna combinación cumple los requisitos, los requisitos tendrán que cambiar!

Una vez que hemos decidido el número de bits a utilizar para el ID de subred y para el ID de host, podemos determinar la máscara de subred personalizada de nuestra red. Ahora, no busquen amparo en mí. A mucha gente se le ponen los ojos vidriosos con la sola mención de la máscara de subred, pero en realidad es bastante simple de entender una vez que hemos hecho nuestros deberes en la toma de la decisión de diseño que hicimos en el paso # 2. De hecho, hay dos maneras de hacerlo: una es menos trabajosa que la otra, pero ambas son bastante fáciles. Pensé en llamarlas la forma "dura" y la forma "fácil", pero en cambio, voy a llamarlas "fácil" y "más fácil".

Cálculo de la máscara de subred personalizada.
Vamos a empezar con la forma "fácil", en la que determinamos la máscara de subred en formato binario usando la información que ya tenemos sobre nuestra red, y luego convertimos la máscara a decimal. Para refrescarle la memoria y guiar el proceso, recuerde esto: la máscara de subred es un número binario de 32 bits donde cada uno representa un bit correspondiente al identificador de red o el identificador de subred, y un 0 representa cada bit del ID de host.

Ejemplo de cálculo de una máscara de subred personalizada de clase C.
Consulte el ejemplo de la clase C en el tema anterior. Hemos decidido utilizar 3 bits para el ID de subred, dejando 5 bits para el ID de host. Éstos son los pasos que seguirá para determinar la máscara de subred personalizada para esta red (que se ilustra en la Figura 76):
Figura 76: Determinación de una máscara de subred personalizada  para una red clase C
Clic para ampliar.
  1. Determinar la máscara de subred por defecto: Cada una de las clases A, B y C tienen una máscara de subred por defecto, que es la máscara de subred para la red antes de subnetearla. Tiene un 1 para cada bit del ID de red y un 0 para cada bit del ID de host. Para la Clase C, la máscara de subred es 255.255.255.0. En binario, esto es: 11111111 11111111 11111111 00000000
  2. Cambie los ceros más a la izquierda para los que usará en los bits de subred: Hemos decidido utilizar 3 bits para el ID de subred. La máscara de subred tiene que tener un 1 para cada uno de los bits correspondientes al ID de red o subred. Los bits del ID de red ya tiene un valor de uno para la máscara de subred por defecto, así que cambiamos los 3 bits con valor de cero que están mas a la izquierda en la máscara de subred por defecto de 0 a 1, los mostramos destacados a continuación. Esto resulta en la siguiente máscara de subred personalizada para nuestra red:                   11111111 11111111 11111111 11100000
  3. Convertir la máscara de subred a notación decimal con puntos: Tomamos cada uno de los octetos de la máscara de subred y lo convertirmos a decimal. El resultado es nuestra máscara de subred personalizada en la forma que normalmente la vemos: 255.255.255.224. 
  4. Expresamos la máscara de subred en "notación con diagonal (slash)": Alternativamente, podemos expresar la máscara de subred en "notación slash". Esto es sólo una barra diagonal seguida del número de unos en la máscara de subred. 255.255.255.224 es equivalente a "/27".
Ejemplo de cálculo de la mascara de subred personalizada para una clase B.
Ahora, vamos a hacer el mismo ejemplo con nuestra red de clase B (166.113.0.0) con 5 bits para el ID de subred (con poco menos de narración esta vez, ver Figura 77):
Figura 77: Determinación de la máscara de subred personalizada para una red clase B.
Clic para ampliar.
  1. Determinar la máscara de subred por defecto: Para la clase B, la máscara de subred por defecto es 255.255.0.0. En binario, esto es: 11111111 11111111 00000000 00000000
  2. Cambio los ceros más a la izquierda por aquellos para los bits de subred: Hemos decidido utilizar 5 bits para el ID de subred, así que cambiamos los 5 ceros más a la izquierda de ceros a unos, mostrados en negrita abajo, para darnos nuestra máscara de subred personalizada en binario: 11111111 11111111 11111000 00000000
  3. Convertir la máscara de subred a notación decimal con puntos: Tomamos cada uno de los octetos de la máscara de subred y lo convertimos a decimal, lo que nos da una máscara de subred personalizada de 255.255.248.0 
  4. Expresamos la máscara de subred en "notación slash": Podemos expresar la máscara de subred 255.255.248.0 como "/21", ya que son 21 unos seguidos de 11 ceros. En otras palabras, su longitud de prefijo es 21.
Determinación de la máscara de subred personalizada usando las tablas de subredes.
Ahora, ¿qué podría ser más sencillo que eso? Bueno, simplemente puede referirse a las tablas resumen de subredes. Busque la tabla de la clase correspondiente, y luego busque la fila que ha seleccionado en el paso anterior que coincida con el número de bits de ID de subred que desea utilizar. Usted puede ver la máscara de subred correspondiente justo ahí.

(Hey, es bueno saber cómo hacerlo tú mismo! Puede que no siempre tengas las tablas a mano)

El identificador de red asignado a nuestra red se aplica a toda la red. Esto incluye todas las subredes y todos los hosts en todas las subredes. Cada subred, sin embargo, debe ser identificada con un identificador de subred único o ID de subred, de modo que pueda ser diferenciada de las demás subredes en la red. Esto es por supuesto el propósito de los bits de ID de subred que tomamos de los bits del ID de host cuando subneteamos. Una vez que hemos identificado cada subred necesitamos determinar la dirección de cada una de ellas, para que podamos utilizar esta en la asignación de las direcciones IP específicas de cada host.
Este es otro paso en el diseño de subredes que en realidad no es difícil de entender o hacer. La clave para entender como determinar los identificadores y las direcciones de subred es trabajar siempre en forma binaria, y luego convertirlo a decimal. También vamos a ver un "atajo" para determinar las direcciones en decimal directamente, lo cual es más rápido pero conceptualmente menos simple.
Vamos a ir directamente a los ejemplos para ver como se determinan los identificadores y las direcciones de subred. Numeraremos las subredes empezando por 0, y luego 1, 2, 3 y así sucesivamente, hasta el ID de subred más alto que necesitemos.

Nota: Asumiré en esta descripción que vamos a utilizar las numeraciones de subredes de todos cero y todos unos. En el sistema de subredes original RFC 950, estas dos subredes no se utilizan, lo cual cambiaría la mayor parte de los cálculos subsiguientes. Aquí podrá ver una explicación.

Determinamos los identificadores y las direcciones de subred de la siguiente manera:
  1. ID de subred: Esto es sólo el número de subred, y se puede expresar, ya sea en forma binaria o decimal. 
  2. Dirección de subred: Esta es la dirección formada tomando la dirección de la red en su conjunto, y sustituyendo el ID (binario) de subred en los bits del ID de subred. Tenemos que hacer esto en binario, pero sólo para los octetos donde hay bits de ID de subred, aquellos en los que sólo hay bits de ID de red o sólo bits ID de hosts no los tocaremos.
Parece complicado? Volvamos a nuestros ejemplos y veremos que en realidad no lo es.

Ejemplo de determinación del ID y las direcciones de subredes de una clase C.
Recordemos nuestra red de clase C, 211.77.20.0. La dirección de red en binario es:

11010011 01001101 00010100 00000000

Estamos subneteando usando 3 bits para el ID de subred, y dejando 5 bits para el ID de host. Ahora vamos a ver la dirección de red con los bits de subred resaltados:

11010011 01001101 00010100 00000000

Estos son los bits que sustituimos con el ID de subred para cada subred. Tenga en cuenta que dado que los primeros tres octetos contiene bits de ID de red y el identificador de red es el mismo para cada subred, nunca cambian. Ni siquiera necesitamos verlos en forma binaria, aunque para mayor claridad lo haremos.
Así es como se determina el ID y las direcciones de subred, de nuevo, empezando por 0 (ver Figura 78):
0. La subred # 0 tiene un identificador de subred de 0, o 000 en binario. Para encontrar la dirección, comenzamos con la dirección de red en binario, y sustituiremos por "000" los bits del ID de subred. Pues vaya, ya todos estos bits están en ceros!. Lo que esto significa es que la dirección de la subred # 0 es la misma que la dirección de la red en su conjunto: 211.77.20.0.

Este es siempre el caso: la subred # 0 siempre tiene la misma dirección que la red genérica.


3.- Subred # 1 tiene un ID de subred de 1 en decimal o 001 en binario. Para encontrar la dirección sustituimos por "001" los bits del ID de subred, para producir lo siguiente:
11010011 01001101 00010100 00100000
Convirtiéndolo a decimal, obtenemos 211.77.20.32.

4.- La subred # 2 tiene un ID de subred de 2, o 010 en binario. Para encontrar la dirección sustituimos por "010" los bits del ID de subred, para obtener:
11010011 01001101 00010100 01000000
Lo cual es 211.77.20.64 en binario.

5.- La subred # 3 tiene un ID de subred de 011. Como podemos ver los primeros tres octetos de la dirección son siempre 211.77.20. El último octeto aquí es "01100000", que es 96 en decimal, por lo que la dirección completa es 211.77.20.96. 
Figura 78: Determinación de las direcciones de subredes para una red clase C.
Clic para ampliar.
Este diagrama muestra cada una de las ocho posibles subredes creadas cuando se utilizan 3 bits para el ID de subred de una red de clase C. El ID de subred binario es simplemente sustituido por los bits de subred y el número resultante de 32 bits convertido al formato decimal con puntos.

Empieza a ver un patrón aquí? Sí, la dirección de cualquier subred se puede encontrar mediante la adición de 32 a el último octeto de la subred anterior. Este patrón se produce para todas las opciones de subredes, el incremento depende de la cantidad de bits que se utilizan para el ID de subred. En este caso, el incremento es de 32, que es de 2^5, 5 es el número de bits de ID de host que restan después de tomar 3 bits para el ID de subred.

6.- La subred # 4 es 100, la dirección es 211.77.20.128. 

7.- La subred # 5 es 101, la dirección es 211.77.20.160. 

8.- La subred # 6 es 110, la dirección es 211.77.20.192. 

9.- La subred # 7 es 111, la dirección es 211.77.20.224.

Concepto clave: Las direcciones de subred en una red con subredes siempre van distribuidas de modo numéricamente uniforme, con la distribución en función del número de bits de ID de subred.

Sólo necesitamos siete subredes en nuestro ejemplo, desde la # 0 a la # 6. La subred # 7 quedaría de repuesto. Tenga en cuenta que la última subred tiene el mismo último octeto que la máscara de subred de nuestra red? Esto se debe a que sustituimos "111" en los bits del ID de subred, tal como lo hicimos cuando calculamos la máscara de subred.

Ejemplo de determinación de ID y direcciones de subred de clase B.
Veamos ahora nuestro otro ejemplo, la red de clase B 166.113.0.0. En binario es:

0100110 01110001 00000000 00000000

Usaremos 5 bits para el ID de subred, dejando 11 bits para el ID de host. La dirección de red con los bits de ID de subred destacados es:

0100110 01110001 00000000 00000000

Aquí, sólo el tercer octeto nunca va a cambiar para las diferentes subredes. Los dos primeros siempre serán "166.113" y el último octeto siempre será cero. Hay 32 posibles subredes; voy a enumerar las primeras para que pueda ver el patrón (ver Figura 79 también):

0. La subred # 0 tiene un identificador de subred de 00000. Esto significa que la dirección será 166.113.0.0, la dirección de red, como cabría esperar.

10. La subred # 1 tiene un ID de subred de 00001. La dirección es:

10100110 01110001 00001000 00000000

Esto es 116.113.8.0 en decimal.

11. La subred # 2 tiene un ID de subred de 00 010, dando una dirección de 116.113.00010000.0 o 116.113.16.0. 

12. La subred # 3 tiene un ID de subred de 00011 y una dirección de subred de 116.113.24.0. 
Figura 79: Determinación de las direcciones de subred para una red de clase B
Esta es la misma que la figura 78, pero para una red de clase B con 5 bits de ID de subred (no hemos mostrado las 32 posibles subredes, por razones obvias!)

Una vez más, el patrón aquí es obvio: se agrega 8 al tercer octeto para obtener las direcciones sucesivas. La última subred aquí es la # 31, que tiene una dirección de subred de 116.113.248.0, y los mismos octetos tercero y cuarto que nuestra máscara de subred de 255.255.248.0.

Uso de fórmulas para calcular las direcciones de subred.
Dado que las direcciones de subred siguen un patrón, y el patrón depende del número de bits de ID de subred, es posible expresar las direcciones de subredes mediante una fórmula única para cada opción de subredes. He mostrado estas fórmulas para cada una de las clases A, B y C en las tablas resumen de subredes. Las fórmulas se pueden utilizar para calcular directamente la dirección de la subred # N, donde N es enumerado desde 0 hasta uno menos que el número total de subredes, como lo hemos hecho anteriormente.

Cálculos básicos de fórmulas de subredes.
En estas fórmulas, los bits de ID de red se muestran como "x", o "X.Y" o "x.y.z" para las tres clases. Esto sólo significa que las direcciones de subred tienen tales octetos donde sea que estén los números en los octetos de la dirección de red. En nuestros ejemplos, "x.y" sería "166.113" para nuestra red de clase B, y "x.y.z" sería "211.77.20" para nuestra red de clase C.
Cuando el número de bits de subred es de 8 o menos, la fórmula es relativamente sencilla y se realiza un cálculo para un solo octeto, como una multiplicación de N, como "N*4" o "N*32". Este suele ser el caso, ya que el número de subredes es por lo general menos de 256, y es el caso de nuestros dos ejemplos.

En nuestra red de clase C con 3 bits de ID de subred, la fórmula de la tabla es "x.y.z.N*32" Para esta red, todas las subredes son de la forma "211.77.20.N*32", con N estando entre 0 y 7. Así, la subred # 5 es 211.77.20.(5*32), que es 211.77.20.160, como hemos visto antes. Del mismo modo, en nuestra red de clase B con 5 bits de ID de subred, la fórmula es x.y.N*8.0. En este caso "x.y" es 166.113. La subred # 26 tendría la dirección 166.113.(26*8).0, o 166.113.208.0
Esto es algo bastante sencillo, y convierte las fórmulas en un buen atajo para la determinación rápida de las direcciones de subred, especialmente cuando hay varias subredes. También se puede utilizar en una hoja de cálculo. El único lugar en el que el uso de las fórmulas requiere un poco de cuidado es cuando el número de bits de subred es de 9 o más. Esto significa que el identificador de subred cruza el límite de un octeto, y esto hace que la fórmula se vuelva más compleja. Así que considere el resto de este tema opcional, y pueden omitirlo si no quieren complicar su cerebro. 

Cálculo de fórmulas de subredes con más de 8 bits de subred.
Cuando el número de bits de subred es superior a 8, algunos de los octetos toman la forma "N dividido por un número entero", como "N/8". Se trata de una división de enteros, lo que significa "dividir N por 8, mantener la parte entera y descartar la parte fraccionaria o el resto". Otros octetos se calculan en base al modulo de N, que se muestra como "N%8". Esto es exactamente lo contrario: es decir, "divida N por 8, descarte el número entero y mantenga el resto". Por ejemplo, 33/5 en matemáticas enteras es de 6 (6 con un resto de 3, descartando el resto, o alternativamente, 6.6, descartando la fracción). 33%5 es 3 (6 con un resto de 3, descarte el 6, y mantenga el resto).
Tomemos como ejemplo nuestra red de clase B y supongamos que por alguna extraña razón se decidió utilizar 10 bits para el ID de subred en lugar de 5. En este caso, la fórmula es "x.y.N/4.(N%4)*64". La subred # 23 en este caso tendría una dirección de "166.113.23/4.(23%4)*64. El 23/4 se convierte en sólo 5 (el fractional .75 se descarta).23 módulo 4 es 3, que se multiplica por 64 para obtener 192. Así que la dirección de subred es "166.113.5.192". La subred # 709 sería "116.113.709/4.(709%4)*64, que resulta en 116.113.177.64.

Cálculos de fórmulas de subredes con más de 16 bits de subred.
Bueno, ahora la verdadera diversión. Si ud subnetea una dirección clase A utilizando más de 16 bits para el ID de subred, estará cruzando los límites de dos octetos, y las fórmulas se tornan muy ... interesantes, incluyendo tanto divisiones enteras como módulos. Supongamos que administramos una dirección de clase A 21.0.0.0 y optamos por subnetearla. Sin embargo, nos sentamos a hacer esto después de haber bebido algo en la fiesta de la oficina, por lo que nuestro juicio esta un poco deteriorado. Decidimos que sería una gran idea elegir 21 bits para el ID de subred, ya que nos gusta el número 21. Esto nos da un par de millones de subredes.
La fórmula para las direcciones de subred, en este caso, es "x.N/8192.(N/32)%256.(N%32)*8". Maldición. Bueno, esto esta un poco enredado - tanto es así que podría ser más fácil tomar un número de subred y hacerlo en binario, el camino más largo. Pero vamos a poner un ejemplo y veremos cómo funciona, para, por ejemplo, la subred # 987654. El primer octeto es, por supuesto, 21. El segundo octeto es 987654/8192, división entera. Esto es 120. El tercer octeto es (987654/32)%256. El resultado de la división es 30864 (descartamos la fracción). Entonces, tomamos 30864%256, que da un resto de 144. El cuarto octeto es (987654%32)*8. Esto es de 6*8 o 48. Así dirección de subred # 987654 es 21.120.144.48.
(No beba y conduzca. Tampoco beba y se ponga a diseñar subredes :-))
Una vez que conocemos las direcciones de cada una de las subredes de nuestra red, podemos usar estas direcciones como base para asignar direcciones IP a las máquinas individuales en cada subred. Empezamos asociando una dirección de subred base a cada red física (ya que al menos en teoría, nuestra subredes se corresponden con nuestras redes físicas). A continuación, asignamos de forma secuencial direcciones IP a los hosts dentro de la subred (o de una manera diferente, si así lo prefieren!)
La determinación de las direcciones de host es realmente muy simple, una vez que conocemos la dirección de subred. Todo lo que hacemos es sustituir los números 1, 2, 3 ... y así sucesivamente para los bits del ID de host en la dirección de subred. Debemos hacerlo en binario, por supuesto, y luego convertiremos la dirección a la forma decimal. Una vez más, podemos hacer algo de "simplificación" una vez que se hace evidente el patrón de cómo asignar las direcciones. Nos ocuparemos de eso más tarde en el tema.

Ejemplo de la determinación de una dirección clase C de un host.
Vamos a empezar con nuestro ejemplo de clase C nuevamente, 211.77.20.0, que hemos dividido en ocho subredes con 3 bits de subred. Así es como aparece la dirección con los bits de subred resaltados, y los bits de ID de host resaltados y subrayados.:

11010011 01001101 00010100 00000000

La primera subred es la # 0, que tiene todos los bits de subred en ceros, y por lo tanto tiene la misma dirección que la red en su conjunto: 211.77.20.0. Sustituimos los números 1, 2, 3 y así sucesivamente para los bits subrayados para obtener el ID de host. (Recuerde que no empezamos con 0 aquí porque para el ID de host, las combinaciones de todos a ceros y todos a unos tienen un significado especial). Por lo tanto, queda como sigue:
  1. La dirección del primer host tiene el número 1 para el ID de host, o "00001" en binario. Por lo tanto, es: 11010011 01001101 00010100 00000001En decimal, esto es 211.77.20.1.
  2. La dirección del segundo hosts lleva el número 2 para el ID de host, o "00010" en binario. Su valor binario es: 11010011 01001101 00010100 00000010En decimal, esto es 211.77.20.2
Estoy seguro de que ya tienen la idea, el tercer host será 211.77.20.3, 211.77.20.4 el cuarto y así sucesivamente. Hay un máximo de 30 hosts en cada subred, como hemos visto antes. Así, el último host en esta subred se encuentra mediante la sustitución de 30 (11110 en binario) en los bits de ID de host, lo que resulta en una dirección decimal de 211.77.20.30.
Podemos hacer lo mismo para cada una de las otras subredes, lo único que cambiaría serían los valores en los bits de ID de subred. Tomemos, por ejemplo, la subred # 6. Cuenta con "110" para los bits de subred en lugar de "000". Por lo tanto, su dirección base de subred es 211.77.20.192, o:

11010011 01001101 00010100 11000000

Le asignamos anfitriones para esta subred mediante la sustitución de 00001, luego, 00010, después, 00011 para los bits de ID de host como antes:
  1. La dirección del primer host es: 11010011 01001101 00010100 11000001 O 211.77.20.193.
  2. La dirección del segundo host es: 11010011 01001101 00010100 11000010 O 211.77.20.194
Y así sucesivamente, hasta el último host en la subred, que es 211.77.20.222. La figura 80 muestra gráficamente cómo se calculan las direcciones de subred y de host para esta red ejemplo.
Figura 80: Determinación de direcciones de host para una red de clase C.
Clic para ampliar.
Este diagrama muestra cómo se determinan en un proceso de dos pasos las direcciones de subred y de host. Las direcciones de subred se encuentran mediante la sustitución de los valores del ID de subred (en rojo) para los bits de ID de subred de la red. Entonces, para cualquier dirección de subred dada, se puede determinar una dirección de host mediante la sustitución de un número de host (mostrado en azul) para los bits de ID de host dentro de esa subred. Así, por ejemplo, el host # 2 en la subred # 6 tiene "110" para el ID de subred y "00010" para el ID de host, dando como resultado un octeto con un valor final de "11000010" o 194.


Una dirección más que desearíamos calcular es la dirección de broadcast de la subred. Esto por supuesto es uno de los casos especiales, que se encuentra mediante la sustitución de todos los bits del ID de host por un valor de uno. Para la subred # 0, esto sería equivalente a 211.77.20.31. Para la subred # 6, sería 211.77.20.223. Y eso es todo lo que hay que hacer.

Ejemplo de determinación de la dirección de hots para una clase B. 
Podemos hacer lo mismo para nuestra red de clase B, naturalmente. La dirección de esta red es 166.113.0.0. Ahora, digamos que queremos definir los hosts que van en la subred # 13. Sustituimos 13 en binario (01101) en los bits de ID de subred, para obtener la dirección de subred siguiente, lo mostramos con los bits de ID de subred resaltados y los bits de ID de host resaltados y subrayados:

10100110 01110001 01101000 00000000

Esta es la dirección de subred 166.113.104.0. Ahora, disponemos de 11 bits de ID de host, por lo que podemos tener un máximo de 2046 hosts. El primero se encuentra sustituyendo "000 00000001" en los bits de ID de host", para obtener una dirección de 166.113.104.1. El segundo host es 166.113.104.2, y así sucesivamente. El último se encuentra sustituyendo "111 11111110", obteniendo una dirección de 166.113.111.254. Tenga en cuenta que dado que los bits de ID de host se extienden más de dos octetos, dos octetos cambiarán a medida que incrementamos el ID de host, a diferencia del ejemplo de la clase C. La dirección de broadcast es 166.113.111.255.

Concepto clave: En una red subneteada, la dirección del host # H dentro de la subred # S se encuentra uniendo el valor binario de S para los bits del ID subred de la red y el valor binario de H para los bits del ID de host de la red.

"Atajos" para el cálculo rápido de las direcciones de hosts.
Como puede ver, la definición de los identificadores de hosts es bastante sencilla. Si puede sustituir los bits y convertirlos a decimales, usted tiene todo lo que necesitas saber. También puede ver que como fue el caso con la definición de las direcciones de subred, hay patrones que se pueden utilizar en la definición de identificadores de hosts y la comprensión de cómo funcionan. Estos generalmente definen maneras en que podemos determinar con mayor rapidez determinadas direcciones de hosts, trabajando directamente en decimales en lugar de molestarse con las sustituciones binarias. Esto es un poco más complejo conceptualmente, así que continúe sólo si cree que tiene el valor.
Los siguientes son algunos de los "atajos" que pueden utilizarse en la determinación de direcciones IP de host en un entorno de subred:

  • Dirección del primer host: La dirección del primer host siempre es la dirección de subred con el último octeto incrementado en 1. Así, en nuestro ejemplo de clase C, la subred # 3 de la dirección base es 211.77.20.96. La dirección del primer host en la subred # 3 es entonces 211.77.20.97. 
  • Direcciones de los hosts subsiguientes: Después de encontrar la dirección del primer host, para obtener el siguiente solo tiene que añadir uno al último octeto de la dirección previa. Si esto hace que el último octeto valga 256 (lo que puede suceder sólo si hay más de 8 bits de ID de host) lleve el valor a cero e incremente el valor del tercer octeto. 
  • Cálculo directo de las direcciones de host: Si el número de bits del ID de host es de 8 o menos, usted puede encontrar la dirección del host #N, añadiendo "N" al valor decimal del último octeto. Por ejemplo, en nuestro ejemplo de clase C, la dirección base de la subred # 3 es de 211.77.20.96. Por lo tanto, el host # 23 en esta subred tiene una dirección de 211.77.20.119.
Si hay más de 8 bits en el ID de host, esto sólo funciona para los primeros 255 hosts, después de lo cual hay que llevar el valor a cero y aumentar el valor del tercer octeto. Consideremos de nuevo la subred # 13 en nuestro ejemplo de clase B, que tiene una dirección base de 166.113.104.0. El host # 214 en esta subred tiene la dirección 166.113.104.0, pero el host # 314 no es 166.113.104.314. Esto es 166.113.105.58 (el host # 255 es 166.113.104.255, y luego el host # 256 es 166.113.105.0, y agregamos 58 más (314 a 256) para llegar al # 314, 166.113.105.58). 

  • Rango de direcciones de host: El rango de direcciones de host para cualquier subred se determina como sigue:

  1. Primera dirección: Dirección base de la subred con el último octeto incrementado en uno. 
  2. Última dirección: Dirección base de la subred siguiente después de ésta, menos dos en el último octeto (que puede requerir el cambio de un "0" en el último octeto por "254" y reducir el valor del tercer octeto en 1).
Por ejemplo, considere la subred # 17 en nuestro ejemplo de clase B. Su dirección de subred es 166.113.136.0. La dirección de la subred # 18 es 166.113.144.0. Así, el rango de hosts para la subred # 17 es de 166.113.136.1 a 166.113.143.254.

  • Dirección de difusión (broadcast): La dirección de broadcast para una subred es siempre uno menos que la dirección base de la subred siguiente. O alternativamente, uno más la última dirección de host "real" de la subred. Por lo tanto, para la subred # 17 en nuestro ejemplo de clase B, la dirección de broadcast es 166.113.143.255.
¿Acabo de confundirte? Bueno, recuerde, estos son atajos y, a veces cuando usted toma un atajo se puede perder. Es broma, en realidad no es tan difícil una vez que juegue un poco con ella.
Para terminar, recuerde el siguiente resumen rápido cuando trabaje con direcciones IP en un entorno de subredes:

  1. El identificador de red es el mismo para todos los hosts en todas las subredes, y todas las subredes de la red. 
  2. El ID de subred es el mismo para todos los hosts en cada subred, pero única para cada subred en la red. 
  3. El ID de host es único dentro de cada subred. Cada subred tiene el mismo conjunto de identificadores de hosts. 
  4. El subnetting es divertido!