Sei sulla pagina 1di 60

UNIVERSIDAD CATLICA BOLIVIANA SAN PABLO

Unidad Acadmica Regional Cochabamba Unidad de Postgrado

Desarrollo de una aplicacin mvil para la administracin de equipos de red bajo el protocolo SNMP

Trabajo Final de Diplomado en Redes Maestra en Telecomunicaciones

Iberth Fernandez Ortuo Paola Cecilia Salinas Flores

Cochabamba Bolivia Agosto 2013

NDICE GENERAL

1. GENERALIDADES......................................................................................................... 1 1.1. Introduccin........................................................................................................1 1.2. Planteamiento del problema..............................................................................1 1.3. Antecedentes........................................................................................................2 1.4. Objetivo de estudio..................................................... ................................3 1.5. Objetivos..................................................... .........................................................3 1.6. Campo de accin.................................................................................. ...............3 1.7. Justificaciones............................................................... ..... ..... ........... ................4 1.8. Alcances..................................................................... ..... ..... ..... .............. .........4 1.9. Estrategia Metodolgica............................................ ..... ..................................5 2. MARCO TEORICO.........................................................................................................7 2.1. Protocolo SNMP..................................................................................................7 2.2. Sistemas operativos mviles..............................................................................21 3. TRABAJO DE CAMPO...............................................................................................26 3.1. Entorno de desarrollo Android......................................................................26 3.2. Componentes de una aplicacin Android.....................................................27 4. PROPUESTA................................................................................................................28 4.1. Descripcin de la biblioteca funcional..........................................................28 4.2. Arquitectura de las High-Level API.............................................................32 4.3. Utilizacin de las MIBS en las aplicaciones..................................................33 4.4. Configuracin de los parmetros del agente SNMP....................................34 4.5. Manejo de datagramas...................................................................................34 4.6. Operaciones de obtencin y modificacin de datos ....................................35 4.7. Traps y notificaciones....................................................................................36 4.8. Pruebas, simulacin y ejecucin...................................................................36 CONCLUSIONES Y RECOMENDACIONES .......................................................43 BIBLIOGRAFA ........................................................................................................44 ANEXOS......................................................................................................................45

ii

RESUMEN

El presente trabajo consiste en el desarrollo de una aplicacin para dispositivos porttiles mvil, bajo sistema operativo Android que permite el diagnostico en tiempo real de equipos de red bajo el protocolo de gestin SNMP Simple Network Management Protocol. Inicia explicando la necesidad de contar con esta herramienta para la gestin de estado servidores de aplicacin que requieren ser de alta disponibilidad. Se realizo la comparativa de los diferentes sistemas operativos mviles que tenemos actualmente en el mercado, analizando las ventajas y desventajas de realizar el desarrollo sobre cada uno. Este anlisis incluye los aspectos de costo de los dispositivos mviles que soportan estos sistemas operativos, la disponibilidad de estos dispositivos en el mercado local, aspectos tcnicos de los dispositivos y del sistema operativo. Dado que se toma la decisin de la utilizacin del sistema operativo Android para el desarrollo de esta aplicacin, tambin se realiza un anlisis sobre la versin de OS que ser utilizada para este proyecto. En el documento, describimos a totalidad, las bibliotecas utilizadas para el desarrollo de la aplicacin. Posteriormente se ensean las imgenes de la aplicacin desarrollada, inicialmente utilizando el emulador de la herramienta de desarrollo y posteriormente la aplicacin instalada en el dispositivo mvil realizando la administracin de un equipo de red.

iii

ABSTRACT The present paper constitutes the development of an application for mobile equipments, under the operative system: Android, which allows the diagnosis in real time of network equipments using the management network protocol SNMP Simple Network Management Protocol. It begins explaining the necessity of counting with this software tool to be able to count with the management of the status of high availability network applications server. A comparative of the different operative mobile systems, available in the local market, was made, analyzing the advantages and disadvantages of realizing the development on each one of them. This analysis includes the following aspects: Price of the mobile equipment that supports the different operative systems under analysis, the availability of the equipments in the local market, technical aspects of the devices and of the operative systems. Since the utilization of the Android Operative System is decided for the development of this application, an analysis of the OS version to use in this Project is also made. Along the document, we describe entirely, the libraries used for the development of the application. Later, images of the developed application will be shown, initially using the emulator of the development tool and after the installed application at the mobile device, realizing the management of network equipment.

iv

1. GENERALIDADES 1.1. Introduccin Este proyecto final para el Diplomado de Telecomunicaciones de la Universidad Catlica Boliviana, nace de la identificacin de una necesidad especfica de la empresa nacional de telefona mvil Nuevatel PCS de Bolivia S.A. VIVA Se inicia tras realizar un desempeo laboral dentro del departamento Ingeniera de esta empresa, donde se identifica la necesidad de contar un sistema de gestin mvil para servidores de aplicacin que requieren contar con alta disponibilidad de acceso. La disponibilidad es una de las caractersticas de las arquitecturas empresariales que mide el grado con el que los recursos del sistema estn disponibles para su uso por el usuario final a lo largo de un tiempo dado. No slo se relaciona con la prevencin de cadas del sistema (llamadas tambin tiempos fuera de lnea, downtime u offline), sino incluso con la percepcin de "cada" desde el punto de vista del usuario (cualquier circunstancia que nos impida trabajar productivamente con el sistema, desde tiempos de respuesta prolongados, escasa asistencia tcnica o falta de estaciones de trabajo disponibles) es considerada como un factor de baja disponibilidad. 1.2. Planteamiento del problema El departamento de Informacin Tecnolgica est a cargo del buen funcionamiento de la red de equipos y servidores de la empresa, asegurando la disponibilidad de los servicios que se utilizan en las distintas reas de la empresa. Ciertos servidores de aplicacin, son utilizados constantemente por distintos funcionarios de la empresa, como en el rea tcnica, rea comercial y en el rea de atencin al cliente. Estos servidores requieren estar disponibles para los usuarios durante las 24 horas del dia. Es importante realizar una gestin constante sobre estos equipos, asegurando su desempeo funcional y alertando las posibles fallas.

1.3. Antecedentes Como parte del conocimiento adquirido en las materias cursadas durante el Diplomado en Redes, se discuti la importancia de la disponibilidad de algunos recursos de red, y las tcnicas comunes que aseguran esta vital caracterstica. Si bien es importante contar con tcnicas de contingencia que permitan realizar una correccin de problemas ante cualquier tipo de falla que pueda surgir, se debe prestar la misma importancia a la previsin de fallas, gestin y alertas sobre los problemas. El auge de los servicios que se proveen hoy en da, el avance tecnolgico, la tendencia hacia dispositivos ms pequeos y ms rpidos, junto con la necesidad de acceso a la informacin en cualquier momento, son los factores determinantes del surgimiento de nuevas tecnologas para los diferentes dispositivos mviles incluyendo a telfonos celulares, los smartphones y las tabletas PC. Existen tres tipos diferentes de desarrollo para aplicaciones mviles: Nativas, Webs e Hibridas. En la mayor parte de las ocasiones relacionamos desarrollos mviles con aplicaciones nativas. Este tipo de desarrollos son desarrollos hechos de forma especfica para un determinado sistema operativo. Encontramos tambin las aplicaciones Web mviles, que son aplicaciones que corren sobre un navegador web. Pero en este caso, sobre el navegador web de nuestro dispositivo mvil. Tambin existen las aplicaciones hbridas, este tipo de aplicaciones son una combinacin de ambas: Nativas y Web. Todo apunta a que este tipo de aplicaciones mviles tienden a ser las ms utilizadas.

1.4. Objetivo de estudio El objetivo general de estudio de este proyecto es el desarrollo de una aplicacin para dispositivos porttiles mvil, bajo sistema operativo Android que permita el diagnostico en tiempo real de equipos de red bajo el protocolo de gestin SNMP Simple Network Management Protocol. 1.5. Objetivos Para el cumplimiento del Objetivo General de estudio propuesto, se ha identificado los siguientes objetivos especficos: 1. Determinar el sistema operativo mvil sobre el que se desarrollara la aplicacin 2. Desarrollar la aplicacin : 2.1 2.2 2.3 Obtener, registrar y visualizar los mensajes SNMP Identificar y manejar los PDUs: Get Request, Set Request y Trap Receiver Elaborar una interfaz grafica amigable y sencilla para el usuario

3. Implementar la aplicacin en un equipo mvil y realizar la gestin de un equipo de red, como un servidor de aplicacin o una computadora. 1.6. Campo de accin Bajo el objetivo del alcance de la alta disponibilidad de los equipos, se distinguen las siguientes fases y disciplinas:
Fase Disciplina Descripcin

1.Generacin de Administracin de Identificar, negociar y acordar los servicios a ser Objetivos Niveles de Servicio implementados, mtricas de calidad y objetivos de desempeo a proporcionar a los usuarios. 2.Planeacin Diseo Aplicaciones sistemas Planeacin Capacidad de Planear y disear infraestructura IT para alcanzar los y niveles de servicio comprometidos con el usuario.

de Planeacin de requerimientos de crecimiento del sistema.

Administracin de la Crear y mantener informacin de la configuracin del Configuracin sistema. Administracin activos 3.Ejecucin Administracin incidencias Respaldo recuperacin 4.Medicin Administracin Desempeo de Crear y mantener un inventario de activos; rastrear y monitorear dichos activos. de Detectar, registrar, resolver incidencias.

y Disear sistemas y recursos alternativos para restaurar inmediatamente los servicios IT cuando ocurran problemas. del Monitorear informacin de desempeo del sistema; realizar tuning del sistema para alcanzar los niveles de servicio ptimos comprometidos con los usuarios. del Controlar todos los cambios en el sistema para asegurar que dichos cambios no degradan el desempeo del sistema.

5.Control

Administracin Cambio

Administracin de la Controlar y administrar acceso al sistema para minimizar las seguridad amenazas a la integridad del mismo. Administracin de la Monitorear y controlar los recursos del sistema y la disponibilidad operacin IT para mantener la disponibilidad del sistema.

Fuente: Vera 2008 Segn esta informacin, el campo de accin bajo el que se desarrolla este proyecto, seria bajo la Fase de Control, en la disciplina de la Administracin de la disponibilidad, que se trata sobre el Monitoreo y control de los recursos del sistema y la operacin IT para mantener la disponibilidad del sistema. 1.7. Justificaciones Dado que el departamento de Informacin Tecnolgica est a cargo del buen funcionamiento de la red de equipos y servidores de la empresa, se debe asegurar la disponibilidad de ciertos servidores de aplicacin, cuyos servicios, son utilizados constantemente por distintos funcionarios de la empresa. Estos servidores requieren estar disponibles para los usuarios durante las 24 horas del da, por lo que se demuestra la importancia de realizar una gestin constante sobre estos equipos, asegurando su desempeo funcional y alertando las posibles fallas.

1.8. Alcances Desarrollo de una aplicacin mvil para sistema operativo Android que incluye el manejo del protocolo SNMP para la gestin de equipos de red utilizando los PDUs: Get Request, Set Request y Trap. Esta aplicacin ser compatible para la versin 2.3 y posteriores del sistema operativo Android. 1.9. Estrategia Metodolgica
Mtodos Seleccionados por Objetivo Especfico

Objetivo Especfico

Determinar el sistema operativo mvil sobre el que se desarrollara la aplicacin

Desarrollar la aplicacin :

Obtener, registrar y visualizar los mensajes SNMP

Mtodos Seleccionados Inspeccin de los sistemas operativos mviles actuales. Revisin Bibliogrfica de fuentes de informacin de manuales, tutoriales en lnea libros, artculos, publicaciones y revistas respecto al desarrollo en sistemas operativos mviles. Comparacin de las caractersticas de los diferentes sistemas mviles estudiados. Eleccin del sistema operativo sobre el que se realizara el desarrollo. Revisin Bibliogrfica de fuentes de informacin de manuales, tutoriales en lnea libros, artculos, publicaciones y revistas respecto a la metodologa de construccin y desarrollo de aplicaciones en el sistema operativo elegido. Preparacin del material de desarrollo para la elaboracin de la aplicacin, obtencin del SDK (kit de desarrollo del software, obtencin de los ADTS (Herramientas de desarrollo para Android), descarga e instalacin de Eclipse. Revisin Bibliogrfica de fuentes de informacin de manuales, tutoriales en lnea libros, artculos, publicaciones y revistas respecto a las bibliotecas del SDK Android. Revisin Bibliogrfica de fuentes de informacin del sitio web oficial para el desarrollo de aplicaciones para el sistema operativo Android sobre la creacin de las aplicaciones, su composicin, su ciclo de vida, su presentacin al usuario, entre otros recursos. Revisin Bibliogrfica de fuentes de informacin de manuales, tutoriales en lnea libros, artculos, publicaciones y revistas respecto a los parmetros de radio frecuencia para cada tecnologa de transmisin. Revisin Bibliogrfica de fuentes de informacin del

Objetivo Especfico

Identificar y manejar los PDUs: Get Request, Set Request y Trap

Elaborar una interfaz grafica amigable y sencilla para el usuario

Implementar la aplicacin en un equipo mvil y realizar la gestin de un equipo de red, como un servidor de aplicacin o una computadora.

Mtodos Seleccionados sitio web oficial para el desarrollo de aplicaciones para el sistema operativo Android sobre los recursos de gestin de red bajo protocolo SNMP para la obtencin de los parmetros requeridos. Revisin Bibliogrfica de fuentes de informacin del sitio web oficial para el desarrollo de aplicaciones para el sistema operativo Android sobre los mtodos de registro de datos para poder guardar los datos obtenidos en el estudio. Programacin del proceso de obtencin y visualizacin de datos de telefona. Revisin Bibliogrfica de fuentes de informacin de manuales, tutoriales en lnea libros, artculos, publicaciones y revistas respecto a los mensajes SNMP Revisin Bibliogrfica de fuentes de informacin del sitio web oficial para el desarrollo de aplicaciones para el sistema operativo Android sobre los recursos de telefona para la obtencin de los parmetros de ubicacin mediante el protocolo de gestin SNMP Programacin del proceso de obtencin y visualizacin de datos. Revisin Bibliogrfica de fuentes de informacin del sitio web oficial para el desarrollo de aplicaciones para el sistema operativo Android sobre los recursos de visualizacin de la interfaz de usuario Programacin del GUI y visualizacin de la aplicacin Realizar el diseo general de la aplicacin. Programacin del layout sobre el que se visualizaran los datos obtenidos Instalacin de la aplicacin en equipos mviles de distintas caractersticas de hardware y software

Fuente propia: Salinas, Fernandez 2013

2. MARCO TEORICO 2.1. Protocolo SNMP 2.1.1 Origen y filosofa de SNMP SNMP es un protocolo utilizado para intercambiar informacin de gestin entre los dispositivos de la red. Su idea original es monitorizar y gestionar redes manteniendo un esquema de simplicidad y efectividad. Hasta la llegada de SNMP, la gestin de red haba sido propietaria y los productos desarrollados por cada fabricante, lo que complicaba enormemente los centros de control de la redes heterogneas, adems, dada la dificultad de desarrollar este tipo de productos y el mercado restringido al que iban dirigido, los productos eran caros y complejos. Con el crecimiento de la popularidad de TCP/IP, apareci un mercado lo suficientemente atractivo para que la IETF propusiera un estndar de gestin. Un aspecto potencial de estos sistemas es que pueden generar tanto trfico en la red y tanta informacin para gestionarse a s mismos que pueden llegar a convertirse en una carga significativa para la red. Para que una gestin estndar tenga xito debe basarse en software simple, pequeo y de bajo costo para poder instalarlo en la gran cantidad de pequeos dispositivos que constituyen la red. SNMP fue publicado inicialmente en 1989 pero las primeras aplicaciones no aparecieron hasta 1990. SNMP V2 apareci en Mayo de 1993 aadiendo nuevos comandos para reducir el trfico de red, especialmente en redes grandes, ofrece adems nuevas capacidades de notificacin de errores, introduce la definicin de nuevos objetos, ms contadores y mejores herramientas de gestin. Finalmente se han introducido aadidos para garantizar la seguridad y la autenticacin. SNMP en su ltima versin (SNMPv3) data de 2002 y posee cambios significativos con relacin a sus predecesores, sobre todo en aspectos de seguridad, sin embargo no ha sido mayoritariamente aceptado en la industria.

La idea es que SNMP sea un componente integral y esencial de todos los sistemas TCP/IP, por ello, todos los protocolos por debajo del nivel de aplicacin tienen sus componentes SNMP. SNMP tambin se ha extendido para cubrir equipos no TCP/IP y algunos protocolos propietarios, constituyndose en el estndar ms ampliamente utilizado para la recogida de informacin de gestin de red. 2.1.2 Conceptos bsicos La idea bsica es que la recogida y gestin de la informacin de la red se haga en las llamadas estaciones de gestin de red que se comunicarn con el resto de los elementos de red. Estas estaciones de gestin de red sern normalmente estaciones de trabajo que muestran grficamente aspectos relevantes acerca de los elementos que esta monitorizando. La aplicacin que se encarga de la comunicacin con los elementos de red es el gestor que es la implementacin en la estacin del protocolo SNMP. Los elementos de red pueden ser cualquier dispositivo de la red (clsicamente que use parte del conjunto de protocolos TCP/IP) como un router, un terminal, una impresora, etc. Tendremos un software en el elemento de red monitorizado que se denominar agente y cuya funcin es, por un lado, recoger informacin de los eventos que se producen en el dispositivo, y por otro comunicarse con el gestor. La comunicacin puede producirse de dos maneras: 1. El gestor puede preguntar al agente acerca del valor de alguna variable 2. El agente puede informar al gestor acerca de algn hecho importante. El gestor, adems de poder leer el contenido de las variables del agente, puede modificar su valor.

2.1.3 Arquitectura SNMP Para funcionar SNMP consta de tres elementos: 1. La base de Informacin de gestin (MIB) 2. La estructura de gestin de la informacin (SMI) 3. El protocolo de gestin de red simple (SNMP) 2.1.3.1 MIB Es una base de datos a travs de la cual se tiene acceso a la informacin para la gestin, contenida en la memoria interna del dispositivo en cuestin. MIB es una base de datos completa y bien definida, con una estructura en rbol, adecuada para manejar diversos grupos de objetos (informacin sobre variables/valores que se pueden adoptar), con identificadores exclusivos para cada objeto. Podemos encontrar en el RFC 1213 (MIB-II) su descripcin. La arquitectura SNMP opera con un reducido grupo de objetos que se encuentran definido con detalle en la RFC 1066 "Base de informacin de gestin para la gestin de redes sobre TCP/IP". Ms adelante entraremos en detalle sobre esta base de datos. De momento es una coleccin de informacin que est organizada jerrquicamente y con que las MIB son accedidas usando un protocolo de administracin de red, como por ejemplo, SNMP 2.1.3.2 SMI Bsicamente se trata de definir la estructura de la MIB. Se indicarn aqu aspectos como el tipo de datos que podr albergar la MIB, como representarse y denominarse los recursos en la MIB, etc. Esta especificado en el RFC 1155.En definitiva, son las reglas para la definicin de la MIB. 2.1.3.2 SNMP Es el protocolo utilizado entre el gestor y el elemento de red. Se define en el RFC 1157. Hay nuevos RFC especificando nuevas versiones de SNMP.

2.1.4 Protocolo SNMP SNMP proporciona un mecanismo para acceder a los objetos de MIB de modo que puedan ser consultados y modificados, adems de permitir que los dispositivos conectados a la red enven mensajes no solicitados a una estacin de gestin SNMP para indicar que se ha producido una cierta condicin. SNMP Define cinco tipos de mensajes de intercambio entre gestor y agente que se denominan PDUs (Unidad de datos de Protocolo): 1. Get-request. Utilizado por la estacin de gestin para obtener el valor de una o ms variables MIB del agente SNMP de la estacin remota. 2. Get-next-request. Es similar a la anterior, con la diferencia que se obtiene el valor de una variable sin definir sta explcitamente. De hecho se obtiene el valor de la variable que sigue a la especificada dentro de la ordenacin de la MIB. 3. Response. Es la respuesta del agente a una peticin del gestor devolviendo el valor de una o ms variables. 4. Set-request. Constituye el mecanismo para que el gestor modifique los valores de las variables MIB de la estacin remota. 5. Trap. Cuando se produce un determinado evento o condicin en la estacin remota, el agente enva un trap para notificarlo al gestor. Dado que el mensaje se enva de forma sncrona y en cualquier momento, la estacin de gestin debe monitorizar la red en todo instante. SNMP utiliza UDP, el gestor implementa un esquema de temporizacin y retransmisin para contemplar el hecho de la prdida de los mensajes y solventar la falta de fiabilidad de UDP. SNMP hace uso de dos puertos UDP, el 161 y el 162 para la recepcin en el agente y el gestor respectivamente, de esta forma es posible que en una estacin operen simultneamente el software de gestor y agente.

10

2.1.4.1 Formato de los mensajes SNMP El formato es el siguiente:

Fuente: Estbanez Sevilla 2010 El mensaje comienza con el campo Versin, que puede tomar los valores 0 o 1 para SNMPV1 y SNMPv2 respectivamente. El campo comunidad define un nivel de autenticacin del emisor del mensaje de forma que puede determinarse si tiene permiso de modificacin e incluso de lectura sobre las variables de la MIB. En cada sistema remoto se aplica una poltica de acceso de manera que existan varios perfiles con diferentes privilegios; para ello se crean distintas vistas de la MIB con diferentes modos de acceso sobre los objetos de esta: Slo lectura, Lectura y escritura, etc. La asignacin de un modo de acceso a una determinada vista constituye lo que se conoce como perfil de comunidad, y la poltica de acceso consiste en asignar a cada comunidad definida en el agente un perfil. De este modo, el gestor identificar una comunidad en cada PDU enviada al agente y ste atender la peticin en funcin de que la comunidad disponga de privilegios para realizarla o no. Existen dos tipos de formatos en las PDU SNMP, el primero es general y comn a casi todas ellas, y el segundo corresponde a la PDU trap:

11

Fuente: Estbanez Sevilla 2010 2.1.4.2 PDU Get-request, Get-next-request, Set-request Todas ellas son generadas por una estacin de gestin de red, son dirigidas a un agente de red y comparten un formato comn. El significado de los campos que componen la PDU es el siguiente: Tipo PDU. Especifica el tipo de mensaje, los valores posibles son:

Fuente: Estbanez Sevilla 2010 12

Identificacin de la peticin, se utiliza para relacionar peticiones y respuestas. El emisor asigna nmeros de manera que cada consulta pendiente al mismo agente es identificada de manera inequvoca de modo que la aplicacin SNMP puede correlacionar las respuestas emitidas con las peticiones pendientes y hacer frente a PDU duplicadas por un servicio de transporte inseguro (como UDP).

Estado de error, se emplea para indicar que ha ocurrido una anomala mientras se procesaba una consulta. Los valores posibles son:

Fuente: Estbanez Sevilla 2010 ndice de error. Cuando el estado de error es distinto de cero, el ndice de error puede suponer informacin adicional, ya que es un desplazamiento que especifica qu variable contiene el error. El agente la utiliza slo para los errores "noSuchname","badValue" y "Readonly". Lista de variables. Es una lista de nombres de variables y sus valores correspondientes. El campo valor existe tanto en las preguntas como en las respuestas, si bien en las preguntas su contenido es nulo. Operativa El agente SNMP que recibe un Get-request devuelve una PDU Response, completando los valores de las variables con lo que tiene anotado en su MIB. La operacin Get-Request slo devuelve valores cuando todas las variables estn disponibles y no se produce error en ninguna de ellas. Si el agente puede asignar valores a todas las variables que aparecen en la lista de la PDU Get-Request, la PDU Get-Response incluye en la lista de variables los

13

valores resultantes para cada variable, pero si falta al menos uno, la lista se devolver vaca. Los errores que pueden producirse son los enumerados anteriormente. En los casos en los que sea posible indicaremos en el campo ndice cual es la variable que nos da problemas. La PDU Get-Next-Request es casi idntica a la PDU Get-Request, con la nica diferencia de que en esta, el agente debe devolver para cada variable en la lista el valor del objeto siguiente en orden lexicogrfico en la MIB de la estacin remota. Esto nos permite descubrir dinmicamente la estructura de la vista de la MIB, adems de proporcionar un instrumento de bsqueda en tablas cuyas entradas sean desconocidas. Las situaciones de error son similares a las que se producen en la PDU Get-Request. La PDU Set-Request se genera de igual manera y siguiendo el mismo modelo de actuacin que en la generacin de Get-Request, con la diferencia de que Set-Request se utiliza para escribir un valor de objeto en lugar de leerlo. Por lo tanto, se incluir en la lista de variables, adems del identificador del objeto, el valor a asignarle. La operacin Set-Request es atmica: o bien se actualizan todas las variables o ninguna. Las condiciones de error son las mismas que en el caso de Get-Request. SNMP no tiene ningn mecanismo especfico para mandar comandos a un agente para que este realice acciones. SNMP solo puede leer y escribir variables. Sin embargo, es posible utilizar alguna de las propiedades para generar una orden. Un objeto puede ser utilizado para representar una orden, de manera que se realice una accin concreta cuando al objeto se le asigna un valor especfico. 2.1.4.3 PDU Trap Los agentes utilizan esta PDU para notificar a los gestores de manera asncrona determinados hechos. Su formato es distinto al que tienen el resto de PDUs de SNMP. Los campos que figuran en su PDU son los siguientes: Enterprise. Identifica al software agente que gener la PDU trap, generalmente a travs del nombre del mismo, fabricante y versin. Direccin del agente. Indica la direccin IP de la estacin remota cuyo agente envi la PDU trap.

14

Tipo de trap. Permite diferenciar entre traps, e identificar el evento que origin el envo del mensaje. El esquema de codificacin es el siguiente:

Fuente: Estbanez Sevilla 2010 Cdigo especfico. Permite diferenciar eventos especficos diferentes de los generales. Se utiliza en combinacin con el campo anterior "tipo de trap" cuyo valor debe ser 6 y con el campo enterprise, del cual depende para su interpretacin. Es un medio para que los fabricantes enriquezcan sus productos de red permitiendo detectar otras situaciones diferentes de las especificadas en el estndar. Timestamp. Contiene el tiempo medido en segundos que ha pasado entre la ltima re inicializacin del sistema remoto y la generacin del trap. Lista de variables. Contiene informacin adicional relativa al evento. En cada caso se incluyen diferentes variables MIB de la estacin remota con sus valores para ilustrar el estado de la misma en el momento en que se produjo el evento.

15

2.1.5 Estructura de la informacin de gestin: SMI La SMI (Structure of Management Information), tal y como se indica en el RFC 1155, define la estructura bajo la cual podr ser definida y construida una MIB. Seala aspectos tales como el tipo de datos que podr albergar la MIB, cmo pueden representarse y denominarse los recursos en la MIB, etc. SMI slo permite la utilizacin de tipos de datos simples en la construccin de MIB: escalares y arrays bidimensionales de escalares, y no permite la creacin o recuperacin de estructuras complejas de datos. SMI proporciona tcnicas para: Definir la estructura de una MIB particular Definir los objetos individuales, la sintaxis y valor de cada objeto Codificar el valor de los objetos

Los objetos MIB, as como toda la estructura del MIB, estn definidos utilizando ASN.1 Los tipos de datos universales definidos por SMI son un subconjunto de los tipos de ASN.1: Integer. Algunas variables son declaradas como enteros sin restricciones, otras son definidas para tomar valores especficos y otras con valores mximos y mnimos. Octect string. Es una cadena de 0 o ms bytes. Por delante de la cadena se incluye el nmero de bytes que la componen. Object identifier. Es un identificador de cada uno de los objetos definidos en la MIB. Null. Indica que la variable correspondiente no tiene ningn valor. Sequence. Es una estructura similar a la del lenguaje C. Secuence of. Es la definicin de un vector donde todos los elementos tienen el mismo tipo de datos. Adems de estos existen otros tipos de datos pero que no son ms que restricciones sobre los tipos universales. Por mencionarlos, estos son: v v v v v v Ipaddress Physaddress Counter Gauge Opaque Timeticks 16

2.1.5.1 Identificadores de objeto De todos los tipos de datos los identificadores de objeto constituyen el elemento bsico para la construccin de la MIB. Es un tipo de dato que especifica un objeto y es asignado por la autoridad competente. Las normas para la asignacin de identificadores de objeto son las siguientes: Cada identificador es nico, y su valor consiste en una secuencia de nmeros enteros. El grupo de objetos definidos formar una estructura en rbol. Los objetos concretos estarn en las hojas del rbol. Un identificador de un objeto es una secuencia de nmeros enteros separados por puntos decimales. Estos tienen una estructura arborescente, similar a la de DNS.

Fuente: Estbanez Sevilla 2010 Comenzando a partir de la raz del rbol de identificadores de objetos, cada valor del componente identificador de objeto identifica una rama del rbol. A partir de la raz hay tres nodos en el primer nivel: iso,itu-t, y joint-iso-itu-t. Bajo el nodo iso, se usa un subrbol para otras organizaciones, una de las cuales es el DOD (Department Of Defense).

17

As, el nodo Internet tiene el valor de identificador 1.3.6.1, que sirve como prefijo para los nodos por debajo de l. Cada nodo del rbol recibe tambin un nombre textual con el fin de hacerlo ms inteligible. Ntese que existe una rama denominada prvate (4).enterprise (1), de esta rama colgarn otras correspondientes a cada empresa, por ejemplo cisco (9) para que estas creen sus propios objetos. 2.1.5.2 Codificacin de la informacin Cuando se pasa informacin entre diferentes arquitecturas, los sistemas deben acordar la representacin de esta. SNMP se basa en dos estndares para la representacin de la informacin: ASN.1 (Abstract Syntax Notation) y BER (Basic Encoding Rules) el cual es parte de ASN.1. ASN.1 es un lenguaje de especificacin formal que puede ser serializado en una secuencia de bytes haciendo uso de BER. SNMP slo utiliza un subconjunto de ASN.1, los tipos integer, octect string, object identifier, sequence y null; si se utilizan otros tipos deben poder ser resueltos en estos tipos primitivos. Hay disponibles compiladores que convierten la especificacin de tipos de datos ASN.1 a cdigo C/C++, se crean archivos .h y .c con las definiciones ASN.1 transformadas en equivalentes de lenguaje C as como funciones para serializar/deserializar estos datos. Las Reglas de Codificacin Bsicas (BER) son las reglas definidas originalmente en el estndar ASN.1 para codificar informacin abstracta en un flujo de bits nico, esto es, que pueda ser interpretado en cualquier mquina de la misma manera. Todos los datos codificados usando BER son precedidos por un campo Tipo y Longitud. El campo tipo indica la construccin de los datos transportados y el campo longitud su tamao, lo que permite al receptor descifrar diferentes tipos de informacin. Veamos el campo tipo:

Fuente: Estbanez Sevilla 2010

18

Donde:

Fuente: Estbanez Sevilla 2010 Para proporcionar mayor flexibilidad para otras estructuras que puedan necesitarse en el futuro, el campo tipo tiene tres subdivisiones, tal y como muestra la figura; los bits 7 y 8 son denominados Tag class (cc), elt bit 6 el Form (f) y los bits 5 al 1 el tag number que identifica el tipo de dato en s. Si el nmero de tag vale 31 significa que el campo tipo ocupa ms de un byte. Por ejemplo, el tipo INTEGER es UNIVERSAL, primitivo (simple) y su nmero de tag es 2, luego se codifica: 00 0 00010. El campo Longitud tiene generalmente un byte, pero puede utilizar ms bits para describir estructuras ms largas; para ello se utiliza el bit 8 del campo de longitud que cuando se pone a 1 denota que la longitud del propio campo longitud, medida en bytes, viene representada en los restantes 7 bits de dicho campo. Por ejemplo, la longitud 4 se codifica 0 0000100 y una longitud de mil bytes se codifica 10000010 00000011 11101000. Existe un valor especial de longitud (10000000) para representar una longitud indefinida. El campo valor acaba con un byte especial denominado "Fin de contenido" ("End Of Content" o EOC). 2.1.5 Base de informacin de gestin (MIB) La base de informacin de gestin o MIB es una definicin de los objetos que deberan ser proporcionados en cada nodo administrado por el agente SNMP, para ello identifica los elementos de red, objetos gestionados y define nombres no ambiguos asociados con cada objeto. Los objetos administrados estn organizados en grupos, cada uno de los cuales se relaciona con un de los protocolos o niveles TCP/IP o con el sistema en s.

19

No todos los grupos de variables definidas son obligatorios para todos los componentes, lo que s es obligatorio es soportar todas las variables que un grupo tiene si soporta algn elemento del grupo. La descripcin que vamos a efectuar corresponde a la versin 2, MIB-II recogida en el RFC 1213. Los objetos MIB se definen mediante el lenguaje de especificacin ASN.1 a partir de una plantilla de definicin, que especifica los siguientes puntos:

Fuente: Estbanez Sevilla 2010 2.1.5.1 Identificar una instancia dentro de la MIB Cuando se desea consultar o modificar un valor de un objeto MIB es necesario identificarlo. SNMP solo puede hacer referencia a los nodos finales (hojas) y no a las ramas del rbol; adems, SNMP no manipula filas o columnas enteras de una tabla. 2.1.6. Variables simples Se referencia las variables aadiendo un punto cero ".0" al identificador de objeto de la variable (p.e. para recuperar la variable atInput que se puede ver en el rbol representado en este documento, usamos la siguiente cadena:.3.6.1.4.1.9.3.3.1.0) 2.1.7 Tablas La identificacin de cada entrada de la tabla es ms complicada puesto que solo se puede hacer referencia a nodos finales del rbol. Para ello usaremos la PDU GetNextRequest que nos permitir ir descubriendo cada elemento de una tabla. Supongamos que existe una tabla en nuestra mib con los siguientes datos:

20

Fuente: Estbanez Sevilla 2010 Todos los elementos de la tabla son hojas en el rbol pero nosotros solo conocemos los "encabezados" de la tabla. En este caso lo que haremos ser usar GetNextRequest para ir descubriendo las entradas de la tabla.

2.2. Sistemas operativos mviles Existen diferentes sistemas operativos sobre los cuales se pueden desarrollar la aplicacin de obtencin de parmetros de red de radiofrecuencia. Encontramos expuestos a continuacin los de mayor relevancia actual: Android Android es un sistema operativo mvil basado en Linux, desarrollado por la Open Handset Alliance, la cual es liderada por Google. Una de las caractersticas principales de este sistema operativo es que su desarrollo es gratuito, pueden encontrarse todos los recursos necesarios para empezar a elaborar aplicaciones de forma libre y sin costo. Windows Mobile Windows Mobile fue un sistema operativo mvil compacto desarrollado por Microsoft, y diseado para su uso en telfonos inteligentes. Se basa en el ncleo del sistema operativo Windows CE y cuenta con un conjunto de aplicaciones bsicas utilizando las API de Microsoft Windows.

21

Symbian Symbian es un sistema operativo que fue producto de la alianza de varias empresas de telefona mvil. Sus orgenes provienen de su antepasado EPOC32, utilizado en PDA's y Handhelds de PSION. El objetivo de Symbian fue crear un sistema operativo para terminales mviles que pudiera competir con el de Palm o el Windows Mobile IOS IOS es un sistema operativo mvil de Apple. Desarrollado originalmente para iPhone, luego fue usado en iPod Touch, iPad y Apple TV. Apple, Inc. no permite la instalacin de iOS en hardware de terceros. Deriva de Mac OS X, que a su vez est basado en Darwin BSD, y por lo tanto es un sistema operativo Unix. BLACKBERRY OS El BlackBerry OS es un sistema operativo mvil desarrollado por Research In Motion para dispositivos BlackBerry. Permite el manejo de procesos simultneos, es multitarea y tiene soporte para diferentes mtodos de entrada adoptados por RIM 2.2.1. Eleccin del Sistema Operativo En la tabla desarrollada a continuacin se exponen los siguientes aspectos de los sistemas operativos, los cuales fueron considerados para la eleccin del OS sobre el que se desarrollara el proyecto. ANDROID Versin considerada Fecha lanzamiento IOS SYMBIAN
Symbian 3/Anna/Belle

WINDOWS MOBILE

BLACKBERRY OS

3.2 Honeycomb iOS 5.0 Junio 2011

Windows Mobile 6.0 BB Bold, Torch, Curve 6, Crossbow

Julio del 2011

Symbian 3, Q4 2010 del S. Anna, Mayo/11 Febrero del 2007 Septiembre del 2012 S.Belle(nokia), Agosto/11

22

Linux

con OS UNIX

Kernel Ncleo

o maquina virtual basado


Dalvik

X, EKA2 (EPOC en Architecture) AVKON Qt Framework Quick for Symbian (cancelled): Orbit /UIEMO SI

Kernel S60 /Qt 4

Windows CE 5.0

Propio, Mobile OS

Layout organization

Cocoa Touch

Metro

Icons/ Visual Designs

Interfaz usuario

de
NO Licencia anual $99.00

SI

SI

SI

Desarrollo libre

Lenguaje de programacin Diversidad de ALTA BAJA ALTA equipos mviles Disponibilidad ALTA ALTA de dispositivos ALTA en el mercado Precio de los SEGN ALTO BAJO REQUERIMIENTO dispositivos Disponibilidad MEDIA BAJO de dispositivos ALTA en la empresa Fuente propia: Salinas, Fernandez 2013

Java, SDK C/C++ C or C++, NDK

Visual C++, NDK C++, Qt Creator Phyton, Phyton Carbide CE Java Python, Adobe Flah or .NET, subset Java ME .NET framework BAJA BAJA

BAJA ALTO INEXISTENTE

MEDIA MEDIO BAJO

Otro aspecto fundamental a la hora de comparar las plataformas mviles es su cuota de mercado. En la siguiente grfica podemos ver un estudio realizado por la empresa Gratner Group, donde se muestra la evolucin del mercado de los sistemas operativos para mviles segn el nmero de terminales vendidos. Podemos destacar: el importante descenso de ventas de la plataforma Symbian de Nokia; el declive continuo de BlackBerry; como la plataforma de Windows que parece que no despega; como Apple tiene afianzada una cuota de mercado en torno al 15%. Finalmente destacamos el espectacular ascenso de la plataforma Android, que le ha permitido alcanzar en dos aos una cuota de mercado superior al 75%.

23

Figura: Porcentaje de telfonos inteligentes vendidos segn su sistema operativo hasta el tercer cuarto del 2013 en el mundo (fuente: Gartner Group). 2.2.2 Sistema Operativo Android Android es un conjunto de software de cdigo abierto creado para telfonos mviles y otros dispositivos. El proyecto Android Open Source (AOSP), liderado por Google, tiene la tarea de mantenimiento y el desarrollo de Android. Muchos fabricantes de dispositivos han trado a los dispositivos con Android del mercado, y son disponibles en todo el mundo. Los creadores tienen como objetivo principal el construir una excelente plataforma de software para los usuarios diarios. Una serie de empresas han cometido muchos ingenieros para lograr este objetivo, y el resultado es un producto de consumo de calidad de produccin completa, cuyo cdigo fuente est abierto para la personalizacin y la portabilidad.

24

2.2.2.1 Versiones del Sistema Operativo Android Un total de 37,9% de dispositivos Android llevan en su interior alguna de las versiones de Jelly Bean, haciendo de esta versin, la ms utilizada actualmente.

Fuente, sitio web: developer.android.com, 2013

25

3. TRABAJO DE CAMPO - Desarrollo de aplicaciones Android 3.1. Entorno de desarrollo Android Para empezar a desarrollar aplicaciones Android, se deben seguir pasos bsicos para disponer en nuestro PC del entorno y las herramientas necesarias para comenzar a programar para la plataforma Android. Enumeraremos a continuacin los pasos necesarios de instalacin y configuracin, proporcionando los enlaces a las distintas herramientas. Paso 1: Descarga e instalacin de Java Development Kit JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html Paso 2: Descarga e instalacin de Eclipse IDE. http://www.eclipse.org/downloads/ Paso 3: Descargar el SDK de Android. http://developer.android.com/intl/es/sdk/index.html Paso 4: Descargar el plugin Android para Eclipse ADT y NDK. https://dl-ssl.google.com/android/eclipse/ Paso 5: Configurar el plugin ADT. Una vez instalado el plugin, se debe configurarlo indicando la ruta en la se instalo el SDK de Android. Para ello, iremos a la ventana de configuracin de Eclipse (Window / Preferences), y en la seccin de Android indicaremos la ruta en la que se ha instalado. Paso 6: Instalar las Platform Tools y los Platforms necesarios Acceder desde Eclipse debemos al men Window / Android SDK Manager. Seleccionar las Android SDK Platform-tools, las plataformas Android , y el Android Support Library, que permitir utilizar en versiones antiguas de Android caractersticas introducidas por versiones ms recientes. Instalar paquetes. Paso 7. Configurar un AVD. Para de probar y depurar aplicaciones Android no debe hacerse necesariamente sobre un dispositivo fsico, sino que se puede configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fcilmente estas tareas. Para ello, accederemos al AVD Manager (men Window / AVD Manager), y en la seccin Virtual Devices podremos aadir tantos AVD como se necesiten (configurados para distintas versiones de Android o distintos tipos de dispositivo). 26

3.2. Componentes de una aplicacin Android Para construir una aplicacin Android debemos manejar los conceptos de los siguientes elementos bsicos que componen una aplicacin: v Activity: Las actividades representan el componente principal de la interfaz grfica de una aplicacin Android. Se puede pensar en una actividad como el elemento anlogo a una ventana o pantalla en cualquier otro lenguaje visual. v View: Las vistas son los componentes bsicos con los que se construye la interfaz grfica de la aplicacin. De inicio, Android dispone de una gran cantidad de controles bsicos, como cuadros de texto, botones o listas desplegables, aunque tambin existe la posibilidad de extender o crear propios controles personalizados. v Service: Los servicios son componentes sin interfaz grfica que se ejecutan en segundo plano. Son similares a los servicios de cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones visuales si se necesita la interaccin con del usuario. v Content Provider: Un proveedor de contenidos es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de nuestra aplicacin sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementacin. v Broadcast Receiver: Es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: Batera baja, SMS recibido) o por otras aplicaciones (cualquier aplicacin puede generar mensajes (intents, en terminologa Android) broadcast, es decir, no dirigidos a una aplicacin concreta sino a cualquiera que quiera escucharlo). v Widget: Son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal del dispositivo Android y recibir actualizaciones peridicas. v Intent: Es el elemento bsico de comunicacin entre los distintos componentes Android, como los mensajes o peticiones que son enviados entre los distintos componentes de distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicacin, etc.

27

4. PROPUESTA Desarrollando la aplicacin. 4.1 Descripcin de la biblioteca funcional Para el desarrollo de nuestra aplicacin de gestin SNMP necesitamos utilizar una biblioteca especializada que nos permita ejecutar los comandos requeridos en nuestra aplicacin mvil para realizar las tareas administrativas sobre nuestros equipos de red a ser gestionados. La librera Java WebNMS SNMP API permite crear aplicaciones para gestin y de redes basadas en SNMP para dispositivos Android. Puede ser utilizada para el seguimiento y monitoreo de elementos de red que son escalables y confiables. Esta librera Java provee componentes disponibles para la utilizacin y manejo de las operaciones bsicas del protocolo SNMP, tales como: SNMP GET, SNMP GETNEXT, y SNMP SET. Estos componentes permiten el desarrollo de aplicacin de gestin en SNMPv1, SNMPv2c, and SNMPv3 para dispositivos Android La aplicacin de gestin de SNMP (gestor) construido bajo la utilizacin de esta librera SNMP API puede recibir SNMP traps, que pueden ser procesadas bajo criterios predefinidos para un manejo SNMP efectivo. Esta librera, que ser utilizada para el desarrollo de nuestra aplicacin, fue desarrollada por la empresa SOHO Corporation. Esta librera, que interacta con el protocolo SNMP no es libre ni gratuita, sin embargo se utilizo la edicin de prueba, que es muy til pero contiene algunas limitaciones funcionales

Fuente: ZOHO Corporation, Web SNMP API, 2013 28

4.1.1 Caractersticas principales de la biblioteca Las caractersticas principales de la biblioteca son: Soporta : SNMPv1, SNMPv2c and SNMPv3, Soporta los protocolos de autentificacin: HMAC-SHA-96, HMAC-MD5-96 y los algoritmos de encriptacin: CBC-DES, CBC-3DES, CFB-AES-128, CFB-AES-192, CFB-AES-256. Permite cargar definiciones de MIB de un archivo pre-compilado o serializado para mejorar el rendimiento. Provee conectividad con dispositivos basados en IPv6 and IPv4. Permite hacer Broadcasts de paquetes snmp a travs de la red para descubrir automticamente dispositivos snmp en la red. Es necesario agregar el AdventnetSnmp.jar al proyecto de Android para iniciar el desarrollo de la aplicacin El WebNMS SNMP API Android Edition consiste en una jerarqua de paquetes livianos Java que permiten el desarrollo de aplicaciones de gestin de red en dispositivos Android.

Simplificamos en el siguiente cuadro resumen las caractersticas mencionadas:

Fuente: ZOHO Corporation, Web SNMP API, 2013

29

4.1.2 Descripcin de la biblioteca funcional La arquitectura contiene capas de APIs que proveen el desarrollo diferentes niveles de acceso para el desarrollo de la aplicacin, por ejemplo, pueden utilizarse los high-level APIs contando con los conceptos principales del protocolo SNMP, pero si se cuenta con un conocimiento especializado de SNMP pueden utilizarse las low-level APIs para el desarrollo. Las low-level SNMP API o MIB API pueden ser utilizadas ya sea directamente o a traves de los non UI beans provistos en las high-level API Las low-level API implementan las funciones centrales de SNMP. Esto incluye las clases que facilitan la comunicacin Puente con entidades SNMP y ofrecen seguridad de mensajes y privacidad a las aplicaciones. Soporta comunicacin de mltiples lenguajes con los dispositivos. Provee la referencia para la implementacin de USM y VACM para entidades SNMPv3. La MIB API transmite la informacin sobre los datos disponibles en un agente SNMP. Esta API permite a los programas Java programas tomar ventaja sobre informacin contenida en el modulo de archivos MIB. Tambin facilita la carga y descarga de MIBs en aplicaciones, adems de apoyar una serie de funciones que proveen las propiedades del objeto administrado. Los componentes son construidos usando los datagramas primitivos de SNMP disponibles en las low-level SNMP API. Las High-Level SNMP API consisten en non-UI beans que son construidos usando las funciones SNMP provistas por las low-level API y las MIBs API. La aplicacin a ser desarrollada utilizara las High-Level SNMP API.

30

Fuente: ZOHO Corporation, Web SNMP API, 2013

4.1.3 Requerimientos del sistema para el uso de la biblioteca

Fuente: ZOHO Corporation, Web SNMP API, 2013

31

4.2 Arquitectura de las High-Level API El propsito de las high-level APIs es facilitar el desarrollo de aplicaciones de administracin usando las libreras de SNMP. Los beneficios de usar las high-level APIs incluyen: Incremento en la funcionalidad al usar los mtodos de la librera, que incluyen el performance de las operaciones: GET, GETNEXT, y SET en mltiples variables, envo de traps, obtencin de todas las instancias de variables sobre un identificador de objeto, entre otras. Incremento de soporte para las tablas SNMP.

Los non-UI beans, que utilizan las low-level API y MIBs, forman la columna funcional de las high-level API. Los siguientes son componentes disponibles en el paquete de beans que pueden utilizarse en el desarrollo de las aplicaciones o a applets de administracin: v SnmpTarget para operaciones SNMP sncronas. v SnmpRequestServer - para operaciones SNMP asncronas. v SnmpPoller para realizar consultas de datos SNMP en intervalos especficos. v SnmpTrapReceiver - para recibir traps. v NotificationAdaptorv2candv3only.jpg para usar con el TrapReceiver. v SnmpTable para trabajar con datos tabulares de SNMP. Las high-level API permiten aplicaciones y componentes mas flexible que incorporan funciones SNMP provistas por las low-level API. Las clases requeridas para desarrollas las aplicaciones en las high-level API son provistas en los paquetes: com.adventnet.snmp.beans. Debe aadirse al directorio. Las aplicaciones desarrolladas usando las high-level API deberan importar los paquetes beans. Si se requiere soporte MIB adicional, el paquete com.adventnet.snmp.mibs package debe ser tambin importado.

32

4.3 Utilizacin de las MIBS en las aplicaciones Las aplicaciones de gestin requieren realizar operaciones relacionadas a las MIBs, tales como la carga y anlisis de las MIBs, acceder a los nodos en un rbol de la MIB, obtener informacin de las hojas de los nodos, entre otros. La API de soporte de MIB en la biblioteca WebNMS SNMP API para Android provee el soporte necesario para ejecutar este tipo de operaciones relacionadas a la MIB. 4.3.1 Carga de MIBS La librera WebNMS SNMP API provee diferentes formas flexibles para realizar la carga de MIBs en las aplicaciones. Un archivo MIB puede contener uno o ms mdulos MIB. La API carga todos los archivos de dependencia para poder resolver el modulo MIB. 4.3.2 Descarga de MIBS Cuando se descarga un modulo MIB, este separa roda la informacin del nodo que corresponde al nodo descargado. Cuando el archivo MIB se carga nuevamente, una nueva referencia se crea para el modulo de la MIB. El modulo MIB solo se descarga si es que est presente en el module list. 4.3.3 Acceso a la informacin de un Nodo Cuando una MIB file se carga usando la clase Miboperations, una instancia MibModulelink para javadocs se crea para guardar la informacin sobre el modulo descargada sobre el archivo MIB. La clase MibModule se usa para restringir las operaciones de la MIB a un modulo MIB especifico. Algunos mtodos estn presentes en el MibModule y en la clase MibOperations. Si un mtodo es usado en MibOperations, es aplicable para el nodo en todas las MIBs cargadas en la aplicacin. Si un mtodo de la clase MibModule se usa, est restringido para ese modulo particular. La MIB file se analiza y los MibNodelink para los objetos javadocs son creados para guardar la informacin sobre cada nodo. La clase MibNode representa un nodo MIB en un modulo rbol MIB. Este contiene las referencias de sus padres e hijos y del resto de sus dependencias.

33

La clase LeafSyntax representa la sintaxis de un nodo hoja en un modulo MIB. Las clases MibNode y LeafSyntax proveen los mtodos necesarios para accedes a la informacin de los nodos en un archivo MIB. A parte de esto, las clases tambin proveen las siguientes funciones para la aplicacin de administracin: v Habilidad para explorar el modulo MIB cargado como una lista ordenada de objetos. v Habilidad para accede nodos con relaciones especificas a otros nodos. 4.4 Configuracin de los parmetros del agente SNMP Los siguientes parmetros se van estableciendo al realizar el desarrollo de aplicaciones de administracin: v SNMP Version v Host Name v Port Number v Community Name v Timeout and Retries v Trap Parameters v Max Repetitions v Non Repeaters v Security Parameters v Context Name and Context ID 4.5 Manejo de datagramas La librera WebNMS SNMP API para Android provee clases separadas para los diferentes tipos de datos como ser: Integer32 Integer (Enumerated) Unsigned32 Gauge32 Counter32 Counter64 34

Timeticks OCTET STRING OBJECT IDENTIFIER IpAddress Opaque

BITS

4.6 Operaciones de obtencin y modificacin de datos 4.6.1 SNMP GET La operacin SNMP GET es utilizada por las aplicaciones de administracin de SNMP para obtener uno o ms valores especficos de los objetos administrados por el agente SNMP. Las aplicaciones realizan de forma tpica una solicitud de tipo SNMP GET mediante la provisin del nombre del host al agente y uno o ms OIDs junto con una instancia especifica del OID. El agente responder con un valor de retorno o con un error. La operacin SNMP GET es usada normalmente para obtener variables escalares en la MIB. Cada variable escalar est definida por su OID y su instancia. La instancia se usa para identificar una instancia especifica de una variable escalar. Se especifica aadiendo un ".0" a su OID. Si una solicitud se realiza sin el valor de instancia, el agente retorna un error. 4.6.2 SNMP SET La operacin SNMP SET es utilizada en las aplicaciones de administracin para modificar el valor de un objeto gestionado. Muchos de los objetos gestionados tienen un valor predeterminado mantenido por el agente. Ocasionalmente las aplicaciones pueden requerir realizar la modificacin de una o ms variables MIB usando la operacin SNMP SET. Las aplicaciones realizan de forma tpica una operacin SNMP SET otorgando el host name al agente, una o ms OIDs junto con su instancia y el nuevo valor. El agente procesa el nuevo valor a la variable de la MIB. Si ocurre un error, entonces no se asigna el nuevo valor a la variable.

35

4.7 Traps y notificaciones 4.7.1 Recepcin de notificaciones La clase bean SnmpTrapReceiver en la high-level API se usa para recibir traps de tipo v1/v2/v3. Esta clase, escucha las traps en un puerto especfico. Cuando un trap es recibido por un agente, este revisa la versin del trap. Si el trap recibido es de v3, este ejecuta una autenticacin de tipo v3 y dispara un evento trap a todos los objetos registrados como listener oyentes. La clase TrapEvent contiene el Trap-PDU. Este evento de trap, contiene la informacin del trap que es enviada a los objetos listerner registrados. El objeto trap listener luego maneja el trap recibido.

4.8 Pruebas, simulacin y ejecucin. Se ejecutaron pruebas dentro un ambiente controlado, realizando la simulacin de los posibles casos de uso identificados para el funcionamiento de la aplicacin. A continuacin se detallan dichas pruebas:

4.8.1 Obtencin de variables MIB del agente SNMP remoto Para la obtencin de las variables MIB se realizaron los siguientes pasos: Se Ingres la siguiente informacin en el formulario presentado:

Fuente propia: Salinas, Fernandez 2013 - Formulario de la informacin requerida para realizar la accin Get.

36

Target Host, La IP del equipo/servidor agente del cual se desea obtener la informacin. Target Port, el puerto del equipo/servidor agente. SNMP Versin, La versin de SNMP a utilizarse. Community, La comunidad a utilizarse. Timeout, El tiempo de espera en segundos. Retries, El nmero de reintentos a realizarse.

Se ingres el listado de variables MIBs (OIDs)

Fuente propia: Salinas, Fernandez 2013- Adicin de una variable MIB(OID). Se verific el listado de variables MIB ingresadas. Se ejecut la operacin Get con el botn SNMP Get. Dicha accin despleg la informacin deseada.

Fuente propia: Salinas, Fernandez 2013 - Resultado de la operacin.

37

4.8.2 Modificacin de valores de las variables MIB de la estacin remota Para la modificacin de los valores de las variables MIB se realizaron los siguientes pasos: Se ingreso la siguiente informacin en el formulario presentado:

Fuente propia: Salinas, Fernandez 2013- Interfaz de la opcin Set. Target Host, La direccin IP del equipo/servidor agente del cual se desea modificar la informacin. Target Port, el puerto del equipo/servidor agente. Versin, La versin de SNMP a utilizarse. Community, La comunidad a utilizarse. Timeout, El tiempo de espera en segundos. Retries, El numero de reintentos a realizarse.

38

Se registr el listado de variables MIBs (OIDs) a ser modificadas.

Fuente propia: Salinas, Fernandez 2013- Formulario adicin de la variable a modificar. Se verific el listado de variables MIB ingresadas.

Fuente propia: Salinas, Fernandez 2013 - Listado de las variables a ser modificadas. Se ejecut la operacin Set con el botn SNMP Set. Dicha accin realizo la modificacin requerida y despleg el resultado del mismo.

Fuente propia: Salinas, Fernandez 2013 - Resultado de la operacin Set. Muestra las variables modificadas. 39

4.8.3 Recepcin de traps de notificacin Para la recepcin de los traps de notificacin, se realizaron los siguientes pasos: Se ingreso el puerto donde se recibirn los traps enviados por la estacin remota. Luego se inici dicho proceso con el botn Start.

Fuente propia: Salinas, Fernandez 2013 - Interfaz de la opcin Trap Receiver. Se realizo el envo de traps con la herramienta TrapSender de Mib Browser.

Fuente propia: Salinas, Fernandez 2013 - Interfaz herramienta TrapSender de Mib Browser. Se detuvo el proceso de monitoreo de traps con el botn Stop. 40

Se verific la recepcin del listado de traps.

Fuente propia: Salinas, Fernandez 2013 - Listado de traps recibidos.

Se verific la informacin detallada de los traps recibidos.

Fuente propia: Salinas, Fernandez 2013 - Informacin detallada del trap recibido.

41

4.8.4 Monitoreo de las estaciones remotas Para el monitoreo de las estaciones remotas se realizaron los siguientes pasos: Se verific la actividad de dichas estaciones mediante el log desplegado por la aplicacin.

Fuente propia: Salinas, Fernandez 2013 - Interfaz de monitoreo de equipos/servidores.

42

CONCLUSIONES Y RECOMENDACIONES Pudimos cumplir con los objetivos de estudio establecidos, habiendo logrado el desarrollo de la aplicacin de administracin de equipos de red bajo el protocolo SNMP, alcanzando los siguientes objetivos especficos: 1. Determinamos que el sistema operativo mvil ANDROID era el ms apropiado para el desarrollo de la aplicacin. Con la ayuda de la librera WebNMS SNMP API, pudimos desarrollar la aplicacin, en una interfaz grafica amigable y sencilla para el usuario, la cual nos permite: 1.1 1.2 Obtener, registrar y visualizar los mensajes SNMP Identificar y manejar los PDUs: Get Request, Set Request y Trap Receiver

2. Implementamos la aplicacin en un equipo mvil y realizamos la gestin de un equipo de red, como un servidor de aplicacin o una computadora, esto es evidenciado en la seccin 4.8 Pruebas, simulacin y ejecucin. La biblioteca WebNMS SNMP API es muy amplia y dados los alcances determinados para la elaboracin de este trabajo, no pudimos llegar a explotarla en su totalidad, sin embargo sugerimos que para ampliar los conocimientos y prcticas de este proyecto se podran realizar los siguientes puntos: Utilizacin de la librera en su versin completa (para este proyecto se utilizo la versin libre de evaluacin) Identificar y manejar los PDUs adicionales no contemplados en el alcance de este proyecto como ser: Get Next Request, Get Bulk Request, Trap Sender, entre otros. Desarrollo de una interfaz de usuario ms amigable. Inclusin de ayuda para el llenado de campos de datos necesarios para lograr la funcionalidad de la aplicacin

43

BIBLIOGRAFA Introduccin a SNMP [en lnea]. [citado junio 30, 2013] Disponible en web: http://www.unainet.net/documents/SNMP.pdf Simple Network Management Protocol (SNMP) and Traps [en lnea].[citado julio 6, 2013] Disponible en web: http://support.microsoft.com/kb/172879/en Dashboards. Android [en lnea]. [citado julio 6,2013] Disponible en web: http://developer.android.com/about/dashboards/ Desarrollo de aplicaciones mviles Android [en lnea]. [citado julio 7, 2013] Disponible en web: http://best.advicebase.net/es/losdispositivosmoviles/20130509185239.html Android: Programacin de aplicaciones para mviles [en lnea]. [citado julio 7, 2013] Disponible en web: http://www.androidcurso.com/index.php/recursosdidacticos/tutoriales-android/31-unidad-1-vision-general-y-entorno-dedesarrollo/96-introduccion WebNMS SNMP API Android Edition [en lnea]. [citado agosto 12, 2013] Disponible en web: http://www.webnms.com/snmpapi-android/

44

SNMP Monitor
Manual de usuario v.1.0

Fecha 2013-08-22 2013-08-24

Versin 1.0 1.0

Descripcin Creacin del documento Revisin del documento

Autor Iberth Fernndez Paola Salinas

1. 2. 3. 4. 5. 6.

Introduccin ...................................................................................................... 5 Men de Inicio ................................................................................................... 5 Get...................................................................................................................... 6 Set ...................................................................................................................... 7 Trap Receiver .................................................................................................... 9 Monitor ............................................................................................................ 11

1. INTRODUCCIN
SNMP Monitor, es una aplicacin mvil desarrollado para la plataformaAndroid. El cual permite realizar la administracin y monitoreo de equipos/servidores mediante el protocolo SNMP. El desarrollo de la aplicacin esta basada en el uso de la librera: WebNMS SNMP API forAndroid, la cual esta licenciada por ZohoCorporationPvt. Ltd.

A continuacin se indicara el uso del mismo.

2. MEN DE INICIO
El men de inicio presenta las opciones/operaciones disponibles que pueden realizarse con la aplicacin. Estas opciones son: Get, permite obtener informacin del equipo (agente). Set, permite modificar una determinada propiedad del equipo (agente). Trap receiver, permite obtener los traps (ColdStart, WarmStart, LinkUp, LinkDown, AuthenticationFailure, etc.) enviados por los equipos agente. Monitor, permite ver el estado de la conexin de los agentes monitoreados.

Pantalla de inicio.

3. GET
La opcin Get, permite ejecutar un Get-request. El cual es utilizado por la aplicacin para obtenerelvalordeunao ms variables MIB del agente SNMP de la estacin remota. La interfaz presenta un formulario con la siguiente informacin:

Interfaz de la opcin Get. Target Host, La IP del equipo/servidor agente del cual se desea obtener la informacin. Target Port, el puerto del equipo/servidor agente. SNMP Version, La versin de SNMP a utilizarse. Community, La comunidad a utilizarse. Timeout, El tiempo de espera en segundos. Retries, El numero de reintentos a realizarse.

La parte inferior presenta los siguientes botones:

Botones de la interfaz Get.

Add OID, el cual permite agregar el OID de la informacin/propiedad a ser obtenida. Para lo cual despliega una pantalla emergente que contiene el formulario de adicin del OID.

Adicin de un OID. List, el cual lista los OID agregados. SNMP Get, el cual realiza la operacin Get, que obtiene la informacin solicitada.

Resultado de la operacin Get.

4. SET
El botn Set, permite ejecutar unSet-request. Constituye el mecanismo para que el gestor modifique los valores de las variables MIB de la estacin remota. Esta interfaz presenta un formulario con la siguiente informacin:

Interfaz de la opcin Set. Target Host, La IP del equipo/servidor agente del cual se desea modificar la informacin. Target Port, el puerto del equipo/servidor agente. Versin, La versin de SNMP a utilizarse. Community, La comunidad a utilizarse. Timeout, El tiempo de espera en segundos. Retries, El numero de reintentos a realizarse.

La parte inferior presenta los siguientes botones: Add OID, el cual permite agregar el OID de la variable a ser modificada. Para lo cual despliega una pantalla emergente que contiene el formulario de modificacin de una variable. Se debe ingresar el OID, el tipo de la variable (STRING, INTEGER, etc), y el nuevo valor de dicha variable. 8

Formulario adicin del a variable a modificar. List, el cual lista las variables agregadas para su modificacin.

Listado de las variables a ser modificadas. SNMP Set, el cual realiza la operacin Set, que modifica las variables ingresadas.

Resultado de la operacin Set. Muestra las variables modificadas.

5. TRAP RECEIVER
Un trap da lugar, cuando se produce un determinado evento o condicin en la estacin remota, el agente enva un trap para notificarlo al gestor. Dado que el mensaje se enva de forma sncrona y en cualquier momento, la estacin de gestin debe monitorizar la red en todo instante. Esta opcin permite realizar dicho monitoreo. La interfaz en la parte superior, presenta un formulario con la siguiente informacin: Trapport, el cual define el puerto en el cual se escucharan los traps enviados por una estacin remota. Start, Inicia el proceso de monitoreo de traps. Stop, Detiene el proceso de monitoreo de traps.

Interfaz de la opcin Trap Receiver. La parte central presenta un listado de todos los traps recibidos.

Listado de traps recibidos.

10

Cada elemento del listado mencionado despliega la informacin en detalle del trap recibido.

Informacin detallada del trap recibido.

6. MONITOR
El botn Monitor presenta un log que permite observar el estado de los equipos/servidores monitoreados. Este indica si el un agente se encuentra activo o inactivo.

11

Interfaz de monitoreo de equipos/servidores.

12

Potrebbero piacerti anche