UNIVERSIDAD TECNICA FEDERICO SANTA MARIADEPARTAMENTO DE ELECTRONICA
VALPARAISO - CHILE
“ PLATAFORMA WEB PARA UNIFICAR LAADMINISTRACION DE EQUIPOS Y SERVICIOS
DE REDES DE COMPUTADORES ”
DAVID SAMUEL RODRIGUEZ ALBORNOZ
MEMORIA DE TITULACION PARA OPTAR AL TITULO DE
INGENIERO CIVIL TELEMATICO.
Profesor Guıa: Agustın Gonzalez Valenzuela.
Profesor Correferente: Nicolas A. Jara Carvallo.
25 de Junio de 2012
A mis Padres por su incondicional apoyo, y su
forma de impartir una disciplina de oro.
A mis abuelos, el gran Tata Enrique, y mis
abuelitas Bili y Alola que no pudieron
estar f�sicamente, pero siempre las tengo a
mi lado, al igual que al legendario abuelito
Samuel. A mis padrinos, T�a Ten y T�o
Lucho, grandes exponentes de la familia.
A mis hermanos, que ayudaron a forjar mi
esp�ritu para no convertirme en una mala
oveja. A todos mis familiares que siempre
creyeron en mi capacidad. A mis
profesores, companeros, amigos, vecinos,
novia. Gracias a todos, hoy despego como
un hombre nuevo.
“PLATAFORMA WEB PARA UNIFICAR LAADMINISTRACION DE EQUIPOS Y SERVICIOS DE
REDES DE COMPUTADORES”
Memoria para optar al tıtulo de Ingeniero Civil Telematico
DAVID SAMUEL RODRIGUEZ ALBORNOZ
Profesor Guıa: Agustın Gonzalez Valenzuela
Profesor Correferente: Nicolas A. Jara Carvallo
25 de Junio de 2012
Resumen
La motivacion de este proyecto es resolver el problema que existe en materia de con-
figuracion de equipos y servicios de red, la falta de uniformidad. Al no existir un estandar
de configuracion, distintos fabricantes desarrollan soluciones de hardware que se configu-
ran de una forma especial y que llevan a precisar de manuales especiales o capacitaciones
para configurar equipos.
Este proyecto busca unificar la forma en que los administradores de red interactuan
con los equipos y servicios de redes a traves de una plataforma web unica que permita rea-
lizar operaciones de administracion y control independiente del fabricante de los equipos.
Ademas se busca que la plataforma sea facilmente escalable, a diferencia de las aplicacio-
nes actuales. Otro objetivo es lograr una arquitectura que permita admitir nuevos modulos
y tecnologıas independiente del lenguaje de programacion en la cual fueron desarrolladas.
Para lograr tal nivel de escalabilidad, la arquitectura se basa en un middleware orien-
tado a mensajes, que permite comunicacion asıncrona entre procesos que se encuentran
II
implementados en lenguajes distintos por medio de colas de mensajes. Gracias a esto,
se logra desligar al servidor web de las aplicaciones de bajo nivel, permitiendo que las
capacidades de la plataforma se basen en llamados a servicios. La comunicacion entre
servidor web y servicios se realiza mediante el estandar de mensajerıa SOAP. Los servicios
encargados del control de los
equipos de red utilizan un protocolo de comunicacion remota para ingresar los parame-
tros de configuracion enviados por el usuario terminal ( o administrador ) desde la interfaz
web.
Finalmente, se logro como resultado una solucion que, por medio de la interaccion
entre un usuario administrador y la pantalla de un computador personal o smarthphone,
logra configurar y administrar equipos de red de distintos fabricantes y modelos de forma
rapida y unificada por medio de una misma interfaz web.
Palabras Clave: Uniformidad, Plataforma web, middleware orientado a mensajes,
administrar equipos de red.
III
“WEB PLATFORM TO UNIFY THE ADMINISTRATION OFCOMPUTER NETWORKING DEVICES AND SERVICES”
Undergraduate thesis for the degree of Ingeniero Civil Telematico
DAVID SAMUEL RODRIGUEZ ALBORNOZ
Guide Professor: Agustın Gonzalez Valenzuela
Coreferential Professor: Nicolas A. Jara Carvallo
25 de Junio de 2012
Abstract
The motivation of this proyect is to solve the existing problem in terms of network
devices and services configuration, the lack of uniformity. Because there isn't a standard
configuration, different hardware manufacturers develop solutions that are configured by
special ways and require special manuals and capacitation to set up the devices.
This project seeks to unify the way that network administrators interact with network
devices and services through a single web platform that allows management operations
and control, independent of the manufacturer of the devices. It is also sought that the
platform be easily scalable, unlike current applications. Another objective is to achieve
an arquitecture that allows support for new modules and technologies independent of the
programming language in which they were developed.
To achieve this level of scalability, the architecture is based on a message-oriented
middleware, which enables asynchronous communication between processes that are im-
plemented in different languages through message queues. Thanks to this, it is possible to
decouple the web server from the low level applications, allowing the platform capabilities
be based on service calls. The communication between web server and services is done
through the standard SOAP messaging. The services responsible for monitoring network
devices use a remote communication protocol to enter the configuration parameters
IV
sended by the terminal user (or administrator) from the web interface.
Finally, a solution was achieved which, by means of the administrator user interaction
and personal computer or smartphone, manages to configure and administrate network
devices from different manufacturers and models quickly and unified through a single
web interface.
Keywords: Uniformity, web platform, message-oriented middleware, manage net-
work devices.
V
Glosario
WIND: Web Interface for Network Devices.
XML: Extensible Markup Language.
STOMP: Simple Text Oriented Message Protocol.
HTTP: Hyper Text Trasfer Protocol.
HTML: HyperText Markup Language.
TCP: Transmission Control Protocol.
PHP: PHP Hypertext Preprocessor.
SOAP: Simple Object Access Protocol.
JMS: Java Message Service.
ActiveMQ: Active Message Queue.
Servidor Apache: Servicio contenedor de documentos HTML para su entrega mediante
requerimientos realizados con el protocolo HTTP.
API: Application Programming Interface.
UML: Unified Modeling Language.
Indice general
Resumen II
Abstract IV
Glosario VI
1. Introduccion 11.1. Equipos que operan en una red de computadores . . . . . . . . . . . . . 11.2. Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1. WIND - Web Interface for Network Devices . . . . . . . . . . . 51.3.2. Esquema basico de la solucion . . . . . . . . . . . . . . . . . . 6
2. Estado del Arte 82.1. Herramientas de administracion/control . . . . . . . . . . . . . . . . . . 8
2.1.1. Java Device Manager . . . . . . . . . . . . . . . . . . . . . . . . 82.1.2. Cisco Security Device Manager (SDM) . . . . . . . . . . . . . . 9
2.2. Herramientas de administracion . . . . . . . . . . . . . . . . . . . . . . 10
3. Tecnologıas Involucradas 123.1. Servidor de aplicaciones HTTP Apache . . . . . . . . . . . . . . . . . . 123.2. Framework Jquery/JQueryUI/Jquery Mobile . . . . . . . . . . . . . . . . 133.3. Middlewares y servidores de aplicaciones . . . . . . . . . . . . . . . . . 13
3.3.1. ActiveMQ - Un Middleware Orientado a Mensajes . . . . . . . . 153.4. Bibliotecas y Frameworks necesarios . . . . . . . . . . . . . . . . . . . . 173.5. Virtualizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.1. Dynamips/Dynagen . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.2. Tunctl - UML Utilities . . . . . . . . . . . . . . . . . . . . . . . 19
VII
Indice general (Indice general)
4. Diseno de la Solucion 224.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2. Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.1. Protocolo Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.2. Protocolo SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2.3. Protocolos Openwire y STOMP . . . . . . . . . . . . . . . . . . 27
5. Implementacion 295.1. Comunicacion entre Procesos . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.1. Funcionamiento de los procesos Wind y Agente en la arquitectura 305.1.2. Generacion de requerimientos por parte del servidor web. . . . . 35
6. Verificacion de resultados y objetivos. 386.1. Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2. Soporte de equipos y caso de uso . . . . . . . . . . . . . . . . . . . . . . 40
7. Conclusiones y Trabajo Futuro 457.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Referencias 47
A. Arranque de la Plataforma WIND 49A.1. Servidor Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49A.2. Middleware Apache ActiveMQ . . . . . . . . . . . . . . . . . . . . . . . 50
B. Instalacion de bibliotecas y equipos de prueba 51B.1. Agregando extencion STOMP a PHP . . . . . . . . . . . . . . . . . . . . 51B.2. Virtualizacion de equipos CISCO . . . . . . . . . . . . . . . . . . . . . . 52
C. Configuraciones Especiales 53C.1. Archivo de configuracion ActiveMQ . . . . . . . . . . . . . . . . . . . . 53C.2. Configuracion de Routers Virtualizados . . . . . . . . . . . . . . . . . . 54
VIII
Indice de figuras
1.1. Modelo ISO/OSI. Capas de red en que operan los dispositivos. . . . . . . . . . 2
1.2. Diseno del logotipo de la aplicacion . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Diagrama basico de la solucion. . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Screenshot del programa Java Device Manager. . . . . . . . . . . . . . . . . 9
2.2. Screenshot del programa Cisco Security Device Manager. . . . . . . . . . . . 9
3.1. Taxonomıa de un Middleware. . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. Logotipo del Middleware ActiveMQ. . . . . . . . . . . . . . . . . . . . . . 15
3.3. Consola web ActiveMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4. Ejemplo generico. Cuatro subredes conectadas mediante un bridge. . . . . . . . 19
3.5. Escenario de pruebas usando las tecnologıas descritas. . . . . . . . . . . . . . 20
4.1. Arquitectura detallada de la solucion propuesta. . . . . . . . . . . . . . . . . 22
4.2. Estructura de un mensaje SOAP. . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3. Ejemplo de un requerimiento SOAP. . . . . . . . . . . . . . . . . . . . . . . 26
4.4. Ejemplo de una respuesta SOAP ante la request enviada. . . . . . . . . . . . . 27
5.1. Ejemplo ilustrativo de un proceso Wind creando cola de mensajes en el broker. . 31
5.2. Ejemplo de mensaje SOAP recibido en la cola. . . . . . . . . . . . . . . . . . 32
5.3. Estructura XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
IX
Indice de figuras (Indice de figuras)
5.4. Mensaje SOAP para solicitud de colas de tipo Routers. . . . . . . . . . . . . . 35
6.1. Escritorio servidor Wind Ubuntu 10.04. . . . . . . . . . . . . . . . . . . . . 39
6.2. Protocolos conectores STOMP y Openwire. . . . . . . . . . . . . . . . . . . 39
6.3. Consola web ActiveMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.4. Portal interfaz web Wind para la seleccion de tipos de equipos. . . . . . . 41
6.5. Lista de equipos disponibles. . . . . . . . . . . . . . . . . . . . . . . . . 41
6.6. Pagina de control de Router Cisco, modelo c7200, id=1080. . . . . . . . . . . 42
6.7. Pop-up de control de interfaces del Router seleccionado. . . . . . . . . . . . . 43
6.8. Configuracion de la interfaz FastEthernet 1/0. . . . . . . . . . . . . . . . 43
6.9. Ventana de Interface Status. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
A.1. Screenshot consola Ubuntu 10.04. . . . . . . . . . . . . . . . . . . . . . . . 50
X
Capıtulo 1
Introduccion
Las redes de computadores hoy en dıa significan un pilar fundamental en las comu-
nicaciones globales, y transportan �ujos de informacion por todo el planeta. Para formar
una red de computadores es necesario utilizar herramientas de hardware y software que
facilitan esta labor. Las herramientas de hardware utilizadas en una red, como cualquier
aparato electronico, cuentan con una vida util y un comportamiento que no esta ajeno a
las probabilidades de fallas. Es por eso que la labor de los administradores de red y los in-
genieros es tan importante, ayudan a salvaguardar la salud de los equipos, la informacion
traficada a traves de ellos y ademas a desarrollar soluciones de tipo software que ayuden
en esta tarea.
1.1. Equipos que operan en una red de computadores
Dentro de la materia de Redes de Computadores, existe un modelo descriptivo, organi-
zado en capas, que ayuda a comprender que procesos se llevan a cabo en la comunicacion
entre las distintas entidades que operan en una red. Este modelo se muestra en la figura
1.1 y recibe el nombre de modelo ISO/OSI:
1
1.1 Equipos que operan en una red de computadores (Introduccion)
Figura 1.1: Modelo ISO/OSI. Capas de red en que operan los dispositivos.(Computer Networking, 6e James F. Kurose - Keith W. Ross)
Dentro de la familia de dispositivos que pueden existir en una red de computadores,
destacan:
Routers: Los routers son elementos que permiten transportar paquetes de informacion
a traves de una red. Los routers estan sujetos a algoritmos propiamente tales que
le permiten dialogar con routers vecinos y determinar la ruta mas adecuada para
transportar la informacion. En el ambito de redes, se dice que un router opera en la
capa 3 del modelo OSI.
Firewalls: Los cortafuegos ayudan en el ambito de la seguridad para frenar o establecer
un obstaculo ante trafico indeseado o malicioso que intenta penetrar en la red.
2
1.1 Equipos que operan en una red de computadores (Introduccion)
Hub: Los HUB son dispositivos que se asemejan a un “splitter” de corriente, es decir,
replican el trafico entrante en todas sus salidas (broadcast).
Switches: Los switches permiten extender la red mediante la conmutacion de paquetes.
Similar a un HUB pero inteligente, ya que reconoce direcciones MAC y por lo tanto
puede tomar la decision de puertos de salida (no broadcast).
Opera en capa de enlace del modelo OSI (aunque tambien existen los switches de
capa 3).
Servers: Los servidores poseen variadas funciones, entre muchas otras, la funcion de
alojar la informacion de la red.
En el universo de la administracion de redes, hay ciertos elementos que hay que tener
en cuenta a la hora de operar con estos dispositivos, por ejemplo, todos los dispositivos
de red pertenecen a un fabricante que implementa sus funcionalidades de acuerdo a los
estandares propietarios de la empresa donde se fabricaron. Ademas todos funcionan de
manera diferente y por ende, se administran de una forma especial. Por ello muchas veces
se requiere de capacitaciones especiales para los trabajadores que operan con ellas, lo cual
converge a una necesidad de “homogeneidad” de las interfaces de control de los dispositi-
vos. Todos los dispositivos de red requieren en algun momento de la atencion presencial y
no remota del administrador de red, y esto es algo inevitable. Los dispositivos estan vincu-
lados con entidades tanto de software como de hardware, y ademas otros elementos fısicos
como por ejemplo, los cables de par trenzado. Existen herramientas web que usualmente
son utilizadas para administrar los equipos de red.
3
1.2 Problema (Introduccion)
1.2. Problema
Para operar con equipos de red, ya sean routers, firewalls o servidores entre otros, es
necesario tener conocimientos previos y especializados, ya que al no existir un estandar
de configuracion, cada fabricante disena arquitecturas y comandos de manera distinta para
operar los equipos.
Generalmente estos comandos de configuracion para cada equipo son ingresados a
traves de una linea de comandos o bien cada equipo cuenta con una interfaz grafica pro-
pia de configuracion, o una solucion de software que permita conectarse a esa maquina
para poder configurarla de manera sencilla, soluciones que suelen funcionar solo para ese
modelo o fabricante en particular.
Las empresas desarrolladoras de equipos de red como por ejemplo Cisco, suelen adap-
tar sus productos y tecnologıas a los nuevos requerimientos tanto de los usuarios como
de las empresas que proveen servicios (VTR, Claro, Entel, etc.). Los sistemas de confi-
guracion de los equipos Cisco cambian de acuerdo a estos requerimientos, por lo que un
determinado modelo Cisco no necesariamente dispone del mismo esquema sintactico para
configurarse como modelos anteriores o posteriores a el.
Resumiendo, los problemas detectados y como se enfrenta el problema de configura-
cion son:
1. No Existe un estandar de configuracion para los equipos de diferentes fabricantes, lo
cual requiere conocimientos especializados para configurar equipos de un fabricante
determinado.
2. La falta de uniformidad en los comandos para gestionar equipos de un mismo fabri-
4
1.3 Propuesta (Introduccion)
cante pero con distintas versiones de sistema operativo.
3. Usualmente la terminal de configuracion de lo equipos es a traves de un CLI ( Com-
mand line interface ), lo cual para usuarios mas inexpertos pueda resultar engorroso
de operar.
4. Las soluciones orientadas a la configuracion de equipos de red basadas en interfaces
graficas actuales no funcionan para todos los fabricantes de equipos.
1.3. Propuesta
Se propone disenar una plataforma web, en la cual se puedan agregar equipos de red
de distintos modelos y fabricantes, y configurarlos a traves de una interfaz visual, que sea
visible tanto desde un computador de escritorio, como desde un dispositivo movil, como
un smartphone o tablet. La idea de esto es unificar la forma en la que el usuario configura
los equipos, y abre las puertas para que un usuario con menor conocimiento de equi-
pos de un fabricante determinado pueda configurarlos de la misma manera que los demas.
Ademas de esto, facilitar el trabajo para los administradores mas experimentados agregan-
do la comodidad de poder configurar estos dispositivos sin tener que estar conectandose
a la consola de control de cada equipo, y utilizando aparatos que no requieran del uso de
cables, un ejemplo de ello, configurar un set o rack de equipos a traves de la pantalla de
un ipad o iphone.
1.3.1. WIND - Web Interface for Network Devices
WIND ( Web Interface for Network Devices ) es el nombre de la aplicacion propuesta
que pretende unificar los estilos de configuracion y monitoreo de equipos de red.
5
1.3 Propuesta (Introduccion)
Figura 1.2: Diseno del logotipo de la aplicacion
( Creado usando el programa Inkscape en Ubuntu 10.10 )
La version preliminar que se pretende generar dispone de algunas pocas opciones
genericas de configuracion para 2 modelos de equipos de red, con una arquitectura basa-
da en un middleware orientado a mensajes, aplicacion web basado en html-javascript-php
para la vista y la generacion de requerimientos por parte del usuario cliente, aplicaciones
java de bajo nivel para manejar las peticiones del usuario, la conexion con los equipos de
red que se quieren administrar y la interpretacion de los requerimientos generados por el
usuario para traducirlos a comandos y acciones sobre estos equipos.
1.3.2. Esquema basico de la solucion
La arquitectura basica de la solucion es mostrada en la figura 1.3:
Figura 1.3: Diagrama basico de la solucion.
6
1.3 Propuesta (Introduccion)
Para la realizacion de este proyecto se estudiaron las siguientes tecnologıas de las cuales
se daran detalles mas adelante:
ActiveMQ: Message Broker que permite la comunicacion de procesos mediante
mensajes de texto.
JqueryMobile: Framework para aplicaciones web javascript para equipos moviles
y de escritorio.
Dynagen/Dynamips: Simulador de escenarios y equipos de red Cisco.
Bibliotecas de Java para soporte de comunicaciones con ActiveMQ.
Bibliotecas de Java Commons para el soporte de variados protocolos de red (Telnet).
Protocolos SOAP, Telnet, OpenWire, STOMP.
Otro de los puntos que ataca esta propuesta, es crear un producto que sea lo suficien-
temente modular para que pueda ser reutilizado usando la misma logica para administrar
otro tipo de dispositivos o para usarse en otro tipo de negocios, como por ejemplo:
Redes de sensores
Aprovisionamiento de usuarios
Domotica
GUI's Web de diversos programas ( Ej: GUI Matlab Web )
etc.
7
Capıtulo 2
Estado del Arte
Actualmente en Chile y el mundo existen herramientas de administracion de equipos
de red pagados y open-source. Todos son instalables y algunos estan integrados en los
mismos equipos.
2.1. Herramientas de administracion/control
A continuacion se mostraran algunas herramientas que ofrecen soluciones de adminis-
tracion/control y bajo que condiciones opera segun cada fabricante.
2.1.1. Java Device Manager
Controlador y gestionador de dispositivos de red. Este software open-source facilita la
configuracion de equipos NORTEL para que el usuario no tenga que lidiar con el terminal
del mismo. Hasta donde se sabe esta aplicacion no tiene soporte web, y requiere de su
instalacion en Microsoft Windows.
8
2.1 Herramientas de administracion/control (Estado del Arte)
Figura 2.1: Screenshot del programa Java Device Manager.
2.1.2. Cisco Security Device Manager (SDM)
SDM es la herramienta desarrollada por Cisco, que cumple exactamente con los pun-
tos que ataca este proyecto, pero solamente para sus equipos. Es un applet accesible a
traves del navegador. Actualmente viene instalado por defecto en los equipos nuevos de
Cisco. Ofrece una alta capacidad de configuracion para los equipos, como por ejemplo,
las configuraciones de interfaces de red.
Figura 2.2: Screenshot del programa Cisco Security Device Manager.
9
2.2 Herramientas de administracion (Estado del Arte)
2.2. Herramientas de administracion
Otras herramientas destacadas que se alejan del objetivo principal del proyecto pero
que tambien cumplen rol de administracion a traves de la web son:
Nagios: Sistema de monitorizacion muy potente que permite identificar problemas tan-
to de hardware como de software. Permite detectar problemas para ası mitigar los
efectos que pueda tener dentro de una empresa u organizacion. Suele utilizarse para
administrar la salud de los equipos de red.
PRTG - Paessler Router Traffic Grapher : Software que permite la monitorizacion de
redes de manera segura y permite controlar traficos de entrada y salida de diferentes
dispositivos de red que soporte protocolo SNMP. Dentro de las posibilidades destaca
la integracion de datos historicos para realizar analisis de ancho de banda durante
dıas, semanas o anos entre otros. Actualmente PRTG es pagado y tambien cuenta
con una aplicacion para dispositivos moviles.
Cacti: Cacti es una aplicacion web escrita en PHP. Permite el despliegue de graficos
en tiempo real, y esta orientado al monitoreo del estado de equipos (temperatura,
voltaje, velocidad, trafico, etc.).
Pandora FMS: Otro software de codigo abierto para monitorizar sistemas, aplicaciones
y servicios. Tambien tiene soporte de base de datos para realizar analisis historicos.
En las ultimas versiones se incluyeron soportes y consolas web para Smartphones.
Con respecto a todo lo mencionado y a las tecnologıas existentes, lo que este proyecto
intenta agregar es el concepto de control a traves de una interfaz comoda y minimalista,
que unifique los estilos de configuracion de los equipos de red independiente de la marca/-
modelo y de la sintaxis de configuracion que esto conlleva, ofreciendo opciones basicas
10
2.2 Herramientas de administracion (Estado del Arte)
que sean comunes para todos los equipos, y en la medida que el usuario requiera nuevas
funcionalidades estas puedan ser agregadas sin necesidad de crear una nueva aplicacion,
manteniendo la plataforma.
Ademas, se busca que la arquitectura de la plataforma Wind permita agregar nuevos
equipos a la lista de configuraciones junto con los que ya se encuentran en el sistema, sin
la necesidad de detener la plataforma.
11
Capıtulo 3
Tecnologıas Involucradas
3.1. Servidor de aplicaciones HTTP Apache
El servidor apache es una tecnologıa de codigo abierto para las plataformas Unix,
Microsoft Windows y Macintosh entre otras que implementa protocolo HTTP. Apache
es utilizado principalmente para el envıo de paginas web a traves de Internet en caso
de recibir peticiones de documentos HTML que aloja en su servidor. Apache suele estar
integrado a otras tecnologıas. Una de estas integraciones es conocida como LAMP:
Linux: Plataforma/Sistema operativo.
Apache: Servidor Web.
Mysql: Gestor de base de datos.
Php: Lenguajes de programacion.
12
3.2 Framework Jquery/JQueryUI/Jquery Mobile (Tecnologıas Involucradas)
3.2. Framework Jquery/JQueryUI/Jquery Mobile
Jquery es un framework javascript1 que ofrece una API completa que simplifica enor-
memente el desarrollo de aplicaciones web. Ofrece dentro de otras opciones, el manejo
de estilos dinamicos, generacion de contenido dinamico a traves de ajax y mucho mas.
Ademas de esto, Jquery-UI utiliza las potencialidades de la API de Jquery para crear inter-
faces visuales unicas y �uidas, que sacan el mayor provecho del navegador web utilizado.
Jquery Mobile es un framework de desarrollo orientado a aplicaciones web-moviles,
creado a partir de los anteriores Jquery/JqueryUI. Ofrece un sistema unificado basado en
HTML5 para la mayorıa de las plataformas moviles existentes ( IOS, Android, BlackBerry,
WindowsPhone, etc. ), es �exible y ofrece elementos visuales prefabricados facilmente
modificables y una variada cantidad de funciones para manejar eventos propios de los
dispositivos moviles.
3.3. Middlewares y servidores de aplicaciones
Dentro del mundo de los servicios en materia de redes, son conocidos los servidores
de aplicaciones. Los servidores de aplicaciones son una componente de una red de compu-
tadores que tiene la tarea de ejecutar ciertas aplicaciones cuando el usuario lo requiera. Un
ejemplo son los comunmente conocidos servidores web.
Un servidor de aplicaciones integra en la mayorıa de los casos un Middleware, un
software que permite la interaccion entre aplicaciones de software o hardware indepen-
dientes. Los Middleware se situan entre la capa de aplicacion y la capa de red del modelo
1Javascript: Lenguaje de programacion ejecutado del lado del cliente, a diferencia de PHP que que lohace en el servidor
13
3.3 Middlewares y servidores de aplicaciones (Tecnologıas Involucradas)
OSI y ofrecen una abstraccion de software y comunicacion, lo que resulta ideal para gene-
rar soluciones distribuidas. Originalmente fue concebido para la interaccion de software
entre arquitecturas nuevas con otras plataformas mas antiguas o entre sistemas operativos
heterogeneos.
Figura 3.1: Taxonomıa de un Middleware.
Algunos Middleware destacados dentro de la categorıa de integracion de la figura 3.1 son:
Orientados a Procesos: Utilizan comunicacion sıncrona entre procesos. Opera remota-
mente mediante un cliente-stub y un servidor-skeleton. Basicamente, el stub encap-
sula el mensaje que se desea enviar al servidor, el cual contiene los parametros con
el metodo al cual se quiere acceder y que previamente esta creado en el servidor-
skeleton. El skeleton desencapsula, lee los parametros del metodo al cual se esta in-
vocando, realiza la peticion para correr el metodo, acepta el resultado retornado por
la funcion invocada y escribe el valor retornado de regreso al stub.
Orientados a objetos: Este tipo de middleware es una extension del anterior, ya que so-
porta comunicacion asıncrona y transacciones distribuidas. Java RMI es un ejemplo,
ya que permite la invocacion remota de objetos contenidos en otra maquina virtual
de java. Otros casos de Middleware orientados a objetos son JavaBeans, DCOM, y
CORBA.
14
3.3 Middlewares y servidores de aplicaciones (Tecnologıas Involucradas)
Orientados a mensajes: Usualmente llamados MOM ( Middleware Oriented Message).
En este caso la comunicacion entre aplicaciones se efectua mediante publicacion/-
subscripcion de mensajes. Un cliente puede publicar mensajes en una cola contenida
en el servidor MOM (MessageBroker). Los clientes que esten subscritos a dicha co-
la recibiran el mensaje enviado por el publicador. El servidor MOM se asegura de
que el mensaje sea entregado a sus subscriptores, por lo que se podrıa ver al servidor
como un cartero.
3.3.1. ActiveMQ - Un Middleware Orientado a Mensajes
ActiveMQ es un broker de mensajes open source bajo la licencia de Apache. Acti-
veMQ fue concebido para ser multiplataforma, tanto por la parte de sistemas operativos,
como de los lenguajes que puede manejar, esto implica que puede realizarse una comuni-
cacion entre procesos que fueron creados a partir de lenguajes de programacion distintos
u otros paradigmas. ( ej. comunicacion php/java, c++/java, delphy/java , etc ). ActiveMQ
permite la comunicacion indirecta y asıncrona entre procesos y asegura la entrega de los
mensajes, incluso, si uno de los procesos receptores no esta disponible en el momento en
que un mensaje les fue enviado.
Figura 3.2: Logotipo del Middleware ActiveMQ.
Apache ActiveMQ implementa todas las funcionalidades de JMS ( Java Message Ser-
vice ), una API creada por Sun Microsystems para la utilizacion de colas de mensajes entre
15
3.3 Middlewares y servidores de aplicaciones (Tecnologıas Involucradas)
aplicaciones, y cumple el rol de JMS Provider, encargado de manejar las sesiones y colas
creadas en este sistema. JMS implementa 2 modelos de comunicacion:
1. Punto a Punto: Comunicacion basica entre 2 clientes, el cliente que envıa el men-
saje y el que esta dispuesto a recibirlo. El cliente productor envıa los mensajes a una
cola FIFO2 que hace referencia al cliente consumidor.
2. Modelo Publicador/Subscriptor: Modelo enfocado a varios clientes, donde algu-
nos clientes son publicadores de informacion, tambien llamados ”topicos”, y por
otro lado los clientes que son consumidores de estos topicos. A diferencia del mo-
delo anterior, varios clientes puede consumir un topico en particular. Similar al con-
cepto de modelo Uno a Muchos en materia de bases de datos.
ActiveMQ provee las bibliotecas necesarias para conectarse a cualquier aplicacion Ja-
va y C++ a traves del protocolo de conexion nativo de ActiveMQ, OpenWire.
Otros clientes pueden implementar de una manera mas sencilla la conexion con el
middleware mediante el protocolo de conexion STOMP 3 con la limitacion de que este
protocolo no permite la utilizacion de todas las potencialidades que Openwire ofrece, solo
implementa el modelo basico de creacion de colas y consumidores, no es posible crear
colas de mensaje temporales u otras operaciones mas complejas en el broker. ActiveMQ
posee una interfaz web para administrar las colas creadas en el broker, lo cual facilita el
desarrollo de aplicaciones basados en clientes ActiveMQ y la depuracion de los mensajes
que se envıan a traves del broker. Entrega informacion detallada de cuales son las co-
las que actualmente tienen consumidores, cuantos mensajes han encolado y cuantos han
despachado, si existen mensajes pendientes, etc.
2First in, first out: Logica de colas de eventos donde el primer evento en llegar, es el primero en atenderse.3Simple (or Streaming) Text Oriented Message Protocol
16
3.4 Bibliotecas y Frameworks necesarios (Tecnologıas Involucradas)
Figura 3.3: Consola web ActiveMQ .
3.4. Bibliotecas y Frameworks necesarios
Para la realizacion de este proyecto, fueron necesarias las siguientes bibliotecas y fra-
meworks:
Bibliotecas de conexion ActiveMQ openwire-java.
Bibliotecas de conexion ActiveMQ stomp-php.
Bibliotecas de utilidades Apache-Commons ( necesario para la utilizacion de fun-
ciones Telnet en java ).
Bibliotecas necesarias para la utilizacion de Framework Jquery Mobile.
Framework de programacion en java NetBeans.
Otras opciones y configuraciones adicionales del broker ActiveMQ se encuentran ex-
plicadas en el Anexo C.
17
3.5 Virtualizacion (Tecnologıas Involucradas)
3.5. Virtualizacion
Para la creacion del proyecto fue necesario utilizar ciertas herramientas que permitie-
ran virtualizar equipos de hardware e interfaces de red reales, de tal forma de que no se
dependiera de un espacio fısico de trabajo y fuera mas sencilla la realizacion de pruebas sin
causar accidentes en estos. Durante la busqueda de una herramienta de virtualizacion se
encontro la existencia de 2 que, funcionando en conjunto, ofrecen la posibilidad de montar
los sistemas operativos de routers Cisco, estas herramientas son Dynamips y Dynagen.
3.5.1. Dynamips/Dynagen
Dynamips : Es un simulador de router Cisco creado por Christophe Fillot. Permite cargar
imagenes de IOS4 Cisco y simular su ejecucion en el ordenador.
Segun las palabras de su propio creador, este simulador de equipos Cisco se creo con
el objetivo de:
Ser usado como una plataforma de formacion y estudio, para lograr familiari-
zarse con los dispositivos de Cisco.
Realizar pruebas de las caracterısticas especiales de los IOS de Cisco.
Comprobar configuraciones de forma rapida para implementar sin riesgos en
routers reales.
Evidentemente, este simulador no pretende remplazar a los enrutadores reales, pero
sirve de practica para quienes quieran rendir los examenes de certificacion CCNA/C-
CNP/CCIE.4Cisco IOS o Internetwork Operating System, es el software que utiliza la gran mayorıa de los routers y
switches de Cisco.
18
3.5 Virtualizacion (Tecnologıas Involucradas)
Dynagen: Por otra parte, Dynagen es un front-end basado en texto que utiliza ”hyper-
visor”, modo de comunicacion con Dynamips. La gran utilidad de Dynagen es que
permite agregar facilmente nuevas IOS con sus configuraciones iniciales respecti-
vas, y ofrece una sintaxis simple para interconectar routers, bridges, ethernet swit-
ches, etc. Tambien es posible ejecutar telnet hacia los routers montados con la inter-
faz de dynagen.
3.5.2. Tunctl - UML Utilities
Tunctl es una herramienta del paquete UML Utilities del sistema operativo Linux
Ubuntu 10.10 ( en otras distribuciones tambien esta disponible ) que permite hacer bridges
o puentes de red logicos. Un bridge es un sistema de capa 2 del modelo OSI, que permite
la interconexion de segmentos de red, permitiendo la transferencia de datos de una red
hacia otra sin necesidad de un router.
Figura 3.4: Ejemplo generico. Cuatro subredes conectadas mediante un bridge.
Opera mediante una tabla de direcciones MAC que son detectadas en cada segmento de
la red dividida, y cuando uno de los nodos desea enviar un dato hacia otro nodo, el bridge
copia la trama a las otras subredes, las cuales eliminan o filtran dicha trama en caso de no
tener esa subred como destino.
19
3.5 Virtualizacion (Tecnologıas Involucradas)
Gracias a Tunctl es posible crear interfaces TUN/TAP. Estas permiten virtualizar inter-
faces de red que se comportan como una tarjeta de red, permitiendoseles asignar direccion
ip y mascara de subred.
Y ahora, ¿ De que nos sirve Tunctl , las interfaces virtuales y los simuladores de
IOS Cisco ?. Como se explico en el punto anterior, Dynagen permite el crear una confi-
guracion de red a partir de las IOS cargadas sobre Dynamips, y tambien, permite realizar
conexiones logicas entre interfaces de red de los routers montados virtualmente ( para el
caso de Cisco, interfaces FastEthernet/Ethernet ) y las interfaces virtuales ( TUN/TAP )
que hallamos creado en la maquina donde se este ejecutando Dynamips/Dynagen.
Gracias a todas estas herramientas y tecnologıas, se dispone de todo lo necesario para
realizar pruebas de conexion con equipos virtuales y el desarrollo de la aplicacion pro-
puesta.
El siguiente diagrama muestra un posible escenario de pruebas, ver figura 3.5:
Figura 3.5: Escenario de pruebas usando las tecnologıas descritas.
20
3.5 Virtualizacion (Tecnologıas Involucradas)
Como muestra la figura 3.5, a traves de Dynamips, se virtualizan 2 router Cisco, mode-
los c7200 y c3620 respectivamente, y mediante tunctl dos interfaces de red virtuales, tap0
y tap1, conectados a la interfaz f0/0 de los router por medio de una conexion logica usando
Dynagen. Junto a esto, los servicios web y el middleware ActiveMQ para la comunicacion
entre interfaz web y las aplicaciones a desarrollar en el proyecto.
21
Capıtulo 4
Diseno de la Solucion
4.1. Arquitectura
La arquitectura Wind consta de 3 partes clave, la parte de creacion de requerimientos
por parte del usuario a traves de la interfaz web (Capa Vista / Generacion de requerimien-
tos), la parte de procesos y equipos, y el intermediario de los mensajes entre la interfaz
web y los equipos a administrar, del cual esta encargado ActiveMQ (Core). La arquitectura
propuesta se muestra en la figura 4.1:
Figura 4.1: Arquitectura detallada de la solucion propuesta.
22
4.1 Arquitectura (Diseno de la Solucion)
Los modulos involucrados en la arquitectura son:
Dispositivos terminales: Son los equipos que el usuario administrador utilizara para el
control de los equipos de red. Pueden ser dispositivos moviles y equipos de escrito-
rio, como un computador personal, pc, notebooks, smarthphones, etc.
Servidor Apache: Encargado de alojar la interfaz web y todo lo relacionado con capa
vista. Incluye modulos para la creacion de mensajes y conexion con ActiveMQ.
ActiveMQ Message Broker: A grandes rasgos, ActiveMQ es un intermediario entre la
interfaz visual web y los equipos de red. El analogo de ActiveMQ es un “cartero”,
acumula cartas con mensajes y los envıa a los destinatarios que corresponda.
Agente: Proceso encargado de informar que equipos y servicios de red se encuentran
disponibles actualmente en el sistema.
Procesos Wind: Desde una perspectiva de alto nivel, un proceso Wind es el representante
de un equipo de red. Por lo cual se entiende que por cada equipo nuevo que se
quiera integrar al sistema, existira un nuevo proceso Wind. Ademas tienen la tarea
de interpretar todos los mensajes que tengan como destino el equipo del cual son
representantes y comunicarle el mensaje que fue recibido en un lenguaje que ellos
entiendan.
Equipos: Son los componentes de red que se desean administrar y controlar.
Esta arquitectura tiene la caracterıstica de que permite agregar nuevos equipos sin
necesidad de detener el funcionamiento de los que ya se encuentran integrados en la pla-
taforma web de configuracion, ya que funcionan de manera independiente y dependen
solamente del intermediario de mensajes ActiveMQ.
23
4.2 Protocolos (Diseno de la Solucion)
Los detalles sobre la comunicacion entre ActiveMQ y los distintos procesos involucra-
dos se encuentran explicados a mas bajo nivel en el capıtulo 5.
4.2. Protocolos
Para poder llevar a cabo la comunicacion entre distintos dispositivos y procesos que se
ejecutan en la arquitectura de la solucion, es necesario tener claro el concepto de protocolo.
Protocolo de comunicacion es un conjunto de reglas y secuencias de mensajerıa que se
lleva a cabo para entablar una relacion entre entidades que, en este caso conforman una
red.
Como es de esperar, para poder llevar a cabo esta propuesta, es necesario establecer
que reglas y metodos de comunicacion, asociadas a un protocolo, son necesarios para hacer
que el sistema ofrezca una modularidad tal que permita integrar dispositivos de cualquier
tipo.
4.2.1. Protocolo Telnet
Telnet es un protocolo que permite a los usuarios acceder a dispositivos de forma
remota usando conexion TCP. Se encuentra estandarizado a traves de la norma RFC 0854-
0855. Telnet se basa en el concepto de “Terminal Virtual de Red “ (NVT, Network Virtual
Terminal) , que es un dispositivo imaginario que ofrece una representacion intermedia de
un terminal, que tiene el objetivo de eliminar la necesidad ( tanto de parte del usuario
cliente que desea entablar la comunicacion, como del servidor que se desea controlar y
que proporciona el servicio de conexion ) de guardar informacion de las caracterısticas del
terminal y las convenciones asociadas a su manejo.
24
4.2 Protocolos (Diseno de la Solucion)
Para poder utilizar Telnet en la consola de comandos, se utiliza Telnet seguido de la
direccion ip de la maquina con la cual se desea trabajar. Se recomienda utilizar Telnet solo
en ambientes locales, ya que la informacion enviada por la red no es encriptada y viajan
como texto plano.
En la arquitectura de la solucion, se utiliza el protocolo Telnet para comunicar los
procesos Wind y los equipos de red que se desean administrar localmente.
4.2.2. Protocolo SOAP
El protocolo SOAP ( Protocolo simple de acceso a objetos ) es un protocolo estandar
auspiciado por la w3c. SOAP esta basado en XML, y fue concebido para el intercambio
de objetos estructurados en arquitecturas distribuidas a traves de cualquier protocolo de
transporte ( como por ejemplo HTML, SMTP, JMS, etc ). SOAP es un protocolo derivado
de XML-RPC, protocolo de llamados a procedimientos remotos.
SOAP fue disenado para entregar informacion minuciosa acerca de que se esta envian-
do, en cambio XML-RPC, fue disenado para ser sencillo pero lo hace menos ductil. Por
dar un ejemplo, SOAP admite entre otras cosas, el tipo de codificacion de caracteres (
UTF-8, UTF-16, etc ).
El mensaje SOAP se estructura en base a 3 elementos basicos, SOAP Envelop, SOAP
Header, SOAP Body, ver figura 4.2:
25
4.2 Protocolos (Diseno de la Solucion)
Figura 4.2: Estructura de un mensaje SOAP.
SOAP Envelope : Es la envoltura del mensaje ( sobre ). Todos los mensajes parten
desde este elemento raız.
SOAP Header: La cabecera del mensaje, usado para enviar informacion adicional
sobre el contenido del mensaje (tipos de datos definidos por la aplicacion entre
otros). Su uso no es obligatorio.
SOAP Body: Es el cuerpo del mensaje que contiene lo que se desea enviar.
Un ejemplo de mensajerıa SOAP se muestra en la figura 4.3 (en este ejemplo el header
fue omitido):
Figura 4.3: Ejemplo de un requerimiento SOAP.
26
4.2 Protocolos (Diseno de la Solucion)
Basicamente el mensaje se traduce en que se solicita informacion de una persona de-
terminada, y una respuesta a dicho requerimiento podrıa ser como se muestra en la figura
4.4:
Figura 4.4: Ejemplo de una respuesta SOAP ante la request enviada.
Este proyecto escoge SOAP como estructura principal de la mensajerıa entre la interfaz
web y los procesos que estan a cargo de la comunicacion con los equipos de red (sabiendo
que la comunicacion entre interfaz web y estos procesos es indirecta, ya que los mensajes
son entregados a los destinatarios por ActiveMQ). Si bien no se aprovechan todas las
bondades y funcionalidades que este protocolo pueda brindar, se utiliza para otorgar mayor
escalabilidad a la aplicacion y pueda lograrse de una manera estandar agregar nuevas
capacidades tanto de seguridad como de los servicios futuros que puedan integrarse a
la plataforma.
4.2.3. Protocolos Openwire y STOMP
Tanto Openwire como STOMP son comunmente llamados “wire protocols”. Permi-
ten establecer conexiones con el broker ActiveMQ para el envıo de mensajes JMS. Esta
arquitectura utiliza SOAP/JMS para mensajerıa entre servidor Web-broker y aplicaciones
Java-ActiveMQ.
27
4.2 Protocolos (Diseno de la Solucion)
Openwire es el protocolo de comunicacion nativo de ActiveMQ y esta disenado para
un completo control sobre el broker, ademas de tener un alto rendimiento y utilizar de
mejor manera los recursos de la red. Existen bibliotecas Java que utilizan este protocolo,
como tambien en C++. Openwire es un protocolo complejo, transforma objetos a arreglos
de bytes y viceversa. Cada arreglo de bytes recibe el nombre de “command”. Cada uno de
estos sirve para realizar una operacion especifica en ActiveMQ, como establecer sesiones,
creacion de colas, manejo de recursos, etc.
A diferencia de Openwire, STOMP ( Simple Text Oriented Messaging Protocol o Pro-
tocolo simple de mensajerıa orientada a texto ) es un protocolo basado en envıo de men-
sajes en texto plano y no ofrece el nivel de control sobre el broker que ofrece Openwire,
pero a cambio de eso ofrece mayor simpleza y permite un rapido desarrollo de clientes
que usan este protocolo.
La mensajerıa utilizada por Stomp para establecer conexiones y enviar mensajes es la
siguiente:
CONNECT: Establecer conexion con el broker.
SUBSCRIBE/UNSUBSCRIBE: subscribirse/desubcribirse a una cola del broker.
SEND: Enviar mensajes de texto a una determinada cola del broker.
ACK: Aviso de mensaje exitosamente recibido.
DISCONNECT: Desconexion del broker.
STOMP es utilizado como protocolo de conexion entre el servidor web y el broker Acti-
veMQ, a traves de modulos desarrollados en PHP que implementan esta mensajerıa.
28
Capıtulo 5
Implementacion
En este capıtulo se explicaran como operan los metodos y funciones clave implemen-
tados en los distintos lenguajes para operar con el middleware ActiveMQ y de que forma
este logra comunicar finalmente la interfaz web con los servicios implementados en Java
para la administracion de equipos de red.
Basado en la arquitectura propuesta y los elementos re�ejados en ella, el proceso de
implementacion acarrea:
La estructura de los requerimientos SOAP que el usuario terminal genera desde la
interfaz web.
Como el servidor web y las aplicaciones se conectan con el broker de mensajes
ActiveMQ.
La logica de los mensajes que seran enviados a los procesos que estan a cargo de los
equipos de red y como responden estos procesos a los mensajes luego de ejecutar
las acciones sobre el equipo del cual estan a cargo.
29
5.1 Comunicacion entre Procesos (Implementacion)
5.1. Comunicacion entre Procesos
ActiveMQ esta basado en JMS ( Java Message Service ) como logica de comunicacion
entre pares, por lo cual, la creacion de mensajes por parte del usuario de la plataforma web
como del servicio que maneja los mensajes ( procesos Wind ) se basaran en una logica de
colas de mensajes.
ActiveMQ cumple el rol de proveedor de sistema de mensajes JMS, y es el encargado
de administrar las colas de mensajes. Sobre estas colas existen los conceptos de:
Message Consumers ( Consumidores ) : Encargados de extraer los mensajes de
una determinada cola a la cual estan subscritos.
Message Producers ( Productores ): Encargados de crear e insertar mensajes en
una determinada cola.
Gracias al modelo de productor-consumidor y a que ActiveMQ soporta conexiones
a traves de protocolos STOMP ( para implementaciones PHP ) y Openwire( Java ), es
posible establecer comunicacion indirecta entre la interfaz web y los procesos Wind que
controlan los equipos de red.
5.1.1. Funcionamiento de los procesos Wind y Agente en la arquitec-
tura
Asumiendo que el broker de mensajes esta en funcionamiento, uno de los objetivos de
cada proceso Wind ( Wind.java ), es crear una cola de mensajes en el broker ( de acuerdo
a sus parametros de entrada ) que haga referencia al equipo del cual esta a cargo.
Los parametros principales que un proceso Wind requiere como argumento son:
30
5.1 Comunicacion entre Procesos (Implementacion)
Type: Relacionado con el tipo de dispositivo (ej: Routers, Firewalls, Switches, etc).
Manufacturer: Fabricante del dispositivo (ej: Cisco, 3Com, Nortel, Dell, etc).
Model: Modelo del dispositivo.
ID: Identificador del equipo.
IP: Direccion Ip del equipo a administrar.
Argumentos adicionales estan asociados al password de Telnet/Root de los equipos o
a nombres de usuario en caso de que los equipos los manejen.
El nombre de la cola asociada al equipo quedara re�ejada en el broker con la siguiente
estructura:
1 / queue / Type : M a n u f a c t u r e r : Model : ID
Figura 5.1: Ejemplo ilustrativo de un proceso Windcreando cola de mensajes en el broker.
Una vez creada, el proceso Wind pasa a convertirse en un consumidor de esta cola, por
lo que cualquier mensaje que llegue a esta sera inmediatamente extraıda e interpretada por
el proceso. Los mensajes recibidos usan el estandar SOAP. Las funciones u operaciones
recibidas estaran contenidas en el body del mensaje SOAP, ver figura 5.2:
31
5.1 Comunicacion entre Procesos (Implementacion)
Figura 5.2: Ejemplo de mensaje SOAP recibido en la cola.
Los Tags que contienen el nombre de la funcion que se quiera ingresar a los equipos
de red pueden poseer n argumentos ( ejemplos de argumentos estan re�ejados el la figura
como arg1 y arg2).
Los procesos Wind disponen de un documento XML donde se especifica que pasos de-
ben seguir de acuerdo a la funcion y argumentos contenidos en el mensaje SOAP recibido
y dependiendo del modelo del equipo que estan administrando por medio de Telnet.
Un ejemplo de la estructura de dicho documento XML se muestra en la figura 5.3:
Figura 5.3: Estructura XML
Como puede verse en este ejemplo, la es-
tructura del documento XML consta de un
elemento raız llamado funciones, que contie-
ne una lista nodos de nombre funcion1, fun-
cion2, etc. Cada uno de estos nodos que re-
presentan las funciones, contienen sub-nodos
de nombre modelo1, modelo2, etc. En pa-
labras simples, cada funcion se ejecutara de
manera distinta dependiendo del modelo.
Para el caso de este proyecto, se entiende que los pasos senalados en este ejemplo
32
5.1 Comunicacion entre Procesos (Implementacion)
en realidad representan los comandos a ingresar por medio de Telnet a la consola del
equipo modelo-X. Estos comandos o pasos, en determinados casos, pueden contener otros
elementos ( tags ) asociados a argumentos requeridos por el comando. Por dar un ejemplo,
si se desea configurar una interfaz de red, es de esperar que el mensaje SOAP recibido
contenga 3 argumentos mınimos junto a la funcion de configuracion correspondiente:
El nombre de la interfaz de red que quiera configurar
La direccion ip que se le quiere asignar a dicha interfaz de red.
La mascara de subred.
Si el proceso Wind se encuentra con tags en los pasos leıdos de una determinada fun-
cion contenida en el XML, asume que esos parametros estaran incluidos con el mismo
nombre en el mensaje SOAP recibido.
Para que una aplicacion en Java realice una conexion con ActiveMQ para realizar
operaciones de creacion de colas y envıo de mensajes utiliza principalmente 2 objetos:
ConnectionFactory: Objeto usado para entablar la comunicacion con el proveedor
de sistema de mensajes (en este caso ActiveMQ), y establecer sesiones de produc-
tores o consumidores sobre una determinada cola de destino.
Destination: Objeto que permite la creacion de colas de destino y hace referencia
a las mismas.
Estos objetos son la base de la comunicacion entre aplicaciones Java y el broker Ac-
tiveMQ por medio del protocolo nativo Openwire. Para poder establecer conexiones con
java solo se requiere instanciar el objeto ActiveMQConnectionFactory con la direccion
33
5.1 Comunicacion entre Procesos (Implementacion)
del broker como argumento y el puerto donde se atenderan las conexiones que usen el
protocolo Openwire, por ejemplo a traves de un cliente Java:
1 c o n n e c t i o n F a c t o r y =
new Act iveMQConnec t ionFac to ry ( ” t c p : / / l o c a l h o s t :61616 ” ) ;
3 c o n n e c t i o n = c o n n e c t i o n F a c t o r y . c r e a t e C o n n e c t i o n ( ) ;
c o n n e c t i o n . s t a r t ( ) ;
A partir del objeto connection es posible crear nuevas sesiones para instanciar destinos,
productores y consumidores.
Para crear una cola de nombre Routers: CISCO:C7200:1080:
s e s s i o n = c o n n e c t i o n . c r e a t e S e s s i o n ( ) ;
2 d e s t i n a t i o n = s e s s i o n . c r e a t e Q u e u e ( ” R o u t e r s : CISCO : C7200 :1080 ” ) ;
Una vez creado el objeto destination, podemos crear productores o consumidores que
envıen o consuman mensajes de esta cola del broker. Para crear un consumidor de mensa-
jes en java se hace de la siguiente forma:
MessageConsumer consumer = s e s s i o n . c r e a t e C o n s u m e r ( d e s t i n a t i o n ) ;
2 consumer . s e t M e s s a g e L i s t e n e r ( t h i s ) ;
La clase donde se crea el consumidor debe agregar la interfaz MessageListener para
implementar el metodo “onMessage(Message msg)”. Si un mensaje llega a la cola de la
cual el objeto consumer es consumidor, inmediatamente se ejecutara el metodo onMessage
con el mensaje recibido como argumento, el cual se interpreta como SOAP para realizar las
operaciones que la clase estime conveniente. Para el caso de los procesos Wind, el metodo
onMessage esta implementado especıficamente para crear una conexion Telnet con los
equipos del cual estan a cargo para la insercion de comandos ( leıdos del documento
XML segun el modelo del equipo ) en la consola de estos. Para el caso del Agente (
ActiveMQAgent.java ), el metodo onMessage esta implementado para manejar mensajes
34
5.1 Comunicacion entre Procesos (Implementacion)
SOAP relativos a consultas, especıficamente sobre que colas se encuentra disponibles en
el broker. Un ejemplo de una consulta de colas SOAP recibido por el Agente se muestra
en la figura 5.4:
Figura 5.4: Mensaje SOAP para solicitud de colasde tipo Routers.
El metodo onMessage del Agente interpreta este requerimiento como la ejecucion de
la funcion getQueues con argumento “Routers”, la cual retorna las colas de tipo Routers
que existen en el broker.
Para poder comunicar resultados, tanto de las operaciones Telnet ejecutadas por los
procesos Wind como del Agente informante de colas, se requiere de una cola a la cual
responder en el broker para que posteriormente el mensaje sea consumido desde esta por
los metodos PHP del servidor web y formateado para su despliegue en la interfaz web. Esta
cola debe estar incluida en la cabecera de los requerimientos emitidos desde el servidor
web con el nombre de reply-to.
5.1.2. Generacion de requerimientos por parte del servidor web.
Como se menciono en el punto anterior, el proceso Agente es el encargado de infor-
marle al servidor web a traves de ActiveMQ los equipos disponibles para administrar. Lo
que se gana con esto es, mas alla de seleccionar el equipo sobre el cual se quieran realizar
35
5.1 Comunicacion entre Procesos (Implementacion)
operaciones, es seleccionar una cola que hace referencia a un equipo determinado y que
es un proceso Wind determinado.
Para crear los modulos de conexion entre el servidor web y ActiveMQ se utiliza el
lenguaje interpretado PHP. Se escoge este lenguaje debido a que permite a los progra-
madores crear aplicaciones complejas con una curva de aprendizaje relativamente corta.
Asumiendo que PHP cuenta con las extensiones STOMP, para conectarse al broker Acti-
veMQ, primero hay que crear el objeto conector STOMP ( similar al ConnectionFactory
en java ) con la direccion del broker ActiveMQ y el puerto donde se atenderan conexiones
que usen protocolo STOMP:
$stomp = new Stomp ( ” t c p : / / l o c a l h o s t :61613 ” ) ;
Este objeto implementa metodos para la subscripcion a colas y el envıo de mensajes a
una cola determinada. Para la creacion de mensajes SOAP se instancia la clase soapObject
contenida en soapObj.php y se invoca el metodo createMsg() con el Tag ( nombre funcion
) a enviar en el body, los argumentos del Tag y el contenido en caso de utilizarlo.
Por ejemplo, los pasos para consultar al Agente que colas de tipo Routers existen en el
sistema, por medio de PHP es el siguiente:
1. Primero se crea el mensaje SOAP con el tag getQueues con contenido Routers:
1 $soapObj = new SoapObjec t ( ) ;
$soap msg =
3 $soapObj−>c rea t eMsg ( ” ge tQueues ” , ” t y p e = ' i n f o ' ” , ” R o u t e r s ” ) ;
2. Acabamos de crear un mensaje SOAP con el siguiente Tag contenido en el body del
mensaje :
1 <ge tQueues t y p e = ' i n f o '>R o u t e r s< / ge tQueues>
36
5.1 Comunicacion entre Procesos (Implementacion)
3. Finalmente el mensaje esta preparado para su envıo a una determinada cola del bro-
ker. El mensaje getQueues esta dirigido al Agente (con nombre de cola ActiveM-
Queue ):
1 $stomp−>send ( ” ActiveMQueue ” , $soap msg , $ h e a d e r ) ;
Los mensajes son creados y enviados desde el servidor web por medio del protocolo
STOMP usando clientes PHP STOMP, pero la orden de emision del mensaje es gatillada
por los distintos eventos que el usuario terminal ( que utiliza un PC o dispositivo movil)
pueda generar a traves de la interfaz web ( capa vista ).
Los eventos son atrapados usando bibliotecas de javascript jquery y transformados a
requerimientos HTTP, usando metodos GET y POST para la solicitud y envıo de parame-
tros al servidor.
Independiente de como este disenada la interfaz web y que framework javascript se
utilice para atrapar eventos, lo relevante es que los requerimientos HTTP y parametros
enviados por POST o GET a los procesos PHP del servidor web para la creacion de los
mensajes SOAP, sean consecuentes con lo que los procesos Wind ( Wind.java ) esperan
encontrar en el documento XML para realizar las operaciones sobre los equipos.
37
Capıtulo 6
Verificacion de resultados y objetivos.
En este capıtulo se revisara como se cumplen los objetivos planteados de acuerdo a
algunos casos de uso que corroboren lo que se explico en la parte de implementacion y
diseno de la solucion.
Los objetivos planteados son:
1. Implementacion de un Servidor contenedor de Aplicaciones con middleware orien-tado a mensajes.
2. Brindar tecnologıa necesaria para el control de al menos 2 tipos de fabricantes dis-tintos o 2 modelos distintos de un mismo fabricante por medio de una interfaz web.
3. Reportar el estado de operacion de equipos y servicios a traves de la interfaz web.
4. La plataforma web admitira acceso tanto vıa dispositivos moviles como computadorpersonal.
Para corroborar los objetivos se revisaran capturas de pantalla y casos de uso con que
re�ejen el correcto funcionamiento de la plataforma.
38
6.1 Middleware (Verificacion de resultados y objetivos.)
6.1. Middleware
El servidor que contara con las aplicaciones Java y middleware orientado a mensajes
cuenta con sistema operativo Ubuntu 10.04. Seguido este mismo se levanta el servicio
de middleware, se corrobora esto a traves del navegador Mozilla Firefox con la siguiente
URL donde se levanta el administrador web del broker http://localhost:8161/
admin:
Figura 6.1: Escritorio servidor Wind Ubuntu 10.04.
Ademas el middleware ActiveMQ debe soportar los protocolos conectores tanto de
conexiones Openwire ( para aplicaciones Java), como conexiones STOMP provenientes
del servidor Web ( PHP ), se puede comprobar esto en la pestana Connections de la
interfaz web, ver figura 6.2:
Figura 6.2: Protocolos conectores STOMP y Openwire.
39
6.2 Soporte de equipos y caso de uso (Verificacion de resultados y objetivos.)
6.2. Soporte de equipos y caso de uso
La interfaz web, en conjunto con el servidor Apache, tiene que ser capas de recopilar
informacion de que equipos ( asociados a una cola de procesos Wind ) hay actualmente
en el sistema y brindar soporte para 2 modelos distintos de equipos de una misma marca
o bien 2 marcas distintas de un tipo de equipo en particular.
Para este caso, se implemento la solucion para brindar soporte a 2 modelos de Routers
Cisco, la razon de ello se debe a que dynamips y dynagen permiten virtualizar solamente
modelos de equipos Cisco, aunque si se realizaron pruebas exitosas de conexion y coman-
dos con equipos 3Com reales usando la misma plataforma a bajo nivel usando java y php
en el laboratorio de Administracion de Redes de Telematica.
Como ya se explico en el capıtulo de virtualizacion, usaremos dynagen/dynamips junto
con tunctl para levantar equipos virtuales Cisco modelos c7200 y c3620. Luego de esto y
habiendo ejecutado el Agente y los procesos Wind para cada equipo, podemos corroborar
la presencia de las colas de los 3 procesos en la consola web de ActiveMQ, mostradas en
la figura 6.3:
Figura 6.3: Consola web ActiveMQ.
Veamos un caso de uso desde un dispositivo terminal iPad, que abarque desde la se-
leccion de un equipo Router para configurar la direccion ip de una de sus interfaces de red
40
6.2 Soporte de equipos y caso de uso (Verificacion de resultados y objetivos.)
( asumiendo que previamente se levanto algun proceso Wind desde el lado del servidor y
que el broker de mensajes ActiveMQ se encuentra ejecutandose junto al Agente).
La figura 6.4 muestra el portal de inicio
de la interfaz web Wind. Los modulos ja-
vascript corriendo en el dispositivo permi-
ten capturar eventos al presionar una de las
etiquetas.
Para el caso de este ejemplo selecciona-
remos la etiqueta “Routers”. Esto gati-
llara el envıo de un mensaje SOAP al
Agente consultando la lista de equipos en
el sistema. Figura 6.4: Portal interfaz web Wind parala seleccion de tipos de equipos.
Figura 6.5: Lista de equipos disponibles.
Una vez recibida la respuesta del Agente, la
interfaz visual despliega en el equipo una lis-
ta de botones con los dispositivos de red dis-
ponibles a configurar. Los 2 modelos (C7200
y C3620 de Cisco ) soportados por la aplica-
cion se encuentran disponibles para su admi-
nistracion y configuracion como se muestra
en la figura 6.5.
Presionaremos el primero de la lista (CISCO:C7200:1080) un router Cisco modelo
c7200 con identificador 1080 (este identificador es utilizado para diferenciar este router
con otro del mismo modelo).
41
6.2 Soporte de equipos y caso de uso (Verificacion de resultados y objetivos.)
Figura 6.6: Pagina de control deRouter Cisco, modelo c7200, id=1080.
La figura 6.6 muestra que la pagina desplegada entrega informacion con 3 pestanas de
estado y un menu de funcionalidades que estan soportadas para ejecutar en este dispositivo
( options menu ).
Cada pestana de estado esta encargada de entregar cierta informacion:
1. Interface Status: Relacionado con el estado de las interfaces fastEthernet del equipo.
2. Memory: Memoria utilizada en el equipo.
3. General Status: Estados relacionados a temperaturas y voltajes.
Continuando con el ejemplo, presionaremos el boton Interface Configuration. Esto
hara que se muestre un pop-up, mostrado en la figura 6.7, con las opciones de seleccion
de interfaz a configurar y los parametros que se desean establecer:
42
6.2 Soporte de equipos y caso de uso (Verificacion de resultados y objetivos.)
Figura 6.7: Pop-up de control deinterfaces del Router seleccionado.
Desde aca es posible seleccionar cualquier interfaz ( llamadas FastEthernet ) del router y
configurarla.
Para comprobar el correcto funcionamien-
to de la interfaz web, seleccionamos la in-
terfaz FastEthernet 1/0 y le asignamos la
direccion ip 192.168.10.1 con mascara 24.
Figura 6.8: Configuracion de la interfazFastEthernet 1/0.
43
6.2 Soporte de equipos y caso de uso (Verificacion de resultados y objetivos.)
Luego aplicamos los cambios y volveremos a la pantalla de estados y opciones del
router seleccionado.
Finalmente, el nuevo estatus de la interfaz FastEthernet 1/0 puede observarse en la
ventana Interface Status:
Figura 6.9: Ventana de Interface Status.
Como pudo comprobarse en el caso de uso, los objetivos que abarcan desde el fun-
cionamiento del middleware hasta la administracion de al menos 2 equipos de red, con
algunas funcionalidades generales, se encuentran cubiertos. Futuras funcionalidades no
dependen del desarrollo a bajo nivel, solo basta con agregarlas al XML para que nuevos
mensajes SOAP emitidos desde el servidor Apache (que contiene la pagina web y los
modulos de conexion con el broker ActiveMQ ) puedan ser interpretados por los proce-
sos Wind que interpretaran cualquier paso como un argumento de la sesion Telnet con el
equipo del cual estan a cargo.
44
Capıtulo 7
Conclusiones y Trabajo Futuro
7.1. Conclusiones
Existen muchas alternativas y caminos para crear una solucion a un problema de ad-
ministracion como el que se planteo en este trabajo, pero el gran desafıo, fuera de com-
pletar el desarrollo de esta, era encontrar una manera de que la arquitectura de la solucion
permitiera una modularidad tal, que fuera facil la integracion de nuevas herramientas y
tecnologıas.
Atacando este objetivo, los middleware ayudan de manera impresionante, permitiendo
el desarrollo de diversas aplicaciones aparte de la planteada, ya que la libertad de escoger
cualquier paradigma de programacion y lenguaje, ademas del uso de protocolos conocidos
y no propietarios ( STOMP y Openwire ), abre un gran camino hacia soluciones distribui-
das y complejas.
Gracias al estudio de la mensajerıa basada en SOAP, se logra una solucion de estructu-
45
7.2 Trabajo Futuro (Conclusiones y Trabajo Futuro)
ramiento de mensajes estandarizado y que trae ventajas como: no estar asociado a ningun
lenguaje ( acentuando el hecho de que los middleware no se encuentran ligados a un solo
lenguaje ), no esta atado a ningun protocolo de transporte ya que basicamente es un texto
XML y cualquier protocolo capaz de transmitir texto puede con el, y tambien, por el hecho
de ser estandarizado, cualquier desarrollador que requiera realizar un escalamiento de la
arquitectura de la solucion sabe que la mensajerıa esta basada en SOAP y trabajara con
eso sin tener que depender de protocolos propietarios.
Si bien la solucion final resuelve el problema de unificacion de administracion en equi-
pos de red (Cisco,3com,etc), la arquitectura permite que, manteniendo el middleware y el
servidor Apache, pueda utilizarse para otro tipo de negocios basados en web, e incluso,
si los equipos soportan protocolo Telnet, se mantenga todo igual y solo se modifiquen y
establezcan parametros entre el XML usado por los procesos Wind para interpretar los
mensajes recibidos y los mensajes SOAP enviados desde el servidor Apache.
7.2. Trabajo Futuro
La version final a la cual se llego funciona correctamente, pero existe un problema
grande de seguridad y una limitacion en la cantidad de usuarios que pueden operar con la
plataforma, por lo cual es importante en trabajos futuros:
Brindar soporte para mas administradores de red, ya que actualmente la plataforma
esta pensada para ser usada por uno solo.
Sistema de autenticacion de usuario.
Seguridad basada en SSL.
Mejoras de interfaz visual.
46
Referencias
[1] STOMP:http://stomp.fusesource.org/index.html
[2] STOMP-ActiveMQ:http://activemq.apache.org/stomp.html
[3] Dynamips/Dynagen Tuturial:http://dynagen.org/tutorial.htm
[4] Apache ActiveMQ Proyect:http://activemq.apache.org/
[5] TCP:http://www.cicei.com/ocon/gsi/tut_tcpip/index.html
[6] CISCO:http://www.cisco.com/
[7] W3C Validation Service :http://validator.w3.org/
[8] W3C Soap:http://www.cisco.com/
[9] NetBeans:http://netbeans.org/
[10] CISCO:http://www.cisco.com/
[11] STOMP-PHP:http://php.net/manual/es/book.stomp.php
[12] OpenWire:http://activemq.apache.org/openwire.html
[13] JqueryMobile:http://jquerymobile.com/
[14] Tunctl:http://tunctl.sourceforge.net/
[15] UML-Utilities:linux.about.com
[16] Apache Commons:http://commons.apache.org/
[17] TelnetExamples:twitt88.com
47
Referencias (Referencias)
[18] StackOverFlow:http://stackoverflow.com/
[19] James F. Kurose, Keith W., “Computer Networking”, 6e, Addison-Wesley, 2012
[20] Java Device Manager Fuente Screenshot
[21] CISCO SDM http://www.netralized.com
[22] Middleware:Taxonomıa Middlewares
[23] Bridge:Fuente diagrama
48
Anexos A
Arranque de la Plataforma WIND
En este anexo se explica todo lo necesario para la ejecucion de la plataforma WIND.
Para archivos de configuracion e instalacion de bibliotecas necesarias, ir al Anexo B.
A.1. Servidor Apache
La interfaz web y las aplicaciones PHP fueron montadas en un PC con sistema opera-
tivo Linux Ubuntu 10.04. El servidor contenedor de paginas web escogido fue Apache2.
Para su instalacion y ejecucion en ubuntu los pasos a seguir en consola de comandos son:
1 $ sudo ap t−g e t i n s t a l l apache2
$ sudo ap t−g e t i n s t a l l php5 l i b a p a c h e 2 −mod−php5 php5−gd php5−dom
3 $ sudo / e t c / i n i t . d / apache2 r e s t a r t
Por defecto Apache2 almacena sus paginas web en el directorio /var/www donde de-
berıan ir todos los archivos php y html. La interfaz web se encuentra contenida en la
carpeta WWW/WIND, por lo cual se tiene que copiar su contenido donde Apache2 lea el
index.html, para este caso, /var/www.
49
A.2 Middleware Apache ActiveMQ ( Arranque de la Plataforma WIND )
A.2. Middleware Apache ActiveMQ
ActiveMQ no requiere instalacion, la carpeta “ANEXO/apache-activemq-5.6.0”, con-
tiene todo lo necesario para su ejecucion, solo basta con ejecutar dentro de la carpeta ya
senalada el siguiente comando:
1 $ b i n / a c t i v e m q s t a r t
Si todo sale bien, se levantara el broker en el servidor de manera local.
Figura A.1: Screenshot consola Ubuntu 10.04.
ActiveMQ esta desarrollado en Java, por lo cual si no es encontrada la PATH de Java
se requiere agregar esta variable de entorno de la siguiente forma:
Ejecutar como root: vi /.bashrc
1 $ sudo v i ˜ / . b a s h r c
Agregar al final del archivo las siguientes lineas:
1 JAVA HOME= ” r u t a JDK de j a v a ”
e x p o r t JAVA HOME
3 PATH=$PATH : $JAVA HOME/ b i n
e x p o r t PATH
Eso es todo, solo falta reiniciar o simplemente abrir un nuevo terminal. Para probar si todo
va bien, ejecutar :
$ echo $JAVA HOME / / p a r a v e r i f i c a r s i s e c r e o e l j a v a home
2 $ echo $PATH / / p a r a v e r i f i c a r s i e s t a en l a p a t h
50
Anexos B
Instalacion de bibliotecas y equipos de
prueba
B.1. Agregando extencion STOMP a PHP
Si PHP esta instalado, es posible agregar bibliotecas directamente para no realizar
includes dentro de cada archivo donde se utilizaran las funciones de estas.
Para poder instalar extensiones se requiere el programa PEAR. Este programa tiene
una dependencia, la cual debemos instalar de la siguiente forma:
$ sudo ap t−g e t i n s t a l l php5−dev
2 $ sudo ap t−g e t i n s t a l l php−p e a r
Ahora para instalar la extension stomp-php, necesitamos copiar el archivo stomp-
1.0.3.tgz del CD al disco duro del equipo donde queremos instalarla y ejecutamos:
51
B.2 Virtualizacion de equipos CISCO ( Instalacion de bibliotecas y equipos de prueba )
sudo p e a r i n s t a l l stomp −1 . 0 . 3 . t g z
Luego de terminar nos dira que agreguemos extension=stomp.so al archivo php.ini
contenido en la carpeta /etc/php5/apache2/ y /etc/php5/cli/, abrimos el archivo y agrega-
mos:
1 [STOMP Connec to r ]
e x t e n s i o n =stomp . so
B.2. Virtualizacion de equipos CISCO
Para poder virtualizar equipos, primero es necesario tener instalado uml-utilities, para
ello ejecutar en el terminal de Ubuntu:
$ sudo ap t−g e t i n s t a l l uml− u t i l i t i e s
Finalizado este proceso ya es posible crear interfaces de red virtuales y asignarles ip.
Con ellas, conectaremos a traves de dynagen estas interfaces tap a las interfaces FastEt-
hernet 0/0 de los routers a emular ( c7200 y c3620 de cisco ).
Ahora, para levantar los equipos y realizar todas las conexiones necesarias para trabajar
con los routers, solo basta con entrar a la carpeta Routers ( contenida en el CD, copiar a
disco duro antes de correr los scripts ) y ejecutar:
1 $ . / r o u t e r s . sh
Para terminar la ejecucion de todo, simplemente en la consola de dynagen escribir “exit”.
Esto finalizara el proceso de emulacion, pero las interfaces de red virtuales seguiran crea-
das, para eliminarlas ejecutar dentro de la carpeta Routers:
1 $ . / k i l l r o u t e r s . sh
52
Anexos C
Configuraciones Especiales
C.1. Archivo de configuracion ActiveMQ
El archivo de configuracion de ActiveMQ (activemq.xml) se encuentra en la ruta
apache-activemq-5.6.0/conf/. Este archivo contiene solo 2 modificaciones con respecto
a la version original incluida por defecto en el software. La primera relacionada con la
especificacion de los protocolos de conexion a utilizar (STOMP y OpenWire):
1 < t r a n s p o r t C o n n e c t o r s>
< t r a n s p o r t C o n n e c t o r name=” openwi re ” u r i =” t c p : / / 0 . 0 . 0 . 0 : 6 1 6 1 6 ” />
3 < t r a n s p o r t C o n n e c t o r name=” stomp ” u r i =” stomp : / / 0 . 0 . 0 . 0 : 6 1 6 1 3 ” />
< / t r a n s p o r t C o n n e c t o r s>
Y una polıtica para eliminar colas que no estan siendo usadas por mas de 5 segundos
en el broker:
<p o l i c y E n t r y queue =”>” g c I n a c t i v e D e s t i n a t i o n s =” t r u e ”
i n a c t i v e T i m o u t B e f o r e G C =”5000”/>
53
C.2 Configuracion de Routers Virtualizados (Configuraciones Especiales)
Para acceder a la consola web, la url por defecto es localhost:8161.
C.2. Configuracion de Routers Virtualizados
Configuracion previa para router Cisco modelo c7200:
1 Router>e n a b l e
Ro u t e r # con f t
3 Ro u t e r ( c o n f i g ) # l i n e v t y 0 4
Ro u t e r ( c o n f i g− l i n e ) # password c i s c o
5 Ro u t e r ( c o n f i g− l i n e ) # e x i t
Ro u t e r ( c o n f i g ) # e n a b l e password c i s c o
7 Ro u t e r ( c o n f i g ) # i n t e r f a c e F a s t E t h e r n e t 0 / 0
Ro u t e r ( c o n f i g− i f ) # i p a d d r e s s 1 0 . 1 0 0 . 1 0 0 . 1 2 5 5 . 2 5 5 . 2 5 5 . 0
9 Ro u t e r ( c o n f i g− i f ) # no shutdown
Configuracion previa para router Cisco modelo c3620:
1 Router>e n a b l e
Ro u t e r # con f t
3 Ro u t e r ( c o n f i g ) # l i n e v t y 0 4
Ro u t e r ( c o n f i g− l i n e ) # password c i s c o
5 Ro u t e r ( c o n f i g− l i n e ) # e x i t
Ro u t e r ( c o n f i g ) # e n a b l e password c i s c o
7 Ro u t e r ( c o n f i g ) # i n t e r f a c e F a s t E t h e r n e t 0 / 0
Ro u t e r ( c o n f i g− i f ) # i p a d d r e s s 1 9 2 . 1 6 8 . 2 . 1 2 5 5 . 2 5 5 . 2 5 5 . 0
9 Ro u t e r ( c o n f i g− i f ) # no shutdown
54