Universidad de Costa Rica Escuela de Ingeniería Eléctrica Redes de Computadores Proyecto de Investigación: Protocolos Avanzados de Subredes, VLSM (Variable Length Subnet Masks) Ronald Caravaca / A91329 José Pablo Apú Picado / B10407 Emmanuel Vargas Blanco / A55895 II­2015 Introducción Este trabajo consiste en dos secciones, la primera es un marco teórico sobre subredes que introduce al estudio del protocolo VLSM (Variable Length Subnet Masks). La segunda parte consiste de resolver un caso de subneteo para cumplir eficientemente con las especificaciones de diseño planteadas. Protocolo VLSM Definición clásica de subredes La creación de subredes es la acción de tomar un rango de direcciones IP donde todas las IPs sean locales unas con otras y dividirlas en diferentes rangos, o subredes, donde las direcciones IPs de un rango serán remotas de las otras direcciones. Si se quiere determinar cuántos hosts se tiene en un rango IP, primero debe se debe determinar cuántos bits hay disponibles para hosts. Por ejemplo; si se tiene la direccion IP 131.107.2.4 y la máscara 255.255.255.0. se dice que el ID de la red 131.107.2 y el host ID es 4 . Ahora, tenemos un byte para asignar hosts en la red (2n − 2) = # hosts ; N : número de bits para host (28 − 2) = # hosts La división en subredes permite crear múltiples redes lógicas de un único bloque de direcciones. Dado a que comúnmente se usa un router para conectar estas redes, cada interfaz en un router debe tener un ID único de red. Cada nodo en ese enlace está en la misma red. Se crean las subredes utilizando uno o más de los bits del host como bits de la red. Esto se hace ampliando la máscara para tomar prestado algunos de los bits de la porción de host de la dirección, a fin de crear bits de red adicionales. Cuanto más bits de host se usen, mayor será la cantidad de subredes que puedan definirse. Para cada bit que se tomó prestado, se duplica la cantidad de subredes disponibles. Por ejemplo: si se toma prestado 1 bit, es posible definir 2 subredes. Si se toman prestados 2 bits, es posible tener 4 subredes. Sin embargo, con cada bit que se toma prestado, se dispone de menos direcciones host por subred. A modo de ejemplo, el router A en la figura 1 posee dos interfaces para interconectar dos redes. Dado un bloque de direcciones 192.168.1.0 /24, se crearán dos subredes. Se toma prestado un bit de la porción de host utilizando una máscara de subred 255.255.255.128, en lugar de la máscara original 255.255.255.0. El bit más significativo del último byte se usa para diferenciar dos subredes. Para una de las subredes, este bit es "0" y para la otra subred, este bit es "1". Para calcular las subredes se tiene que la cantidad de subredes es 2n donde n corresponde a la cantidad de bits que se tomaron prestados. En este ejemplo, el cálculo es así: 21 = 2 subredes. Para calcular la cantidad de hosts por red, se usa la fórmula 2n − 2 , donde n corresponde a 7 la cantidad de bits para hosts. La aplicación de esta fórmula, 2 − 2 = 126 muestra que cada una de estas subredes puede tener 126 hosts. fig. 1. Ejemplo de subredes Definición y explicación de los conceptos classful y classless Los protocolos de routing son esencialmente aplicaciones en el router. Su propósito es asegurar el correcto intercambio de información y en un tiempo adecuado entre los routers de la red, para que los routers de la red puedan realizar adecuadamente la función de routing y la de switching. Tenemos los protocolos de routing que envían su máscara de red y los protocolos de routing que no envían su máscara de red. Los protocolos de routing classful no envían su máscara de red en las actualizaciones. Esto limita el diseño de las redes. Protocolos classful La principal características de estos protocolos es que no llevan la información de la máscara de subred en sus actualizaciones de enrutamiento (routing updates), lo cual los hace inadecuados para realizar direccionamiento jerárquico ya que requieren VLSM (en español “mascara de subred de longitud variable”). Con estos protocolos el router receptor no tiene ni idea de la magnitud exacta de la red remota, y es muy importante usar la misma máscara de subred en todas partes, de lo contrario podrían aparecer los llamados “routing black holes”. Los protocolos classful mas conocidos son RIP V1 e IGRP . RIPv1: Es un protocolo de ruteo con clase, es decir no soporta máscaras de largo variable (VLSM) ni direccionamiento sin clase (CIDR). Esto hace que todas las redes tengan que tener el mismo tamaño, lo que es poco eficiente. Tampoco incluye ningún mecanismo de autentificación de los mensajes haciéndola vulnerable a ataques. IGRP: Es un protocolo de enrutamiento basado en la tecnología vector­distancia, aunque también tiene en cuenta el estado del enlace. Utiliza una métrica compuesta para determinar la mejor ruta basándose en el ancho de banda, el retardo, la confiabilidad y la carga del enlace. El concepto es que cada router no necesita saber todas las relaciones de ruta/enlace para la red entera. Cada router pública destinos con una distancia correspondiente. Cada router que recibe la información, ajusta la distancia y la propaga a los routers vecinos. La información de la distancia en IGRP se manifiesta de acuerdo a la métrica. Esto permite configurar adecuadamente el equipo para alcanzar las trayectorias óptimas. Protocolos classless Estos protocolos de enrutamiento se extienden por sobre el esquema estándar de enrutamiento A, B, C mediante el uso de una máscara de subred, o la longitud de la misma, para indicarle al router como debe interpretar un IP network ID. Esta flexibilidad en las máscaras le permiten agrupar varias redes como una sola entrada en una tabla de enrutamiento, reduciendo significativamente el “routing overhead”. Los sistemas de protocolo classless incluyen: RIP v2 y OSPF, Border Gateway Protocol version 4 (BGP4) e Intermediate System to Intermediate System (IS­IS). TABLA DE COMPARACIÓN ENTRE PROTOCOLOS Protocolo de Enrutamiento Incluye la máscara en las actualizaciones Soporta VLSM Capacidad de usar rutas de superredes Classful No No No Classless Si Si Si Jerarquía de internet La Internet de hoy consiste en un core o núcleo (redes grandes) estable, formada por grandes proveedores de tránsito, y un edge o borde (redes pequeñas o locales) más dinámico, que consiste en redes de empresas o pequeños proveedores de acceso. La estructura típica de costos de internet junto con las políticas de trato igualitario asegura que el número de enlaces entre las redes de borde y las redes núcleo tiene que ser limitado. La mayoría de las redes pequeñas tienen un número pequeño de proveedores de subida en el núcleo y típicamente, debido a los costos, no tiene muchos enlaces de subida a proveedores individuales. En consecuencia, se propone agrupar las redes núcleo en un primer nivel de jerarquía (level 1), en un siguiente nivel (level 2) redes intermedias y redes de área local en un tercer nivel (level 3). Nivel 1: Núcleo de la red Este es el primer nivel de jerarquía, el cual garantiza la accesibilidad global de enrutamiento de paquetes entre las redes intermedias de nivel 2. Los routers en el núcleo se agrupan en dominios administrativos, cada uno bajo el control de un único ISP. Las tablas de enrutamiento en el núcleo contienen entradas para todos los routers dentro del núcleo y las rutas a las redes de nivel 2 unidos directamente. Nivel 2: Red de Distribución Una red intermedia se compone sólo de los routers. Proporciona enrutamiento entre el nivel 1 y el nivel 2. Por lo tanto, las tablas de enrutamiento dentro de una red de nivel 2, necesitan entradas para todos los routers dentro de la red, las rutas para enlazar con el nivel 1, y las rutas por defecto del nivel 2 al nivel más alto o el núcleo. Estas redes intermedias pueden corresponder a los proveedores de acceso o redes de empresas. Nivel 3: Red de Acceso Esta es la capa inferior de la jerarquía. Dentro de este nivel el enrutamiento es directo. Una red de nivel 3 es una red de acceso que une los hosts con los servidores. Un ejemplo prototípico es una red de capa 2, como una LAN Ethernet. En la siguiente figura se muestran los 3 niveles de jerarquía. Fig.2. Jerarquía de red Prefijo de Red Extendida (Extended Network Prefix) Debido al crecimiento desmesurado de la red, en 1985 se decidió una solución provisional para el servicio servicio mediante un procedimiento denominado subdireccionamiento o también conocido por Subnetting. La dirección se divide en dirección de red y dirección de host. Lo que hace el subdireccionamiento, es dividir el la dirección de host en dos partes: una dirección de subred y un número de nodo dentro de esta. Así, la unión de la dirección de red con la dirección de subred se le llama prefijo de red extendida. Fig 3. Prefijo de red extendida De esta manera ahora la parte de host_id puede ser divida por otra subnet_id host_id. Se observa que la idea es hacer dos subneteos. Fig. 4. Esquema de subred. Agregación de rutas (Route Aggregation) Se sabe que las direcciones IP son fácilmente localizable, por lo que se podría pensar que se están usando de manera eficiente. El problemas esta con las tablas de enrutamiento, que se vuelven super extensas y dificulta la operación de los routers. Este problema se le es conocido como (routing table explosión) Para utilizar los algoritmos de enrutamiento, se requiere que los routers intercambien información relacionado con las direcciones que puede llegar entre ellos. Conforme crece las tablas más información se ocupa y esta debe ser procesada. Este problema se puedo haber resuelto si se utiliza los nivel de jerarquía de la red telefónica, que se separa en país, región, ciudad, etc. Como se sabe, las IP no se dividen así por lo que se dificulta el enrutamiento. Para resolverlo, se puede usar el mismo principio que el subneteo, pero de manera contraria. En lugar de dividir las direcciones, la idea es unirlas. Este proceso es al que se le llama route aggregation . Este resultado se le conoce como una supernet, que viene a ser lo contrario con las subnets que más bien dividen las direcciones. Así, una superred, es una red IP que está formada por la combinación de dos o más redes o subredes con un prefijo CIDR (Classless Inter­Domain Routing) común. También se puede ver como un bloque de subredes contiguas direccionadas como una única subred en una red mayor. Para hacer más fácil su compresión, se ejemplifica de la siguiente manera: Supongamos que tenemos disponible 8192 bloques empezando desde la 194.24.0.0. Tabla de asignación de subredes Universidad Primera dirección Última dirección Número de hosts Prefijo Cambridge 192.24.0.0 192.24.7.255 2048 192.24.0.0/21 Edinburgh 192.24.8.0 192.24.11.255 1024 192.24.8.0/22 Disponible 192.24.12.0 192.24.15.255 1024 192.24.12.0/22 Oxford 192.24.32.0 192.24.31.255 4096 192.24.16.0/20 Al usar agregación de rutas los tres prefijos se reducen a solo uno. Como se observa en la siguiente figura. De esta manera ahorra espacio de almacenamiento en la tabla de enrutado y simplifica las decisiones de enrutado. Además se ven reducidas las rutas difundidas a routers vecinos. Fig. 5. Diagrama de red. Requisitos para desplegar VLSM Para poder utilizar VLSM el administrador de red debe configurar los equipos de red con protocolos que utilicen este tipo de división lógica como por ejemplo ● RIP V2 ● OSPF ● IS­IS ● EIGRP ● BGP Es importante notar que este tipo de protocolos no se utilizan en subredes simples, como las que están en los routers de las casas. Sino que se implementan en redes grandes como en los niveles de distribución. Este tipo de protocolos implementan un enrutamiento entre dominios sin clase o Classless Inter­Domain Routing (CIDR), con esto las subredes ya no tienen que tener una máscara fija. Explicación de VLSM El procedimiento para subnetear se puede resumir en los siguientes pasos: ● Dividir la red disponible en subgrupos posibles ● Ordenar las subredes que complen con los requerimientos en orden descendente colocando el departamento que ocupa más IPs de primero y dejando el que ocupa menos direcciones IP de último La mejor forma de entender esto es con un ejemplo. Se tiene a disposición la red clase C 192.168.12.0/24 y se deben cumplir las siguientes especificaciones: ● Dos redes con dos hosts ● Una red de 10 hosts ● Una red de 30 hosts En el diagrama de la figura 6 se puede observar esta topología. Fig. 6. Topología de red. Por ser máscara /24, se tienen 8 bits para jugar. Lo primero que se hace es analizar los posibles bloques (potencias de dos) que se pueden obtener con ésta máscara. Prefijo Máscara Host Tamaño de bloque /26 255.255.255.192 62 64 /27 255.255.255.224 30 32 /28 255.255.255.240 14 16 /29 255.255.255.248 6 8 /30 255.255.255.252 2 4 Así, corriendo los prefijos, se puede llegar a las combinaciones que están disponibles para esta red. Lo que sigue es organizar las especificaciones de la red de forma descendente y definir cuál bloque cumple (el bloque debe ser mayor que los hosts que se ocupan). ID de Red Prefijo Máscara Hosts Bloque Sobrantes Red A /27 255.255.255.224 30 32 2 Red B /28 255.255.255.240 10 16 6 Red C /30 255.255.255.252 2 4 0 Red D /30 255.255.255.252 2 4 0 Así, se puede elaborar la asignación de las redes, consecutivamente. ID de Red Máscara Subred Prefijo Red A 255.255.255.224 192.168.12. 0 /27 Red B 255.255.255.240 192.168.12. {0+32} = 192.168.12. 32 /28 Red C 255.255.255.252 192.168.12. {32+16} = 192.168.12. 48 /30 Red D 255.255.255.252 192.168.12. {48+4} = 192.168.12. 52 /30 Red XXX 255.255.255.XX 192.168.12. {48+4} = 192.168.12. 56 /XX Con esto, se aprovecha al máximo el espacio de red teniendo un excedente de 8 direcciones IP en las redes A y C. Es importante notar que aún quedan las siguientes direcciones desde la IP 192.168.12. {48+4} = 192.168.12. 56 hasta la 252 que es lo que provee la máscara principal /24. Fig. 7. Ejemplo de división con VLSM. Ventajas del uso de VLSM Se usa VLSM para poder subnetear una red ya subneteada, esto trae beneficios como por ejemplo: ● Se utiliza el espacio de direccionamiento de forma eficiente ya que se desperdician menos direcciones en comparación con el uso de una máscara de red fija. ● Es una solución temporal al problema de la disponibilidad de direcciones IPV4 ● Gracias a la posibilidad de realizar un diseño jerárquico se puede reducir el overhead en el router utilizando protocolos agregación de rutas. Que significa que VLSM es invisible a Internet Se debe a que los router de internet no necesitan tener en sus tablas todas las subredes existentes, sino que le asignan a un administrador de red (generalmente un ISP) un bloque de direcciones para que las reparta según sus especificaciones. Este aspecto es muy importante debido a que se ayuda a evitar el crecimiento en las tablas de enrutamiento de los routers de internet. Una ventaja de de esta “invisibilidad” es que los cambios en las subredes son controlados por los routers de esa subred y no por los de internet eliminando el overhead causado por la constante actualización de rutas internas de la subred/organización/país. Ejercicios de subneteo ● Crear 16 subredes de 192.168.0.0/16 De la máscara de red hay 16 bits libres. 11111111.11111111. 00000000.00000000 Con lo que se obtienen (216 / 16) − 2 = 4094 hosts disponibles para cada subred. Así, utilizando el total de bits para IPs disponibles en cada subred, incluyendo dirección de red y broadcast, se ocupan ln (4094 + 2) / ln 2 = 12 bits para cada subred, con lo que la máscada de cada red sería 32­12=20. ID de subred Subred Red 1 192.168.0.0/20 Red 2 192.168.16.0/20 Red 3 192.168.34.0/20 Red 4 192.168.48.0/20 Red 5 192.168.64.0/20 Red 6 192.168.80.0/20 Red 7 192.168.96.0/20 Red 8 192.168.112.0/20 Red 9 192.168.128.0/20 Red 10 192.168.144.0/20 Red 11 192.168.160.0/20 Red 12 192.168.176.0/20 Red 13 192.168.192.0/20 Red 14 192.168.208.0/20 Red 15 192.168.124.0/20 Red 16 192.168.140.0/20 ● Brinde en binario y decimal/xx las 16 subredes ID de subred Dirección / Máscara Subred en binario Red 1 192.168.0.0/20 11000000.10101000. 00000000.00000000 Red 2 192.168.16.0/20 11000000.10101000. 00010000.00000000 Red 3 192.168.34.0/20 11000000.10101000. 00100010.00000000 Red 4 192.168.48.0/20 11000000.10101000. 00110000.00000000 Red 5 192.168.64.0/20 11000000.10101000. 01000000.00000000 Red 6 192.168.80.0/20 11000000.10101000. 01010000.00000000 Red 7 192.168.96.0/20 11000000.10101000. 01100000.00000000 Red 8 192.168.112.0/20 11000000.10101000. 01110000.00000000 Red 9 192.168.128.0/20 11000000.10101000. 10000000.00000000 Red 10 192.168.144.0/20 11000000.10101000. 10010000.00000000 Red 11 192.168.160.0/20 11000000.10101000. 10100000.00000000 Red 12 192.168.176.0/20 11000000.10101000. 10110000.00000000 Red 13 192.168.192.0/20 11000000.10101000. 11000000.00000000 Red 14 192.168.208.0/20 11000000.10101000. 11010000.00000000 Red 15 192.168.124.0/20 11000000.10101000. 01111100.00000000 Red 16 192.168.140.0/20 11000000.10101000. 10001100.00000000 ● Determine las direcciones para Hosts para la subred 3 (muestre los primeros 3 hosts y los últimos dos hosts). Brinde la dirección de broadcast de la subred 3. Host IP del Host Host 3.01 192.168.34.1 Host 3.02 192.168.34.2 Host 3.03 192.168.34.3 Host 3.4092 192.168.47.252 Host 3.4093 192.168.47.253 Host 3.4094 192.168.47.254 Broadcast de subred 3 192.168.47.255 ● Ahora, divida en 16 subredes la subred 14 Ahora, se divide la subred 14 192.168.208.0/20 de 4096 direcciones IP en 16 subredes más, esto deja (212 / 16) − 2 = 254 hosts disponibles para cada subred. Así, utilizando el total de bits para IPs disponibles en cada subred, incluyendo dirección de red y broadcast, se ocupan ln (254 + 2) / ln 2 = 8 bits para cada subred, con lo que la máscara de cada red sería 32­8=24. ID de subred Subred Red 14.1 192.168.208.0/24 Red 14.2 192.168.209.0/24 Red 14.3 192.168.210.0/24 Red 14.4 192.168.211.0/24 Red 14.5 192.168.212.0/24 Red 14.6 192.168.213.0/24 Red 14.7 192.168.214.0/24 Red 14.8 192.168.215.0/24 Red 14.9 192.168.216.0/24 Red 14.10 192.168.217.0/24 Red 14.11 192.168.218.0/24 Red 14.12 192.168.219.0/24 Red 14.13 192.168.220.0/24 Red 14.14 192.168.221.0/24 Red 14.15 192.168.222.0/24 Red 14.16 192.168.223.0/24 ● Determine el espacio de direcciones de los hosts de la subred 3 como se indica en la figura (igual que punto c). Brinde la dirección de broadcast de esta subred 3 Host IP del Host Host 14.3.01 192.168.210.1 Host 14.3.02 192.168.210.2 Host 14.3.03 192.168.210.3 Host 14.3. 192.168.210.252 Host 14.3. 192.168.210.253 Host 14.3. 192.168.210.254 Broadcast de subred 14.3. 192.168.210.255 ● Divida en 8 subredes la subred 14 de la primera red La primera red es 192.168.0.0/20 que al subnetearla en 16 subredes iguales (para obtener la 14, esto debido a que 16 es el próximo número disponible en potencia 2 después de 8) se encuentra que la subred 14 está dada por 192.168.13.0/24 y a subnetear esta red entre 8 iguales se obtienen (28 / 8) − 2 = 30 hosts disponibles para cada subred. Así, utilizando el total de bits para IPs disponibles en cada subred, incluyendo dirección de red y broadcast, se ocupan ln (32 + 2) / ln 2 = 5 bits para cada subred, con lo que la máscara de cada red sería 32­5=27. ID de subred Subred Red 1.14.1 192.168.13.0/27 Red 1.14.2 192.168.13.32/27 Red 1.14.3 192.168.13.64/27 Red 1.14.4 192.168.13.96/27 Red 1.14.5 192.168.13.128/27 Red 1.14.6 192.168.13.160/27 Red 1.14.7 192.168.13.192/27 Red 1.14.8 192.168.13.224/27 Referencias [1] Feldmann, A., Cittadini, L., Mühlbauer, W., Bush, R., Maennel, O. Hierarchical Architecture for Internet Routing. [2] Malbotra, R. IP Routing. 2002 [3] “Variable length Subnet Mask Definition”. Tech Target. http://searchnetworking.techtarget.com/definition/variable­length­subnet­mask [4] “Cool Subnetting Tricks with Variable Length Subnet Mask”. Pluralsight Blog. http://blog.pluralsight.com/cisco­ccna­vlsm