Desarrollo

Se ha desarrollado una plataforma para la monitorización de escenarios de red vía web utilizando el framework Ruby on Rails. Esta plataforma permite a través de un navegador web definir un escenario de red donde se van a realizar las pruebas, arrancarlo y monitorizar las acciones que se desarrollan en el mismo.

Para poder utilizar la plataforma de monitorización es necesario estar registrado en el sistema. Por este motivo, la plataforma cuenta con un sistema de control de acceso que permite autenticar a los usuarios.

Un escenario de red puede estar formado por la conexión de distintos dispositivos de red: hubs, switches Ethernet, routers y máquinas finales.

La definición de un determinado escenario de red puede guardarse en un fichero para ser cargado posteriormente en la plataforma. Esta facilidad permite interrumpir una determinada prueba y continuarla en otro momento.

Una vez definido el escenario de red que vamos a utilizar para desarrollar una prueba, este escenario se ejecutará remotamente en un cluster de máquinas disponible. Antes de arrancar el escenario en las máquinas del cluster, podemos comprobar la disponibilidad de las máquinas para conocer si disponen de los recursos suficientes para poder arrancar dicho escenario.

La plataforma permite la ejecución en paralelo de diversas pruebas independientes que no interfieren entre ellas.

Para poder comenzar una prueba es necesario arrancar el escenario de red. El arranque de un escenario de red provocará la ejecución de una máquina virtual que emule el comportamiento de dicho dispositivo dentro del escenario de red definido. Las máquinas virtuales serán procesos que se ejecutan en el cluster de máquinas disponible para la realización de pruebas.

Una vez arrancado un determinado escenario cada uno de los dispositivos de comunicaciones involucrados en el escenario de red dispone de un terminal de control que permite la configuración y el seguimiento de las operaciones de red realizadas en el escenario.



Para poder monitorizar todas las acciones de comunicaciones que ocurren en un escenario de red se ha definido una nueva opción que viajará en el campo de opciones de todos los paquetes IP que se intercambien en el escenario.

Las opciones almacenarán información que permita reconstruir a posteriori que operaciones se han realizado dentro de un escenario. Esta información consiste en:
  • Identificador de paquete: es un úmero que identificará unívocamente cada uno de los paquetes enviados por uno de los dispositivos del escenario. Este identificador lo establece el nodo origen y no se verá afectado por ninguna de los dispositivos que reenvíe dicho paquete. Este valor está implementado como un contador generado por el emisor y se utilizará para analizar la información recopilada en un escenario de red y ordenar los diferentes paquetes IP que envía una determinada máquina.
  • Identificador de Lamport: es un identificador que basa su funcionamiento en el sistema de relojes lógicos diseñados por Lamport para la ordenación de eventos en sistemas distribuidos donde no es posible la sincronización de relojes. El identificador de Lamport es un contador software que se incrementa monótamente y cuyos valores no necesitan tener ninguna relación particular con ningún reloj físico. Se puede asignar un tiempo a todos los eventos de un sistema distribuido con las siguientes condiciones:
    • Si a ocurre antes que b en el mismo proceso, C(a) < C(b).
    • Si a y b son el envío y recepción de un mensaje, C(a) < C(b).
    • Para todos los evento relacionados a y b, C(a) es distinto de C(b).
La utilización de ambos identificadores permite reconstruir la secuencia de operaciones realizadas en un determinado escenario para facilitar las labores de detección y diagnóstico de problemas.