Práctica 8 Redes de Computadores RIP y OSPF Protocolos de enrutado Objetivos El objetivo de esta práctica es configurar y analizar las prestaciones de los protocolos de enrutado RIP (Routing Information Protocol) y OSPF (Open Shortest Path First) Descripción Un router de una red tiene que ser capaz de determinar cuál de sus puertos de salida es el más apropiado para enviar un paquete en función de la dirección de destino. El router toma esta decisión a partir de una tabla de reenvíos. El problema fundamental del enrutado es: ¿Cómo rellenan los routers sus tablas de reenvío? Los algoritmos de enrutado se encargan de construir las tablas de enrutado, y por lo tando las de reenvío. El problema básico está en encontrar el camino de menor coste entre dos nodos cualesquiera, donde el coste de un camino es igual a la suma de los costes de todos los tramos que lo componen. El enrutado se consigue en la mayoría de las redes ejecutando una serie de protocolos entre los nodos. Estos protocolos forman un algoritmo distribuido capaz de resolver el problema de encontrar el camino de menor coste en presencia de averías de nodos y enlaces y cambios en los costes de los diferentes tramos. Una de las clases principales de algoritmos de enrutado es el algoritmo de vector de distancia. Cada nodo construye un vector que contiene las distancias (costes) a todos los otros nodos y distribuye ese vector a sus vecinos más próximos. El protocolo RIP es el ejemplo canónico de un protocolo de enrutado construido en base a este algoritmo. Los routers que ejecutan RIP envían sus anuncios regularmente (por ejemplo, cada 30 segundos). Un router también envía un mensaje de actualización cada vez que una actualización desde otro nodo le haga cambiar su tabla de redireccionamiento. La segunda clase más importante de algoritmos son los basados en el estado de enlace. La idea de los algoritmos de estado de enlace es muy sencilla: Todos los nodos saben cómo alcanzar a los vecinos que tienen conectados directamente, y si nos aseguramos que todo este conocimiento se disemina a todos los nodos, entonces todos los nodos tendrán suficiente conocimiento como para construir un mapa completo de la red. Una vez construido el mapa completo, se puede decidir el camino mejor para cada destino. El cálculo de las rutas se hace según un algoritmo bastante conocido en teoría de grafos, el algoritmo del camino más corto de Dijkstra. En OSPF se introduce otra capa de jerarquía en el enrutado permitiendo a un dominio que cree particiones. Esto quiere decir que un router dentro de un dominio no necesita saber cómo alcanzar a todos los nodos de ese dominio, puede ser suficiente con saber cómo llegar a la zona correcta. De esta manera, se puede reducir la cantidad de información que se tiene que transmitir y almacenar en cada nodo. Además, OSPF permite que a rutas múltiples a un mismo destino se les asigne un mismo coste, de tal manera que el tráfico se reparta uniformemente entre ellas. En esta práctica se van a ver los protocolos RIP y OSPF. Se analizarán las tablas de enrutado que se generan y se observarán los efectos de averías en los enlaces y los mecanismos de reparto de la carga. RIP-Pasos Paso 1: Crear un proyecto nuevo 1. Inicia OPNET IT Guru Academic Edition Î Elige New del menu File. 2. Elige Project y pincha OK Î Llama al proyecto <tus iniciales>_RIP, y el escenario Sin_averia Î pincha OK. 3. En la ventana “Startup Wizard”: Initial Topology, asegurate que eliges Create Empty Scenario Î Pincha Next Î Elige Campus en la lista de tamaño de red Î Pincha Next tres veces Î Pincha OK. Paso 2: Crear y configurar la red Inicializar la red: 1. El diálogo Object Palette debería estar ahora sobre el espacio de trabajo del proyecto. Si no, ábrelo pulsando el botón . Asegúrate que en el menú desplegable está seleccionado internet_toolbox. 2. Coloca sobre el espacio de trabajo los siguientes objetos: un router ethernet4_slip8_gtwy y dos objetos 100BaseT_LAN. a. Para añadir un objeto de una paleta, pincha en su icono en la paleta Î mueve el ratón sobre el espacio de trabajo Î vuelve a pinchar con el ratón para colocar el objeto Î pincha con el botón derecho para acabar de colocar objetos. 3. Usa los enlaces bidireccionales 100BaseT para conectar los objetos que acabas de añadir igual que en la figura siguiente. Además renombra los objetos (botón derecho del ratón sobre el nodo Î Set Name). 4. Cierra el diálogo Object Palette. 5. Salva el proyecto. Configura el router: 1. Pincha con el botón derecho del ratón en Router1 Î Edit Attributes Î despliega la jerarquía IP Routing Parameters y habilita lo siguiente: Routing Table Export = Once at End of Simulation y asegúrate que Status = enabled. Esto le dirá al router que exporte su tabla de enrutado al final de la simulación al registro de simulación. 2. Pincha en OK y salva el proyecto. Añade el resto de redes: 1. Selecciona simultáneamente (con mayúsculas y el botón izquierdo) todos los objetos que tienes en el espacio de trabajo (un router, dos redes y dos enlaces). También puedes arrastrar una caja alrededor de ellos. 2. Aprieta Ctrl+C para copiar los objetos seleccionados y Crtl+V para pegarlos. 3. Repite el paso 2 tres veces para tener tres copias y renómbralos como en la figura. 4. Conecta los routers mediante enlaces PPP_DS3. Paso 3: Elegir estadísticas Para comprobar las prestaciones del protocolo RIP, vamos a elegir las siguientes estadísticas: 1. Pincha con el botón derecho en cualquier parte del espacio de trabajo del proyecto y elige Choose Individual Statistics del menú desplegable 2. En el cuadro de diálogo Choose Results, marca las siguientes estadísticas: a. Global Statistics Î RIP Î Traffic Sent (bts/sec). b. Global Statistics Î RIP Î Traffic Received (bits/sec). c. Nodes Statistics Î Route Table Î Total Number of Updates. 3. Pincha en OK y salva el proyecto. Paso 4: Configura la simulación Ahora vamos a configurar algunos parámetros de la simulación: 1. Pincha en para que aparezca la ventana Configure Simulation. 2. Escribe 10,0 minutos como tiempo de simulación. (cuidado con la coma) 3. Pincha en la pestaña Global Attributes y cambia los siguientes atributos: a. IP Dynamic Routing Protocol = RIP. Esto hace que RIP sea el protocolo de enrutado de todos los routers de la red. b. IP Interface Addressing Mode = Auto Addressed/Export. c. RIP Sim Efficiency = Disabled. Si se habilita este atributo, RIP parará al final del primer “RIP Stop Time”. Pero nosotros queremos que el protocolo siga actualizando la tabla de enrutado por si hubiera algún cambio en la red. (como veremos más adelante) 4. Pincha en OK y salva el proyecto. Paso 5: Duplica el escenario En la red que acabamos de crear, los routers construirán sus propias tablas de enrutado y no necesitarán actualizarlas, ya que no hemos simulado la avería de ningún enlace. En este escenario vamos a simular averías para poder comparar el comportamiento de los routers en los dos casos. 1. Selecciona Duplicate Scenario en el menú Scenarios y llámalo Avería Î Pincha OK. 2. Abre la paleta Object Palette pulsando . Selecciona la paleta Utilities en el menú desplegable. 3. Coloca un objeto Failure Recovery en el espacio de trabajo y llámalo Avería, como se muestra en la figura. Î Cierra el diálogo Object Palette. 4. Pincha con el botón derecho en el objeto Avería Î Edit Attributes Î Expande la jerarquía Link Failure/Recovery Specification Î Pon rows a 1 Î Pon los atributos de la fila que acaba de aparecer (row 0) como se ve en la figura. Esto hará que el enlace entre los nodos 2 y 3 se averíe 200 segundos tras comenzar la simulación. 5. Pincha en OK y salva el proyecto. Paso 6: Ejecutar la simulación Para ejecutar la simulación de los dos escenarios: 1. Ve al menú Scenarios Î Elige Manage Scenarios. 2. Cambia los valores de la columna Results a <collect> o <recollect> para los dos escenarios. 3. Pincha OK para ejecutar las dos simulaciones. Dependiendo de la velocidad del ordenador este paso puede llevar unos segundos. 4. Cuando las dos simulaciones hayan acabado, una por escenario, pincha Close 5. Salva el proyecto. Paso 7: Ver los resultados Compara el número de actualozaciones: 1. Selecciona Compare Results en el menú Results. 2. Cambia el menú desplegable de la parte inferior derecha del diálogo Compare Results a Stacked statistics como se muestra en la figura. 3. Selecciona la estadística Total Number of Updates para el router 2 y pincha en Show. 4. Deberían aparecer dos gráficos, uno por escenario. Pincha con el botón derecho en cada gráfico y selecciona Draw Style Î Bar. 5. Los gráficos que obtengas se deberían parecer a los siguientes. (puedes hacer zoom sobre los gráficos pinchando y arrastrando una caja sobre la zona que te interese ver). Obtén las direcciones IP de los interfaces: Antes de comprobar los contenidos de las tablas de enrutado, debemos determinar las direcciones IP de todos los interfaces de la red. Hay que recordar que estas direcciones se asignan automáticamente en la simulación, y que hemos programado el atributo IP Interface Addressing Mode para que exporte esta información a un archivo. 1. Del menú File elige Model Files Î Refresh Model Directories. Esto hace que OPNET IT Guru busque en los directorios de modelos y actualice su lista de archivos. 2. Del menú File elige Open Î Generic Data File Î <Tus iniciales>_RIP_sin averia-ip_addresses Î Pincha en OK. 3. A continuación puedes ver una parte del archivo de salida. Se pueden ver las direcciones IP asignadas a los interfaces del Router 1. Por ejemplo. El interfazde Router1 que está conectado a red11 tiene la dirección IP 192.0.0.1 (Nota: Los resultados pueden ser diferentes si no has colocado igual los nodos). La máscara de subred asociada a este interfaz indica que la dirección de la subred, a la que está conectado este interfaz es 192.0.0.0 (la AND lógica de la dirección IP y la máscara de subred). 4. Dibuja el esquema de tu red. Sobre el esquema escribe las direcciones IP asociadas a cada router y subred, obtenidas de la información del archivo que acabas de generar. Compara el contenido de las tablas de enrutado: 1. Para comprobar el contenido de las tablas de enrutado del router 2 (el enlace que se avería está entre el router 2 y el 3): i. Ve al menú Results Î Open Simulation Log Î expande la jerarquía de la izquierda como se ve en la figura Î Pincha en el campo COMMON ROUTE TABLE. 2. Repite el paso 1 para los dos escenarios. A continuación puedes ver parte del contenido de la tabla de enrutado del router 2 para los dos escenarios: Escenario sin_averia Escenario averia Cuestiones RIP 1. Obtén y analiza las gráficas que comparan el tráfico RIP de los dos escenarios. Asegúrate que cambias el estilo de los gráficos a barras. 2. Describe y explica el efecto de la avería del enlace que conecta el router 2 al router 3 en las tablas de enrutado. 3. Crea otro escenario como un duplicado de avería. Llámalo recuperación. En este nuevo escenario haz que el enlace averiado se recupere tras 400 segundos desde el inicio de la simulación. Genera y analiza la gráfica que muestra el efecto de esta recuperación en el número total de actualizaciones en la tabla de enrutado del router 2. Comprueba el contenido de la tabla del router 2 . Compara esta tabla con las generadas en los escenarios anteriores. OSPF-Pasos Atención: Para el correcto funcionamiento de esta parte de la práctica, es necesario cambiar la configuración regional del ordenador: InicioÆConfiguraciónÆPanel de ControlÆConfiguración regional La configuración que se debe utilizar es: Inglés (Estados Unidos) Paso 8: Crear un proyecto nuevo 1. Vuelve a la ventana de OPNET IT Guru Academic Edition Î Elige New del menú File. 2. Elige Project y pincha OK Î Llama al proyecto <tus iniciales>_OSPF, y el escenario Sin_areas Î Pincha OK. 3. En la ventana “Startup Wizard: Initial Topology”, asegúrate que eliges Create Empty Scenario Î Pincha Next Î Elige Campus en la lista de tamaño de red Î Pincha Next tres veces Î Pincha OK. Paso 9: Crear y configurar la red Inicializar la red: 1. El diálogo Object Palette debería estar ahora sobre el espacio de trabajo del proyecto. Si no, ábrelo pulsando el botón . Asegúrate que en el menú desplegable está seleccionado routers. a. Coloca en el espacio de trabajo ocho routers del tipo slip8_gtwy. 2. Cambia la configuración de la paleta para que contenga la internet_toolbox.Usa enlaces bidireccionales del tipo PPP_DS3 para conectar los routers. Cambia los nombres de los routers como en la figura siguiente. 3. Cierra la Object Palette y salva el proyecto. Configura los costes de los enlaces: 1. Necesitamos asignar los costes de los enlaces como en el grafo siguiente: 2. Al igual que muchos routers comerciales, los modelos de routers de OPNET aceptan un parámetro llamado reference bandwith para calcular el coste real, como sigue: Coste=(Reference bandwith)/(Ancho de banda del enlace) Donde el valor por defecto de Reference bandwith es 1.000.000Kbps. 3. Por ejemplo, para asignar un coste de 5 a un enlace, se le asigna un ancho de banda de 200.000 Kbps. Hay que tener en cuenta que ese no es el ancho de banda real del enlace en el sentido de velocidad de transmisión, sino simplemente un parámetro que se utiliza para calcular costes. 4. Para asignar los costes a los enlaces de nuestra red, haz lo siguiente: i. Selecciona todos los enlaces de tu red que tienen coste 5 en la figura anterior pinchándolos con la tecla mayúsculas apretada. ii. Selecciona el menú Protocols Î IP Î Routing Î Configure Interface Metric Information. iii. Escribe 200000 en el campo Bandwith (Kbps) Î Marca el botón Interfaces across selected links Î pincha OK. 5. Repite el paso 4 para todos los enlaces con un coste 10, escribiendo 100000 Kbps en el campo Bandwith (Kbps). 6. Repite el paso 4 para todos los enlaces con un coste 20, escribiendo 50000 Kbps en el campo Bandwith (Kbps). 7. Salva el proyecto Configura las demandas de tráfico: 1. Selecciona los routers Ay C. i. Selecciona el menú Protocolos Î IP Î Demands Î Create Traffic Demands Î marca el botón From Router A Î Mantén el color azul Î Pincha Create. Ahora deberías ver una línea azul que representa el tráfico entre los routers A y C. 2. Selecciona los routers B y H. i. Selecciona el menú Protocolos Î IP Î Demands Î Create Traffic Demands Î marca el botón From Router B Î Cambia el color a rojo Î Pincha OK Î Pincha Create. Deberías estar viendo las líneas de las demandas de tráfico como sigue: 3. Para ocultar estas líneas: Selecciona el menú View Î selecciona Demand Objects Î Selecciona Hide All. 4. Salva el proyecto. Configura e protocolo de enrutado y las direcciones: 1. Selecciona el menú Protocols Î IP Î Routing Î Configure Routing Protocols. 2. Marca la casilla OSPF Î Quita la marca de la casilla RIP Î Quita la marca de la casilla Visualize Routing Domains. 3. Pincha OK. 4. Selecciona RouterA y RouterB solo Î Selecciona el menú Protocols Î IP Î Routing Î Selecciona Export Routing Table for Selected Routers Î Pincha OK en el diálogo Status Confirm. 5. Selecciona el menú Protocols Î IP Î Addressing Î Selecciona Auto-Assign IP Addresses. 6. Salva el proyecto. Paso 10: Configura la simulación Ahora vamos a configurar algunos de los parámetros de la simulación: 1. Pincha en para que aparezca la ventana Configure Simulation. 2. Escribe 10.0 minutos como tiempo de simulación. (Atención, esta vez es un punto) 3. Pincha en OK y salva el proyecto. Paso 11: Duplica el escenario En la red que acabamos de crear, todos los routers están en el mismo nivel jerárquico (Una sola área). Además, tampoco hemos impuesto un equilibrado de la carga en ninguna ruta. Ahora vamos a crear dos nuevos escenarios. El primero definirá dos nuevas áreas además del área troncal (backbone). El segundo se configurará para equilibrar la carga para el tráfico entre los routers B y H . El escenario con áreas: 1. Selecciona Duplicate Scenario del menú Scenarios y dale el nombre areas Î Pincha en OK. 2. Área 0.0.0.1: i. Selecciona los tres enlaces que conectan los routers A, B y C pinchándolos mientras aprietas la tecla mayúsculas Î Selecciona el menú Protocols Î OSPF Î Configure Areas Î Asigna el valor 0.0.0.1 al area identifier Î Pincha OK. ii. Pincha con el botón derecho en RouterC Î Edit Attributes Î Expande la jerarquía OSPF Parameters Î Expande la jerarquía Loopback Interfaces Î Expande la jerarquía row0 Î Asigna 0.0.0.1 al valor del atributo Area ID Î Pincha OK. 3. Area 0.0.0.2 i. Pincha en cualquier parte del espacio de trabajo para deseleccionar los enlaces del paso anterior y repite el paso 2.i. para los enlaces que conectan los routers F, G y H. Asígnales el valor 0.0.0.2 en el campo Area Identifier. 4. Para visualizar las áreas que acabamos de crear, selecciona el menú Protocols Î OSPF Î Visualize areas Î Pincha en OK. La red debería quedar como la que se ve en la figura siguiente (podrías obtener colores diferentes). Nota: -El área que no has configurado es la troncal y su identificador es 0.0.0.0 El escenario equilibrado: 1. En el menú Scenarios, Switch to Scenario Î selecciona sin_areas. 2. Selecciona Duplicate Scenario del menú Scenarios y dale el nombre equilibrado Î Pincha en OK. 3. En el nuevo escenario, selecciona los routers B y H. 4. Selecciona el menú Protocols Î IP Î Routing Î Configure Load Balancing Options Î Asegúrate que la opción es Packet-Based y el botón Selected Routers está activo, como se ve en la figura Î Pincha OK. 5. Salva el proyecto. Paso 12: Ejecutar la simulación Para ejecutar la simulación para los tres escenarios a la vez: 1. Ve al menú Scenarios Î Selecciona Manage Scenarios. 2. Pincha en la fila de cada escenario y en el botón Collect Results. Esto cambiará los valores de la columna Results a <collect>. Mira la figura siguiente: 3. Al pinchar OK se ejecutarán los tres escenarios. 4. Cuando hayan acabado las tres simulaciones pincha Close y salva el proyecto. Paso 13: Ver los resultados El escenario Sin_Areas: 1. Vuelve al escenario Sin_Areas. 2. Para ver la ruta del tráfico entre el RouterA y el RouterC: Selecciona el menú Protocols Î IP Î Demands Î Display Routes for Cofigured Demands Î Expande las jerarquías como se muestra en la figura y selecciona RouterA Î RouterC Î Ve a la columna Display y elige Yes Î Pincha en Close. 3. La ruta resultante debería aparecer como en la imagen siguiente: Si no aparece la ruta, comprueba que la configuración regional está en Inglés (Estados Unidos) y vuelve a lanzar la simulación. 4. Repite el paso 2 para mostrar la ruta de la demanda de tráfico entre el RouterB y el RouterH. En la siguiente imagen se puede ver esta ruta, aunque dependiendo del orden en el que hayas creado la red también se puede haber elegido la otra ruta posible con el mismo peso: RouterBÆRouterCÆRouterEÆRouterGÆRouterH El escenario Areas: 1. Cambia al escenario Areas. 2. Muestra la ruta de la demanda entre el RouterA y el RouterC. La ruta es la siguiente: 3. Salva el proyecto El escenario Equilibrado: 1. Cambia al escenario Equilibrado. 2. Muestra la ruta de la demanda entre el RouterB y el RouterH. La ruta es la siguiente: 3. Salva el proyecto. Cuestiones 1. Explica por qué en los escenarios Areas y Equilibrado se obtienen diferentes rutas a las que se observan en Sin_Areas. 2. Usando el registro de simulación (Simulation Log), examina la tabla de enrutado que se ha generado en el RouterA para cada uno de los escenarios. Explica los valores asignados en la columna Metric de cada ruta. Pistas: - - Mira la sección “Ver los resultados” de la parte de la práctica dedicada al protocolo RIP. Necesitarás asignar al atributo global IP Interface Addressing Mode el valor Auto Addressed/Export y volver a ejecutar la simulación. Para determinar la información de las direcciones IP para todos los interfaces, deberás abrir el archivo del tipo Generic Data File que contiene las direcciones IP y está asociado con el escenario correspondiente. 3. OPNET permite examinar la base de datos del estado de los enlaces que usa cada router para construir el grafo dirigido de la red. Examina en esta base de datos la información del RouterA en el escenario Sin_Areas. Comprueba como el RouterA utiliza esta base de datos para crear un mapa de la topología de la red y dibujarlo. Pistas: - - - Para exportar la base de datos de estados de enlaces, Edita los atributos del router y asigna al parámetro Link State Database Export (En Processes) el valor Once at End of Simulation. Tendrás que asignar al atributo global IP Interface Addressing Mode el valor Auto Addressed/Export. Esto te permitirá comprobar las direcciones IP asignadas automáticamente a los interfaces de la red. Tras volver a ejecutar la simulación, puedes comprobar la base de datos de estados de enlaces abriendo el registro de simulación (desde el menú Results). La base de datos está en ClassesÆOSPFÆLSDB_Export. 4. Crea otro escenario como una copia del escenario Sin_Areas. Llámalo P4_Sin_Areas_Avería- En este escenario simula una avería del enlace que conecta al RouterD y al RouterE. Haz que esta avería se active 100 segundos tras el comienzo de la simulación. Vuelve a ejecutar la simulación. Comprueba cómo la avería afecta al contenido de la base de datos de estados de enlaces y a la tabla de enrutamiento del RouterA. (Tendrás que inhabilitar el atributo global OSPF Sim Efficiency. Esto permitirá a OSPF actualizar la tabla de enrutamiento cuando haya un cambio en la red) 5. Para los dos escenarios: Sin_Areas y P4_Sin_Areas_Avería, habilita la recogida de la estadística Traffic Sent (bits/sec). Es una de las estadísticas globales en OSPF. Vuelve a ejecutar las simulaciones y obtén la gráfica que compara los resultados en los dos escenarios. Comenta el resultado.