UPAEP 2013 Universidad Popular Autónoma del Estado de Puebla UPAEP 2013 [Diplomado en Redes] Parte III: Ruteo IP Capítulo 12: Direccionamiento IP y Subneteo Este capítulo explica el direccionamiento IP y toda la matemática detrás del subneteo. 2 UPAEP 2013 [Diplomado en Redes] Direccionamiento IP La mayoría de las redes utilizan una versión de protocolo IP, llamada IP Versión 4 (IPv4). Existen diferentes clases de redes (A, B y C), y puede haber tanto direcciones públicas como privadas. En la tabla 12-1 se muestran las características de cada una de las clases de redes de IPv4. Clase A Clase B Clase C Rango del Primer Octeto 1 a 126 128 a 191 192 a 223 Números de Red Válidos 1.0.0.0 a 126.0.0.0 128.0.0.0 a 191.255.0.0 192.0.0.0 a 223.255.255.255 Números de Redes en Esta Clase 2 -2 Números de Hosts por Red 7 2 14 2 2 -2 24 Tamaño de la Parte de Red de la Dirección (bytes) 21 2 -2 16 2 -2 1 2 3 Tamaño de la Parte de Host en la Dirección (bytes) 3 2 1 Direcciones IP Privadas 10.0.0.0 (1 Red) 172.16.0.0 a 172.31.0.0 (16 Redes) 192.168.0.0 a 192.168.255.0 (256 Redes) 8 Tabla. 12-1 Clases de redes de IPv4 Una versión mejorada del protocolo IP, es IP Versión 6 (IPv6), el objetivo principal de IPv6 es incrementar el número de direcciones IP disponibles. IPv6 utiliza 128 bits, en lugar de los 32 bits usados por IPv4. Los 128 bits se escriben en notación hexadecimal, con dos puntos entre cada cuarteto de símbolos, aún así la dirección puede ser muy larga pero IPv6 permite abreviaciones. En la tabla 12-2 se muestra la comparación de IPv4 con IPv6. Característica IPv4 IPv6 Tamaño de la dirección (bits o bytes por octetos) 32 bits, 4 octetos 128 bits, 16 octetos Ejemplo de dirección 10.1.1.1 0000:0000:0000:0000:FFFF:FFFF:0A01:0101 Misma abreviada ----- ::FFFF:FFFF:0A01:0101 dirección, Número de direcciones posibles, ignorando los valores reservados 32 2 , aproximadamente billones 4 128 2 , aproximadamente 3.4 X 10 38 Tabla. 12-2 IPv4 contra IPv6 3 UPAEP 2013 [Diplomado en Redes] Operaciones Matemáticas Utilizadas en Subneteo Convirtiendo Direcciones IP y Máscaras de Decimal a Binario y Viceversa Las direcciones IPv4 son números binarios de 32 bits escritos como series de números decimales separados por puntos. Para analizar la dirección, se necesita convertir de decimal a binario. Para poner el número binario de 32 bits en la forma decimal cuando se configura un router, se necesita convertir de regreso a decimal el número binario. Una clave para el proceso de conversión de direcciones IP es recordar lo siguiente: Cuando se convierte de un formato a otro, cada número decimal representa 8 bits. Cuando se convierte de un decimal a binario, cada número decimal se convierte a un número de 8 bits. Cuando se convierte de binario a decimal, cada conjunto de 8 bits consecutivos se convierten a un número decimal. Se considera la conversión de la dirección IP 150.150.2.1 a binario. El número 150, cuando es convertido a binario es equivalente a 10010110. El siguiente byte, otro 150, es convertido a 10010110. El tercer byte, el decimal 2, es convertido a 00000010. Finalmente, el cuarto byte, el decimal 1, es convertido a 00000001. Las series combinadas de los números de 8 bits es la dirección IP de 32 bits, en este caso, 10010110 10010110 00000010 00000001. Si se empieza con la versión binaria de la dirección IP, primero se debe separar la dirección en cuatro conjuntos de 8 dígitos. Después se convierte cada conjunto de 8 números binarios al decimal equivalente. Llevando a Cabo la Operación Booleana AND El AND Booleano es una operación matemática que se realiza en un par de números binarios de un digito. El resultado es otro número binario de un digito. A continuación se listan las 4 posibles operaciones y su resultado: 0 AND 0 resulta 0 0 AND 1 resulta 0 1 AND 0 resulta 0 1 AND 1 resulta 1 Para descubrir el número de subred en la cual una dirección en particular reside, se hacen operaciones AND entre los dígitos de la dirección IP y la máscara de la subred, en la tabla 12-3 se muestra un ejemplo. 4 [Diplomado en Redes] UPAEP 2013 Decimal Binario Dirección 150.150.2.1 1001 0110. 1001 0110. 0000 0010. 0000 0001 Máscara 255.255.255.0 1111 1111. 1111 1111. 1111 1111. 0000 0000 Resultado de AND 150.150.2.0 1001 0110. 1001 0110. 0000 0010. 0000 0000 Tabla. 12-3 Ejemplo de AND El resultado de AND será el número de la subred a la que pertenece la dirección IP. Notación de Prefijo/Notación CIDR Las máscaras de las subredes se pueden escribir en notación de prefijo, también llamada notación CIDR. Para entender la notación de prefijo, es importante saber que todas las máscaras de las subredes tienen 1’s binarios consecutivos seguidos de puros 0’s binarios. La notación de prefijo simplemente indica el número de 1’s binarios en una máscara, precedido por una /. Por ejemplo, para la máscara 255.255.255.0, que su número binario equivalente es 11111111 11111111 11111111 000000, el equivale en notación de prefijo es /24, porque hay 24 1’s binarios consecutivos en la máscara. Proceso Binario Para Convertir Entre Decimal Punteado y Notación de Prefijo Para convertir de decimal punteado a notación de prefijo, se puede seguir el siguiente proceso binario: Paso 1 Convertir la máscara de decimal punteado a binario. Paso 2 Contar el número de 1’s binarios; este valor es la notación prefijo de la máscara. Para convertir de notación prefijo a decimal punteado, se utiliza al revés el proceso: Paso 1 Se escriben x 1’s binarios, donde x es el valor listado en la notación prefijo de la máscara. Paso 2 Se escriben 0’s binarios después de los 1’s hasta que se completen los 32 bits. Paso 3 Se convierte este número binario, 8 bits a la vez, a decimal, para crear el número decimal punteado. Por ejemplo, con un prefijo /20, se debe escribir primero: 11111111 11111111 1111 Después se escriben 0’s binarios, hasta completar los 32 bits: 1111111 11111111 11110000 00000000 Por último el número se convierte a decimal: 255.255.240.0 Proceso Decimal Para Convertir Entre Decimal Punteado y Notación de Prefijo En la tabla 12-4 se listan los 9 números posibles que pueden ser usados como máscara de subred, junto con su número binario equivalente. 5 UPAEP 2013 [Diplomado en Redes] Octeto Decimal de la Máscara de la Subred Equivalente en Binario Número de 1s Binarios Número de 0’s binarios 0 00000000 0 8 128 10000000 1 7 192 11000000 2 6 224 11100000 3 5 240 11110000 4 4 248 11111000 5 3 252 11111100 6 2 254 11111110 7 1 255 11111111 8 0 Tabla. 12-4 Máscaras de Subred Para convertir una máscara de decimal punteado a notación prefijo, se sigue el proceso a continuación: Paso 1 Empezar con el valor del prefijo de 0. Paso 2 Para cada octeto decimal punteado, agregar el número de 1’s binarios indicado por ese valor decimal en la tabla 12-4. Paso 3 La longitud del prefijo es /x, donde x es la suma calculada en el Paso 2. Por ejemplo, con una máscara 255.255.240.0, en el Paso 1 se comienza con un valor de 0 de prefijo. Posteriormente en el Paso 2, se suma lo siguiente: Se agrega 8, porque el valor del primer octeto es 255. Se agrega 8, porque el valor del segundo octeto es 255. Se agrega 4, porque el valor del tercer octeto es 240. Se agrega 0, porque el valor del cuarto octeto es 0. El resultado final es 20, y la longitud del prefijo es escrita como /20. Para convertir de notación prefijo a decimal punteado, se sigue el proceso a continuación, donde x es el valor del prefijo: Paso 1 Dividir x entre 8 (x/8), el cociente entero de la división se representará como d, y el residuo de la división se representará como r. Paso 2 Se deben escribir d octetos con valor decimal de 255. Paso 3 Para el próximo octeto, se buscará en la tabla 12-4 el decimal que tenga r 1’s binarios Paso 4 Para los octetos restantes, se escriben 0’s decimales. 6 UPAEP 2013 [Diplomado en Redes] Por ejemplo, si la longitud de prefijo es /20, se divide 20/8, el cociente es 2, y el residuo es 4. Posteriormente se escriben 2 octetos decimales con valor 255: 255.255 Después, se busca en la tabla 12-4 el decimal que tenga 4 1’s binarios, y se escribe como el siguiente octeto: 255.255.240 Finalmente, se completa la máscara con 0’s decimales: 255.255.240.0 Analizando y Escogiendo Máscaras de Subred Analizando la Máscara de Subred en un Diseño de Red Existente Las Tres Partes: Red, Subred y Host La siguiente lista indica cómo encontrar los tamaños de la parte de red, subred y host: La parte de la red de una dirección siempre es definida por las reglas de clases. La parte del host de la dirección es siempre definida por la máscara de subred. El número de 0’s binarios en la máscara (siempre encontrados al final de la máscara) definen el número de bits del host en la parte del host de la dirección. La parte de la subred de la dirección es lo que sobra en los 32 bits de la dirección. En la tabla 12-5 se muestra un ejemplo. Paso Ejemplo Reglas que Recordar Dirección 8.1.4.5 Máscara 255.255.0.0 Número de Bits en la parte de Red 8 Siempre definido por las Clases A, B o C Número de Bits en la parte de Host 16 Siempre definido por el número de 0’s binarios en la máscara. Número de Bits en la parte de Subred 8 32 – (tamaño de red + tamaño de host) Tabla. 12-5 Ejemplo del tamaño de las partes de una dirección 7 UPAEP 2013 [Diplomado en Redes] Determinando el Número de Subredes y el Número de Hosts por Subred Para encontrar el número de subredes que pueden existir en la red classful y el número de hosts que puede haber en cada subred se utilizan las dos fórmulas siguientes, donde s es el número de bits en la parte de subred y h es el número de bits en la parte de host: Número de subredes = 2 s h Número de hosts por subred = 2 - 2 La convenciones de direcciones IP reservan dos direcciones IP por subred: la primera/el número más pequeño (donde todos los números binarios son 0’s en la parte de host), y la última/el número más grande (donde todos los número binarios son 1’s en la parte de host). La primera es usada como el número de la subred, y la última es usada como la dirección broadcast de la subred. Es por eso que en la fórmula para calcular los hosts por subred, se resta 2. Número de Subredes: ¿Restar 2, o No? En algunos casos, dos subredes de una red classful son reservadas, y no pueden ser usadas. La primera de las dos posibles subredes reservadas es llamada subred cero. De todas las subredes de la red, ésta es la de menor valor numérico. A veces la subred cero resulta ser el mismo número que el número de la red classful a la que pertenece. Por ejemplo, en la red Clase B 150.150.0.0, la subred cero debería ser 150.150.0.0, la cual crea ambigüedad. Esta ambigüedad es una de las razones que la subred cero es reservada. La segunda posible subred reservada es llamada subred broadcast. Es la subred que tiene el mayor valor numérico en toda la red. Al usar esta subred también puede existir una ambigüedad, por ejemplo, un paquete enviado a la dirección 150.150.255.255 puede significar enviar ese paquete a todos los hosts en la red Clase B 150.150.0.0, pero en otros casos puede significar enviar ese paquete solo a los hosts en una sola subred. Esta ambigüedad en el significado de la dirección broadcast, es la razón por la que esta subred no debe usarse. La tabla 12-6 ayudará a decidir si usar o no estas subredes. Usar la fórmula 2s-2, y evitar la subred cero y la subred broadcast, si… Usar la fórmula 2s, y utilizar la subred cero y la subred broadcast, si… Se utiliza un protocolo de ruteo classful Se utiliza un protocolo de ruteo classless RIP Versión 1 o IGRP son usados como los protocolos de ruteo RIP Versión 2, EIGRP, o OSPF son usados como los protocolos de ruteo El comando no ip subnet zero está configurado El comando ip subnet zero está configurado o es omitido (de forma predeterminada) Se utiliza VLSM No se provee otra pista Tabla. 12-6 Cuando usar o no las dos subredes especiales 8 UPAEP 2013 [Diplomado en Redes] Escogiendo la Máscara de la Subred que se Ajusta a los Requerimientos del Diseño En algunos casos, los requerimientos del diseño permiten el uso de una sola máscara de subred, pero en otros casos, muchas máscaras pueden adaptarse a los requerimientos del diseño. A continuación se muestran ejemplos para cada caso: Para el primer ejemplo, supóngase que los requerimientos son los siguientes: Se debe usar una red Clase B 130.1.0.0. ¿Qué máscaras de subredes pueden utilizarse si se requieren por lo menos 200 subredes y al menos 200 hosts por subred? Primero se debe definir el número de bits en la parte de subred que se necesitan para permitir 200 s subredes. Se puede usar la fórmula 2 y encontrar un valor para s para obtener un resultado de por lo 7 8 menos de 200. En este caso, s debe ser 8, porque 2 = 128, y no son suficientes subredes, pero 2 = 256 que provee suficientes subredes. Por lo tanto, se necesitan por lo menos 8 bits en la parte de subred para permitir 200 subredes. De forma similar, para encontrar el número de bits requeridos en la parte de host, se busca un valor h para h en la formula 2 -2 hasta que se encuentre el valor más pequeño para h que de cómo resultado 200 o más. En este caso, h debe ser igual a 8. Posteriormente se debe decidir qué máscara o máscaras pueden usarse. En este caso porque la red es Clase B, se sabe que se tienen 16 bits en la parte de red. Utilizando la letra R para representar la parte de la red, la letras S para representar la parte de la subred, y la letra H para representar la parte del host, a continuación se representa el tamaño de los distintos campos: RRRRRRRR RRRRRRRR SSSSSSSS HHHHHHHH En este ejemplo, ya se han formado los 32 bits de la dirección con los requisitos mínimos encontrados, por lo tanto solo una máscara puede ser usada. Para conocer la máscara simplemente se deben escribir como 1’s binarios los bits de la parte de red y de la parte de subred, y los bits de la parte del host deben escribirse como 0’s binarios: 1111111 1111111 11111111 00000000 Cuando se convierte a decimal la máscara es 255.255.255.0 o en notación prefijo /24. Para el segundo ejemplo, supóngase que los requerimientos son los siguientes: En el diseño de la red se usará una Clase B, se requieren 50 subredes, y 200 hosts por subred. ¿Qué máscara o máscaras se ajustan a los requerimientos? Se utilizarán 16 bits en la parte de red, porque la red es una Clase B. Se necesitan al menos 8 bits en la 7 8 parte de host, porque 2 – 2 = 126 y no es suficiente, pero 2 -2 = 254 lo cual provee suficientes hosts por 6 5 subred. Se necesitan solo 6 bits en la parte de subred, porque 2 = 64, y 2 solo provee 32 subredes. Si se utiliza el mismo proceso de notación de los bits de la red, la subred y el host con las letras R, S, y H, se obtiene el siguiente formato: RRRRRRRR RRRRRRRR SSSSSS_ _ HHHHHHHH Se puede apreciar que hay 2 bits disponibles al final del tercer octeto, los bits pueden ser parte de la subred o parte del host, por lo tanto puede haber 3 posibles respuestas que son las siguientes: 11111111 11111111 11111111 00000000 (8 bits en subred, 8 bits en host) 9 [Diplomado en Redes] UPAEP 2013 11111111 11111111 11111110 00000000 (7 bits en subred, 9 bits en host) 11111111 11111111 11111100 00000000 (6 bits en subred, 10 bits en host) Las máscaras en decimal y en notación prefijo son las siguientes: 255.255.255.0 /24 255.255.254.0 /23 255.255.252.0 /22 Para utilizar la máscara que maximice el número de subredes, se elige la máscara que tenga el mayor número de 1’s binarios, en este caso la máscara es 255.255.255.0. Para utilizar la máscara que maximice el número de hosts, se elige la máscara que tenga el mayor número de 0’s binarios, en este caso la máscara es 255.255.252.0. Analizando Subredes Existentes Anteriormente, en este capítulo se explicó el uso de AND para obtener el número de subred a la que pertenece una dirección IP con la ayuda de su máscara correspondiente. A partir de este procedimiento, se puede obtener la dirección broadcast de la subred. Para obtener la dirección broadcast, todos los bits que pertenecen a la parte de host deben ser puros 1’s binarios en el resultado de la operación booleana con AND (que es el número de subred), a continuación se muestra un ejemplo: Dirección 130.4.102.1 10000010 00000100 01100110 00000001 Máscara 255.255.252.0 11111111 11111111 11111100 00000000 Resultado de AND 130.4.100.0 10000010 00000100 01100100 00000000 Broadcast 130.4.103.255 10000010 00000100 01100111 11111111 Tabla. 12-7 Ejemplo para obtener dirección broadcast Encontrando el Rango de Direcciones IP Válidas en una Subred El rango de direcciones válidas empieza con la dirección IP que es 1 más que el número de subred, y termina con la dirección IP que es 1 menos que la dirección broadcast. Por lo tanto el proceso para encontrar la primera y la última dirección cuando se conoce el número de subred y la dirección broadcast es el siguiente: Paso 1 Para encontrar la primera dirección IP, se copia la dirección de la subred, y se le agrega 1 al cuarto octeto. Paso 2 Para encontrar la última dirección IP, se copia la dirección broadcast, y se le resta 1 al cuarto octeto. En la siguiente tabla se muestra un ejemplo, para encontrar el rango de direcciones válidas de la subred 8.1.4.25/255.255.0.0: 10 UPAEP 2013 [Diplomado en Redes] Octeto 1 2 3 4 Dirección 8 1 4 5 Máscara 255 255 0 0 Número de Subred 8 1 0 0 Primera Dirección 8 1 0 1 Broadcast 8 1 255 255 Última Dirección 8 1 255 254 Tabla. 12-8 Ejemplo para obtener rango de direcciones 11