memoria v7.0 - Universidad de Concepción
Transcripción
memoria v7.0 - Universidad de Concepción
UNIVERSIDAD DE CONCEPCIÓN FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Profesor Patrocinante: Dr. Mario Medina C. Informe de Memoria de Título Para optar al título de: Ingeniero Civil Electrónico Análisis de variables criticas en plataformas de telecomunicaciones de nueva generación, captura de indicadores y entrega de resultados Concepción, Junio de 2006 Humberto Eduardo Peralta Manríquez Profesor Patrocinante Universidad de Concepción Facultad de Ingeniería Dr. Mario Medina C. Departamento de Ingeniería Eléctrica Análisis de variables criticas en plataformas de telecomunicaciones de nueva generación, captura de indicadores y entrega de resultados Humberto Eduardo Peralta Manríquez Informe de Memoria de Título Para optar al Título de Ingeniero Civil Electrónico Junio 2006 i RESUMEN Este proyecto busca planificar las capacidades de las plataformas de telecomunicaciones de nueva generación. Para lograr esto, se desarrollará un sistema para interrogar las plataformas y analizar las respuestas. El método de análisis clasifica los resultados obtenidos al interrogar, para así poder ver en forma resumida la ocupación de la plataforma. Los indicadores utilizados para caracterizar las capacidades de las plataformas son obtenidos a través de los servicios que se ofrecen en la empresa. La captura de los indicadores se hace por medio de SNMP, un protocolo de consulta de información específica a equipos. Éste protocolo se va a manejar a través de Perl, un lenguaje de programación multipropósito, que almacena los resultados en archivos de texto. El método de análisis de los resultados obtenidos es un cálculo matemático que clasificará la ocupación de los equipos y además hará una proyección de la cantidad de días que le quedan al equipo de servicio, antes de llegar a un agotamiento de la capacidad. Éste análisis se despliega en un sitio Web, en el cual se clasifican los equipos según los resultados de los cálculos y según ubicación geográfica. Finalmente para, ver en forma clara las variaciones de las mediciones realizadas semanalmente, se graficarán los resultados en el sitio Web, y además la opción de exportar los resultados a planillas de cálculo de Microsoft Excel. ii Agradecimientos A mi familia, la parte mas importante de mi vida, y gracias a ellos he llegado hasta acá. A Juan Loza, por creer en mí e integrarme al grupo de trabajo de la empresa Telmex S.A. Al Profesor Mario Medina, por aceptar mi propuesta de realizar mi memoria en una empresa. A mi amorcito, por apoyarme y creer en mí. iii Tabla de Contenidos Capítulo 1 Introducción .....................................................................1 Capítulo 2 Detalles técnicos...............................................................8 2.1 Plataformas .....................................................................................8 2.1.1 Plataforma DSLAM ....................................................................8 2.1.2 Plataforma switches.................................................................12 2.1.3 Plataforma IP-MPLS.................................................................14 2.2 Realidad de la empresa ..................................................................18 Capítulo 3 Protocolos de administración ..........................................19 3.1 Protocolos de desarrollo .................................................................19 3.2 Protocolo SNMP .............................................................................21 3.3 SNMP en las plataformas ...............................................................26 3.3.1 DSLAM ....................................................................................26 3.3.2 Switches..................................................................................28 3.3.3 IP-MPLS ..................................................................................29 3.4 Indicadores en las MIB ..................................................................29 3.4.1 MIB-II (RFC1213) ....................................................................30 3.4.2 OLD-CISCO-CPU-MIB .............................................................33 3.4.3 CISCO-VTP-MIB ......................................................................34 3.4.4 Q-BRIDGE-MIB .......................................................................34 3.4.5 MPLS-VPN-MIB .......................................................................34 3.4.6 ENTITY-MIB ............................................................................35 Capítulo 4 Captura...........................................................................36 4.1 Preparación del servidor ................................................................37 4.2 Estructura del capturador .............................................................40 4.2.2 Entrada ...................................................................................42 4.2.3 Proceso....................................................................................43 4.2.4 Salida......................................................................................48 4.3 Obtener indicadores de los equipos................................................53 iv 4.3.2 Conectarse al equipo ...............................................................54 4.3.3 Determinar el nombre del equipo .............................................55 4.3.4 Ocupación de interfaces ..........................................................56 4.3.4.1 DSLAM..............................................................................56 4.3.4.2 Switches............................................................................59 4.3.4.3 IP-MPLS ............................................................................64 4.3.5 Numero de VLAN .....................................................................70 4.3.5.1 DSLAM..............................................................................70 4.3.5.2 Switches............................................................................70 4.3.6 CPU.........................................................................................71 4.3.7 Slot disponibles .......................................................................72 4.3.8 Sub-Interfaces .........................................................................73 4.3.9 Numero VRF’s .........................................................................74 4.3.10 Ancho de banda.....................................................................75 4.4 Automatizar la captura ..................................................................81 Capítulo 5 Análisis...........................................................................83 5.2 Proceso de regresión ......................................................................87 5.2.1 Modelo lineal ...........................................................................87 5.2.2 Modelo no lineal ......................................................................91 5.2.2.1 Modelo potencial ...............................................................91 5.2.2.2 Modelo exponencial ...........................................................92 5.2.2.3 Modelo logarítmico ............................................................93 5.3 Estructura análisis ........................................................................95 5.3.1 Calcular porcentaje de ocupación y días inventario ..................95 5.3.1.2 Archivos de entrada...........................................................96 5.3.1.3 Análisis .............................................................................97 5.3.1.4 Archivos de salida ........................................................... 103 5.3.2 Clasificar resultados según días inventario ............................ 105 5.3.2.2 Archivos de entrada......................................................... 106 5.3.2.3 Análisis ........................................................................... 106 5.3.2.4 Archivo de salida ............................................................. 110 v 5.3.3 Clasificar resultados según porcentaje de ocupación.............. 110 5.3.3.2 Archivos de entrada......................................................... 111 5.3.3.3 Análisis ........................................................................... 112 5.3.3.4 Archivo de salida ............................................................. 113 5.4 Estructura de despliegue ............................................................. 113 5.4.2 Menú principal ...................................................................... 114 5.4.3 Área de contenido .................................................................. 115 5.4.3.1 Plataforma....................................................................... 116 5.4.3.2 Bitácora .......................................................................... 120 5.4.3.3 Equipos consultados ....................................................... 121 5.4.3.4 Administración del capturador ........................................ 122 Capítulo 6 Conclusiones ................................................................124 Bibliografia ....................................................................................128 Capítulo 7 Anexos ..........................................................................132 vi Lista de Tablas Tabla 1.1 Equipos en las plataformas .......................................................2 Tabla 1.2 Interfaces en los equipos ...........................................................3 Tabla 1.3 Indicadores en los servicios .......................................................6 Tabla 2.1 Interfaces en los switch Catalyst..............................................13 Tabla 2.2 Módulos ethernet Cisco 7609 ..................................................17 Tabla 3.1 Comandos SNMP.....................................................................23 Tabla 3.2 Tipos de interfaces ..................................................................31 Tabla 4.1 Comparación Perl y otros lenguajes de programación ..............36 Tabla 4.2 Características del equipo de captura ......................................37 Tabla 4.3 Parámetros del archivo infoPLATAFORMA.txt ..........................43 Tabla 4.4 ID de identificadores................................................................51 Tabla 4.5 ID de plataforma .....................................................................52 Tabla 4.6 Indicadores a capturar ............................................................53 Tabla 4.7 Tipos interfaces IP-MPLS .........................................................65 Tabla 4.8 Variables Interfaces IP-MPLS ...................................................66 Tabla 4.9 Horario de captura para las plataformas..................................81 Tabla 5.1 Parámetros de la ecuación de la recta......................................88 Tabla 5.2 Modelo lineal regresión de mínimos cuadrados ........................90 Tabla 5.3 Detalles modelo potencial ........................................................91 Tabla 5.4 Parámetros modelo potencial ...................................................92 Tabla 5.5 Detalles modelo exponencial....................................................92 Tabla 5.6 Parámetros modelo exponencial...............................................93 Tabla 5.7 Detalles modelo logarítmico .....................................................94 Tabla 5.8 Parámetros modelo logarítmico................................................94 Tabla 5.9 Casos de días inventario........................................................ 100 Tabla 5.10 Parámetros del archivo DATAWEB-PLATAFORMA.txt........... 104 Tabla 5.11 Parámetros del archivo DATOWEB-PLATAFORMA-GRAF.txt 105 Tabla 5.12 Zonas geográficas ................................................................ 108 vii Tabla 5.13 Formato salida del archivo RESUMENWEB-PLATAFORMA.txt ............................................................................................................ 110 Tabla 5.14 Formato salida del archivo RESUMENWEB-PLATAFORMAOC.txt .................................................................................................. 113 Tabla 6.1 Detalles proceso de captura y análisis ................................... 125 viii Lista de Figuras Figura 1.1 Relación plataforma, equipos, servicios ....................................4 Figura 2.1 Conexión cliente DSLAM ..........................................................9 Figura 2.2 Chasis Zyxel IES1000 ............................................................10 Figura 2.3 Conexión modulo AAM1008 ...................................................11 Figura 2.4 Interconexión de los conmutadores ........................................12 Figura 2.5 Modulo GBIC .........................................................................13 Figura 2.6 Switch Catalyst serie 2950.....................................................14 Figura 2.7 Cisco 7206.............................................................................15 Figura 2.8 Cisco 7507.............................................................................16 Figura 2.9 Cisco 7609.............................................................................17 Figura 3.1 Elementos protocolo SNMP ....................................................21 Figura 3.2 Componentes del agente ........................................................22 Figura 3.3 MIB TREE..............................................................................25 Figura 3.4 Configurar SNMP ...................................................................28 Figura 4.1 SSH Secure Shell client .........................................................40 Figura 4.2 Relación del capturador y las plataformas ..............................41 Figura 4.3 Estructura del capturador .....................................................41 Figura 4.4 Ocupación puertas en equipos DSLAM...................................56 Figura 4.5 Interfaces lógicamente ocupadas............................................60 Figura 4.6 Formato del crontab ..............................................................82 Figura 5.1 Evolución del indicador..........................................................83 Figura 5.2 Tendencia de la ocupación .....................................................84 Figura 5.3 Proyección del indicador ........................................................85 Figura 5.4 Días inventario ......................................................................86 Figura 5.5 Ecuación de la recta ..............................................................87 Figura 5.6 Modelo mínimos cuadrados ...................................................88 Figura 5.7 Representación del coeficiente de determinación R2................90 Figura 5.8 Estructura del análisis...........................................................95 ix Figura 5.9 Trabajo del script calculador_PLATAFORMA.pl.......................96 Figura 5.10 Caso “No hay cambios” días inventario............................... 100 Figura 5.11 Caso “Valor en días” días inventario ................................... 101 Figura 5.12 Caso “Agotado” días inventario........................................... 101 Figura 5.13 Caso “Desocupación” días inventario.................................. 102 Figura 5.14 Estructura de clasificación según días inventario ............... 106 Figura 5.15 Estructura de clasificación según porcentaje de ocupación 111 Figura 5.16 Web del capturador............................................................ 114 Figura 5.17 Menú de la web del capturador .......................................... 115 Figura 5.18 Filtro de equipos consultados............................................. 116 Figura 5.19 Respuesta al filtro de región ............................................... 117 Figura 5.20 Dialogo de resumen para los días inventario ...................... 118 Figura 5.21 Resumen porcentaje de ocupación ..................................... 118 Figura 5.22 Resumen días inventario.................................................... 118 Figura 5.23 Detalle de información de los equipos ................................ 119 Figura 5.24 Exportar a Microsoft Excel ................................................. 119 Figura 5.25 Grafico de ocupación ......................................................... 120 Figura 5.26 Bitácora del capturador ..................................................... 121 Figura 5.27 Lista de los equipos consultados ........................................ 121 Figura 5.28 Agregar equipo................................................................... 122 Figura 5.29 Eliminar equipo ................................................................. 123 Figura 6.2 Ocupación puertas equipo plataforma DSLAM ..................... 127 Figura 6.3 Estado del equipo plataforma DSLAM .................................. 127 x Lista de Listados Listado 3.1 Objeto MIB “ifspeed” .............................................................26 Listado 3.2 Habilitar SNMP switch Cisco Catalyst ...................................28 Listado 3.3 Habilitar SNMP router Cisco .................................................29 Listado 3.4 Características de hardware .................................................35 Listado 4.1 Instalación de los módulos Perl.............................................38 Listado 4.2 Configuración interfaces capturador .....................................39 Listado 4.3 Sección del archivo infoPLATAFORMA.txt .............................43 Listado 4.4 Carga de librerías del archivo principalPLATAFORMA.pl .......44 Listado 4.5 Cargar archivos de entrada y salida ......................................45 Listado 4.6 Comprobar equipo antes de iniciar consultas........................46 Listado 4.7 Llamada a la función de captura de cada indicador...............47 Listado 4.8 Inicio del archivo PLATAFORMA.pm......................................47 Listado 4.9 Inicio de la consulta de un indicador ....................................48 Listado 4.10 Respuesta del módulo de consulta ......................................48 Listado 4.11 Detalles del archivo infoPLATAFORMA.log...........................49 Listado 4.12 Formato del archivo DATO-PLATAFORMA.txt......................52 Listado 4.13 Iniciar sesión SNMP............................................................54 Listado 4.14 Consultar nombre del equipo ..............................................55 Listado 4.15 Obtener el ID de las VLAN...................................................57 Listado 4.16 Interfaces con ID de VLAN validas.......................................59 Listado 4.17 Obtener el index de las Interfaces (ifIndex) ..........................61 Listado 4.18 Obtener ifOperStatus e IfAdminStatus ................................62 Listado 4.19 Ocupación según tipo de interfaces.....................................64 Listado 4.20 Capturar interfaces IMA......................................................66 Listado 4.21 Capturar interfaces serial ...................................................67 Listado 4.22 Capturar Interfaces WAN ....................................................67 Listado 4.23 Capturar interfaces GIGA ...................................................67 Listado 4.24 Capturar interfaces fast ethernet ........................................68 xi Listado 4.25 Capturar interfaces POS .....................................................68 Listado 4.26 Capturar interfaces HSSI ....................................................69 Listado 4.27 Contabilizar interfaces ocupadas ........................................69 Listado 4.28 Cantidad VLAN en switches ................................................71 Listado 4.29 Captura porcentaje ocupación del CPU ...............................72 Listado 4.30 Captura slot disponibles en la plataforma IP-MPLS .............73 Listado 4.31 Capturar sub-interfaces......................................................73 Listado 4.32 Capturar VRF en la plataforma IP-MPLS .............................74 Listado 4.33 Primera captura del ancho de banda...................................77 Listado 4.34 Segunda captura del ancho de banda .................................78 Listado 4.35 Captura del ancho de banda nominal (ifSpeed) ...................78 Listado 4.36 Análisis del ancho de banda ...............................................80 Listado 4.37 Conversión de unidades de ancho de banda........................80 Listado 4.38 Configuración del crontab en el capturador.........................82 Listado 5.2 Carga de los archivos históricos............................................98 Listado 5.3 Carga de todos los indicadores capturados ...........................99 Listado 5.4 Condiciones de calculo de los días dnventario..................... 103 Listado 5.5 Clasificación de días inventario........................................... 108 Listado 5.6 Clasificación según zona geográfica .................................... 109 Listado 5.7 Clasificación según el porcentaje de ocupación ................... 112 Listado 7.1 MIB Cisco Catalyst serie 2950 ............................................ 133 Listado 7.2 MIB Cisco Catalyst serie 3550 ............................................ 134 Listado 7.3 MIB Cisco serie 12000 ........................................................ 136 Listado 7.4 MIB Cisco serie 7200 .......................................................... 138 Listado 7.5 MIB Cisco serie 7500 .......................................................... 140 Listado 7.6 MIB Cisco serie 7600 .......................................................... 144 Listado 7.7 Tipos de Interfaces definidas en IANA ................................. 148 Listado 7.8 Procedimiento de cálculo de los modelos de regresión ......... 151 xii Abreviaciones ADSL Asymmetric Digital Subscriber Line ATM Asynchronous Transfer Mode BW Bandwidth CO Central Office CPU Central Processing Unit DSLAM Digital Subscriber Line Access Multiplexer FTP File Transfer Protocol G.SHDSL G.991.2 Symmetric High-bit-rate DSL GBIC Gigabit Interface Converter GSR Gigabit Switch Router GUI Graphical User Interface HSSI High Speed Serial Interface IANA Internet Assigned Numbers Authority ICMP Internet Control Message Protocol IMA Inverse Multiplexing for ATM IP-MPLS Internet Protocol-MultiProtocol Label Switching MAC Media Access Control address MDF Main Distribution Frame MIB Management Information Base MII Media Independent Interface NMS Network Management System OID Object Identifier OSI Open System Interconnection POS Packet Over SONET RFC Request for Comments RMON Remote Monitoring xiii RSP Route Switch Processors SNMP Simple Network Management Protocol Trap An SNMP Event UDP User Datagram Protocol VLAN Virtual LAN VPN Virtual Private Network 1 CAPÍTULO 1 INTRODUCCIÓN Este proyecto surge de las necesidades de una empresa de telecomunicaciones como es TELMEX S.A., de conocer en forma rápida y precisa el estado de ocupación de los equipos que posee a nivel nacional. Esto se debe a que el mercado de las telecomunicaciones, es un mercado con un crecimiento acelerado, que constantemente está ofreciendo nuevos servicios a los clientes, por lo que no se pueden aceptar errores en la información de los equipos que soportan los servicios. Por ejemplo, puede darse el caso que en comuna del país se ofrezca un servicio de Internet determinado, pero posteriormente se determine que los equipos instalados para soportar dicho servicio se encuentren ya funcionando a su máxima capacidad, y no es posible agregar a este nuevo abonado. Esta situación se produce debido a la utilización de información desactualizada entre las distintas áreas de la empresa. Frente a las dificultades asociadas a mantener al día la información de utilización de los equipos, se opta por la creación de una herramienta que obtenga la información necesaria de los equipos para poder ofrecer servicios. Los servicios para los cuales se desarrollará la Herramienta son, Internet Banda Ancha, IP-Business e Internet Dedicada; servicios que están orientados a distintos tipos de clientes. Para llegar a los clientes, estos servicios se encuentran dentro de plataformas que se encuentran relacionadas unas con otras, y que dentro de las cuales existen equipos. 2 Una Plataforma se define como un grupo de equipos que poseen las mismas características y prestan la misma utilidad. Éstas no se ven divididas por marca del equipo o lugar geográfico. Entre las plataformas existe una comunicación que produce una dependencia al ofrecer un servicio. Las plataformas sobre las cuales se desarrolla el proyecto son DSLAM, SWITCHES e IP-MPLS. Se pueden ver en la Figura 1.1. Cada plataforma, entrega servicios de forma directa o indirecta: DSLAM: Esta plataforma entrega los servicios en forma directa tanto a hogares como empresas. SWITCHES: Esta diseñada para unir distintas redes, conmutando paquetes de datos. Puede dar servicio en forma directa o a través de la Plataforma DSLAM. IP-MPLS: Plataforma para enrutar los paquetes de datos. No genera servicios en forma directa, lo hace a través de los switch o los DSLAM. Dentro de cada Plataforma se presentan equipos, como se muestra en la Tabla 1.1. Plataforma Equipo DSLAM IP DSLAM SWITCHES SWITCH ETHERNET IP-MPLS ROUTERS Tabla 1.1 Equipos en las plataformas 3 Cada equipo presenta diferentes tipos de interfaces o puertos de comunicación, según las características del servicio que ofrecen. Para los DSLAM se presentan 3 tipos de interfaces, para los switch ethernet se presentan 2 tipos se interfaces, en cambio para los routers hay mas variedad de interfaces, pero sólo 2 tipos son necesarias para los servicios del proyecto. Las interfaces relacionadas con los equipos se muestran en la Tabla 1.2. Equipo Tipo de Puerto ADSL IP DSLAM G.SHDSL FAST ETHERNET SWITCH ETHERNET FAST ETHERNET GIGA FAST-ETHERNET ROUTERS GIGA Tabla 1.2 Interfaces en los equipos Una estructura general, que relaciona servicios, interfaces se encuentra en la Figura 1.1. plataformas, equipos, 4 Figura 1.1 Relación plataforma, equipos, servicios Anteriormente se ha referido a servicios dados por los equipos. Estos servicios son: Internet banda ancha: Servicio dedicado a hogares, posee un ancho de banda asimétrico de bajada y subida de datos. Utiliza la tecnología de comunicaciones ADSL que comparte voz y datos sobre líneas de cobre. Las velocidades de acceso van desde 256Kbps/128Kbps hasta 2Mbps/512Kbps. 5 IP-Bussines: Servicio dedicado a empresas PYMES, las cuales lo usan para transmitir datos localmente entre sucursales o bien, para transmitir datos en el ámbito nacional. El servicio utiliza la tecnología G.SHDSL que ofrece un ancho de banda simétrico que permite transmitir información de forma dedicada sobre líneas de cobre. Internet dedicado: Servicio dedicado para corporaciones y grandes empresas, que buscan aprovechar las ventas de Internet en sus e-bussines. Este servicio ofrece un ancho de banda desde 64Kbps hasta 1Gbps. El acceso se realiza en líneas de cobre o fibra óptica dedicadas. Cada servicio utiliza una interfaz de un switch ethernet o IP DSLAM, lo que también representa una interfaz en un router. Para dar un servicio, no sólo basta con conectarlo a una interfaz, también es necesario configurar el servicio, la configuración del servicio se realiza a travéz el sistema operativo de los equipos, generándose otros parámetros. Es necesario consultar esos indicadores para poder determinar en forma exacta el estado de ocupación de un equipo. Los indicadores se ven en la Tabla 1.3. Se encuentran asociados a uno de los servicios. 6 Servicio Indicadores Interfaz en IP DSLAM (ADSL) Internet Banda Ancha VLAN en IPDSLAM (ADSL) Sub-Interfaz en ROUTER Interfaz en IP DSLAM (G.SHDSL) IP-Bussines VLAN en IP DSLAM (G.SHDSL) Interfaz SWITCH ETHERNET Internet Dedicado VLAN SWITCH ETHERNET Sub-Interfaz en ROUTER Tabla 1.3 Indicadores en los servicios Para dar los servicios es necesario crear VLAN y sub-interfaces: VLAN: Representa una red de área local virtual, y cuando los computadores se encuentran dentro de la misma VLAN, se comportan como si estuvieran conectados por un mismo cable, aunque se encuentren en segmentos de red diferentes. Sub-Interfaz: Es la parte lógica de una interfaz física en un router, define una subred que se asociada a una VLAN. Entonces a través de una interfaz de un router se pueden ofrecer la cantidad de servicios según la cantidad de sub-interfaces que se creen. De todo lo descrito anteriormente, ésta nueva herramienta para la empresa consultará a todos los equipos, y obtendrá los indicadores anteriores para analizar la ocupación. 7 Para realizar las consultas no se debe sobrecargar los equipos, debido a que se encuentran operando con tráfico de clientes, y sobrecargarlos podría perjudicar el servicio. Por lo tanto se consulta en horarios de bajo tráfico. Se utiliza SNMP, Protocolo Simple de Administración de Redes, que está diseñada para consultar una gran cantidad de variables a equipos, sin sobrecargar el mismo. Se proporciona una ventana de consultas, para obtener datos actualizados, de siete días hábiles. Si se realiza en forma periódica se puede realizar una proyección de la ocupación de los recursos y así planear demandas futuras, y prever la adquisición de nuevos equipos. 8 CAPÍTULO 2 DETALLES TÉCNICOS En este capitulo de entregará una visión de lo global a lo particular de las Plataformas de las cuales se desarrollará la herramienta, incluyendo además una descripción de los equipos y las interfaces asociadas. La descripción se realizara en forma detallada y así conocer el hardware al que vamos a consultar la información, para poder comprobar si las respuestas obtenidas tienen relación con las características del equipo. Lo anterior se refleja en conocer el tipo de equipo, interfaz. O la cantidad de ranuras y cuales ya se encuentran utilizadas. Luego, conociendo las características de los equipos se describirá la realidad de la empresa y cómo se resuelve el problema en la actualidad. 2.1 PLATAFORMAS 2.1.1 Plataforma DSLAM Se compone por equipos DSLAM (Digital Subscriber Line Access Multiplexer). Son equipos que proporcionan al cliente servicios DSL utilizando pares trenzados de cobre como medio. La conexión del servicio a través de un DSLAM se ve en forma general en la Figura 2.1, donde los clientes pueden estar conectados a través de interfaces ADSL o G.SHDSL. 9 Figura 2.1 Conexión cliente DSLAM En este trabajo se utilizo el DSLAM Zyxel-IES1000. Este DSLAM consta de 2 ranuras, en cada una de las cuales se puede instalar un nuevo módulo ADSL o G.SHDSL, como se muestra en la Figura 2.2. Estos módulos son: SAM1008 (G.SHDSL Access Module): Es un módulo de red multiplexor de 8 puertos. AAM1008 (ADSL Access Module): Es un módulo de red multiplexor de 8 puertos, que tiene integrado un splitter (divisor de frecuencias) gracias al cual el módulo puede transportar voz (0 a 4 KHz) y servicio ADSL (sobre 4KHz) simultáneamente sobre el mismo par trenzado de cobre. 10 Figura 2.2 Chasis Zyxel IES1000 Para el servicio IP-Business, que se entrega a través de la tarjeta SAM1008, se realiza la conexión desde la interfaz G.SHDSL al MODEM del usuario a través del par de cobre telefónico. Para el servicio Internet Banda Ancha, el módulo AAM1008 trabaja como multiplexor, con la señal, datos+telefonía. ⇒ La señal de datos+telefonía sale de la interfaz ADSL hacia el cliente. En el cliente se instala un filtro para dividir las frecuencias, separando datos de telefonía. La señal de telefonía va al teléfono del cliente y los datos hacia el MODEM del mismo. Como se muestra en la Figura 2.3. 11 Figura 2.3 Conexión modulo AAM1008 La configuración del equipo se puede hacer por medio de consola (puerto serial), telnet, SNMP, y Web. 12 2.1.2 Plataforma switches Se compone por equipos conmutadores que sirven para interconectar redes. Un conmutador interconecta dos o más segmentos de red pasando información entre ellos según la dirección MAC de destino. Esta plataforma interconecta la plataforma IP-MPLS con la DSLAM, y además ofrece el servicio de Internet Dedicada. Ver Figura 2.4. Figura 2.4 Interconexión de los conmutadores Los equipos poseen interfaces que pueden ser Fast Ethernet y Giga. Las interfaces Fast Ethernet obtienen su nombre del estándar de IEEE para redes de 100Mbps. Las interfaces GIGA alcanzan velocidades de hasta 2Gbps y es un modulo, que se puede instalar en los switch, llamado GBIC, Gigabit Interface Converter, que se ve en la Figura 2.5. 13 Figura 2.5 Modulo GBIC Para el desarrollo del proyecto, se utilizaron los switch Cisco Catalyst de la serie 3550 y 2950. Los modelos específicos y las interfaces se ven en la Tabla 2.1. En la Figura 2.6 se muestran los switch de la serie Catalyst 2950. Equipos Cisco Catalyst 3550-12G 3550-24 3550-48 2950G-12 2950-24 2950G-24 2950-12 Detalles 2 puertas de 10/100/1000 10 puertas GBIC 24 puertas de 10/100 2 puertas GBIC 48 puertas de 10/100 2 puertas GBIC 12 puertas de 10/100 2 puertas GBIC 24 puertas de 10/100 24 puertas de 10/100 2 puertas GBIC 24 puertas de 10/100 Tabla 2.1 Interfaces en los switch Catalyst 14 Figura 2.6 Switch Catalyst serie 2950 2.1.3 Plataforma IP-MPLS Se compone por equipos router (enrutadores) que realizan la interconexión de redes de computadoras. A diferencia de los conmutadores, el router toma decisiones respecto a la mejor ruta para un datagrama, seleccionando la interfaz de salida más conveniente. Las decisiones se basan en la dirección de red del destino, carga de tráfico y velocidad de las interfaces. Esta Plataforma realiza el enrutamiento de los datagramas entre distintas redes. No posee un servicio asociado, pero a través de ella acceden los otros servicios. Está compuesta por los siguientes equipos: 1.- Cisco 12008: Es un GSR, Gigabit Switch Router, que posee 8 ranuras. En una de las ranuras se instala el CPU del enrutador y en las otras 7 se pueden instalar las LineCard (tarjetas donde se encuentran las interfaces). Las interfaces pueden ser de Fibra Óptica y/o Ethernet. Las LineCard pueden contener: o 8 interfaces POS (Packet Over SONET) 15 o 1 interfaz GIGA por LineCard. o 4 interfaces GIGA. 2.- Cisco 7206VXR: Este chasis posee 6 ranuras horizontales (Figura 2.7). Puede poseer variados tipos de puertos, Entre ellos, se tiene: o 10/100-MB Ethernet o GIGA o E1 IMA o POS (Packet Over SONET) Figura 2.7 Cisco 7206 3.- Cisco 7507: Es un conmutador con 7 ranuras disponibles y fuentes de poder redundantes (Figura 2.8). Las ranuras 2 y 3 son usadas para Router Switch Processors (RSP) y en las ranuras restantes se pueden instalar las interfaces. 16 Figura 2.8 Cisco 7507 En este router se pueden encontrar los siguientes tipos de interfaces: o Interfaces POS o Interfaces Fast Ethernet o Interfaces E1 IMA 4.- Cisco 7609: Router con 9 slot verticales en el chasis. Es un equipo compatible con las interfaces ethernet del switch Catalyst 6500, (ver Tabla 2.2). En la Figura 2.9 se ve el Router y sus componentes, 9 slot y las fuentes de poder redundante. 17 Figura 2.9 Cisco 7609 Módulos Modelo 24 interfaces 10BASE-FL WS-X6024-10FL-MT 48 interfaces10/100/1000 WS-X6148-GE-TX 48 interfaces 10/100 WS-X6248-RJ45 8 interfaces GIGA WS-X6408-GBIC 16 interfaces GIGA WS-X6416-GBIC 24 interfaces GIGA WS-X6724-SPF Tabla 2.2 Módulos ethernet Cisco 7609 18 2.2 REALIDAD DE LA EMPRESA TELMEX CHILE es el resultado de la fusión de las empresas de telecomunicaciones Chilesat y AT&T. Por ello el control de las plataformas existentes se encuentra distribuido en distintas áreas. Los sistemas de control de los equipos se mantienen en forma independiente unos de otros, debido a que son distintas áreas de trabajo que administran las distintas plataformas. Estos sistemas solo cubren las necesidades del área, y la información que manejan los sistemas de control es ingresada en forma manual por un operador. Entonces, si la información de las plataformas se maneja en forma independiente, puede provocar diferencias a la hora de dar un servicio, debido a las dependencias reales que existen entre las plataformas. Si se deseara dar un servicio de Internet banda ancha, este servicio viene de una puerta ADSL del DSLAM, suponiendo que el equipo tiene la puerta disponible, entonces se puede dar el servicio dirían los sistemas de control de la plataforma, pero esa plataforma depende de la plataforma switches donde sus equipos pueden estar trabajando a toda su capacidad, por lo tanto no podrán dar el servicio. Para superar esas posibles diferencias, se opta por crear una nueva herramienta, capaz de obtener la capacidad de todas las plataformas en forma directa y automática. Centralizando la información, con acceso a todos los usuarios interesados en esta. 19 CAPÍTULO 3 PROTOCOLOS DE ADMINISTRACIÓN En este capítulo se presentan dos alternativas de protocolos de administración. Luego se describe el protocolo SNMP y sus elementos, explicando la manera de realizar consultas y presentando ejemplos de su uso. 3.1 PROTOCOLOS DE DESARROLLO Para comenzar el desarrollo de esta, se buscan alternativas para obtener los indicadores de los equipos. Esa tarea se realiza con un protocolo de administración que permite la lectura de los indicadores en forma remota y estandarizada. En la actualidad existen dos protocolos de monitoreo de amplia difusión y fácil uso: SNMP: Protocolo sencillo de administración de redes, proporciona una manera ordenada de administrar y supervisar una red. Este protocolo se ha implementado ampliamente en productos comerciales y se ha convertido en un estándar en la administración de redes. Está basado en eventos y no es orientado a la conexión, entonces si el paquete de información enviado desde el equipo administrado al administrador no llega al destino, el equipo administrado no se da por enterado del error, siempre asume que el paquete fue recibido. 20 Ventajas Fácil de implementar Diseño simple Actualmente el mas usado No consume muchos recursos Capacidad de expansión Disponible en todos los equipos que se van a consultar Desventajas Bajo nivel de seguridad Posee funcionalidad limitada CMIP: Protocolo común de administración de información. Este protocolo sigue el patrón de los modelos de interconexión OSI y define un sistema genérico de gestión de red. Está diseñado solo para gestión de redes OSI, pero ha sido adoptado en la práctica como tecnología base de gestión, debido a que mejora las debilidades del SNMP. Esta orientado a la conexión, si el paquete no llega a su destino el protocolo lo reenvía nuevamente. Ventajas Alto nivel de seguridad Desventajas Variables complejas Complejo de programar Implementación demasiado costosa en hardware y software Se determina el uso del protocolo SNMP, basándose en la cantidad de ventajas presentes y despreciando el bajo nivel de seguridad debido a que se trabaja sobre redes administrativas protegidas por Firewalls. 21 3.2 PROTOCOLO SNMP Es un protocolo creado para administrar y gestionar equipos en las redes de telecomunicaciones. Es utilizado para monitorear redes. Los componentes para una administración por SNMP son: una estación de administración y un agente. Tal como se ve en la Figura 3.1. Figura 3.1 Elementos protocolo SNMP Un agente es el módulo de software que se encuentra instalado en el equipo que se va a monitorear. El agente conoce toda la información a consultar (MIB), y se comunica por el protocolo administrador. Los agentes se pueden instalar en: ⇒ Impresoras ⇒ Estaciones de Trabajo ⇒ Servidores ⇒ DSLAM ⇒ Conmutadores ⇒ Enrutadores SNMP con el 22 El NMS, Sistema Administración de Red (Figura 3.1), se refiere al equipo que se encuentra realizando las consultas a los agentes que se encuentran en todos los equipos de la red. El protocolo SNMP funciona como una consulta realizada por el NMS al agente, luego la respuesta a la consulta el NMS la puede almacenar. La consulta solicitada está basada sobre un objeto administrado, que representa una característica variable dentro del equipo (agente). El objeto administrado se refiere uno de los indicadores que andamos buscando (Ver Figura 3.2). Figura 3.2 Componentes del agente Las consultas al equipo administrado son comandos del Protocolo SNMP. Estos comandos y la descripción se ven en la Tabla 3.1. 23 Comandos Descripción Permite al administrador recibir la Característica Variable de Get un Objeto Administrado del agente. Permite al administrador recibir información del próximo GetNext Objeto Administrado. Permite al administrador dar un Set valor a un Objeto Administrado en el Agente. Usado por el Agente para informar al administrador algunos Trap eventos. Tabla 3.1 Comandos SNMP La MIB, Management Information Base, es la base de datos del agente, donde tiene la información de todos los Objetos Administrados y es enviada del agente al NMS si es solicitada. Las MIB se encuentran preparadas para realizar tareas especializadas. Existen MIB básicas que se encuentran disponibles en la mayoría de los dispositivos de red. Dentro de las MIB se encuentran los Objetos de MIB, equivalentes a los Objetos Administrados, que representan el campo de la MIB donde se encuentra la Característica Variable del Objeto Administrado. 24 Existe una MIB estándar llamada MIB-II, ésta contiene 172 Objetos Administrables, definida por la RFC12131. El RFC1213 comenta las deficiencias presentes en MIB-I, y propone mejoras, plantea una nueva versión para realizar la administración de las redes modificando la versión existente. Una de las mejoras es poseer cadenas de texto (string) y así poder entregar una descripción de los Objetos de MIB. Los Objetos de MIB se organizan de manera jerárquica como se muestra en la Figura 3.3. Esta jerarquía comienza desde la ISO (Organización de Estándares Internacional) pasando por DOD (Departamento de Defensa de Estados Unidos) hasta llegar a los Objetos MIB. Esta estructura jerárquica se define como MIB TREE. El Objeto de MIB que define Internet se caracteriza por el identificador “1.3.6.1.2.1”, donde cada número representa un vértice del MIB TREE. Los identificadores se denominan como OID, identificador de Objetos. 1 RFC, Requerido Para Comentarios, son Memos que normalizan protocolos de comunicaciones. 25 Figura 3.3 MIB TREE En el MIB TREE anterior se ven las MIB privadas, definidas por el OID “1.3.6.1.4”. Estas MIB son usadas por las empresas para administrar sus dispositivos. 26 Los Objetos dentro de la MIB poseen un formato característico, dentro de él se da el nombre del objeto, el permiso de acceso, estado y la descripción. En el Listado 3.1 se ve el Objeto de MIB “ifspeed”, que representa la velocidad de la interfaz. ifSpeed OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate of the interface's current bandwidth in bits per second. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. If the bandwidth of the interface is greater than the maximum value reportable by this object then this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed. For a sub-layer which has no concept of bandwidth, this object should be zero." ::= { ifEntry 5 } Listado 3.1 Objeto MIB “ifspeed” 3.3 SNMP EN LAS PLATAFORMAS Los equipos en las plataformas poseen configuraciones SNMP distintas, según la empresa a la cual pertenece, por lo tanto poseen MIB específicas. 3.3.1 DSLAM 27 En esta plataforma se encuentra el equipo Zyxel IES-1000, este equipo soporta las siguientes MIB: MIB II (definida en RFC1213) Q-BRIDGE-MIB Zyxel.mib Zyxel-AS.mib Zyxel-AS-ATM.mib Zyxel-AESCommon.mib Zyxel-SESCommon.mib Las MIB privadas comienzan con el nombre de la empresa, y poseen información particular del equipo. Para que el equipo responda a las consultas realizadas por SNMP, debe ser configurado y debe ser asignado a una comunidad, que se refiere a una clave de acceso. Esta configuración en el equipo Zyxel IES-1000 se realiza vía Web. Se debe ingresar la dirección IP del Administrador, la comunidad, los permisos y si se desea enviar Traps al administrador. La Figura 3.4 muestra la pantalla de configuración vía Web. 28 Figura 3.4 Configurar SNMP La configuración que se asigna en el proyecto omite el permiso de escritura y el envío de Trap, debido a que solo se necesita obtener información particular del equipo. 3.3.2 Switches Esta plataforma se compone de 9 equipos distintos, pero se pueden caracterizar en 2 modelos generales: o Cisco Catalyst Serie 2950 o Cisco Catalyst Serie 3550 Ambas series soportan distintos y variados tipos de MIB. En el caso del Switch Catalyst serie 2950 soporta las MIB mostradas en el Listado 7.1. El Switch Cisco Catalyst 3550 soporta las MIB dadas en el Listado 7.2. En ambos Switches se debe habilitar el protocolo SNMP, usando el comando “snmp-server”, como se muestra en el Listado 3.2. Se configura el Switch con una comunidad “SwichCisco” y con permisos de acceso RO, Read Only, sólo lectura. Switch# configure terminal Switch(config)# snmp-server community SwitchCisco RO Listado 3.2 Habilitar SNMP switch Cisco Catalyst 29 3.3.3 IP-MPLS La plataforma IP-MPLS se compone por los siguientes modelos de Routers Cisco: Cisco 12008 Cisco 7206VXR Cisco 7507 Cisco 7607 La lista de MIB relacionadas a los Routers anteriores se presenta en los siguientes listados de anexos: Cisco 12008 Listado 7.3 Cisco 7206VXR Listado 7.4 Cisco 7507 Listado 7.5 Cisco 7607 Listado 7.6 Al igual que en el caso anterior, es necesario habilitar el servicio de SNMP en los Routers se debe configurar el comando “snmp-server” (Listado 3.3) Router# configure terminal Router(config)# snmp-server community SwitchCisco RO Listado 3.3 Habilitar SNMP router Cisco 3.4 INDICADORES EN LAS MIB 30 Debido a la existencia de MIB estándar, que son independiente a las marcas de los equipos, se pueden analizar los indicadores en forma independiente de las plataformas y los equipos. 3.4.1 MIB-II (RFC1213) SysName Nombre del Sistema, entrega el nombre del sistema asignado por el administrador del dispositivo. Posee permisos de lectura y escritura. Su OID es: 1.3.6.1.2.1.1.5 SysDescr Descripción del Sistema, este valor entrega una completa descripción de la versión del hardware y software. Posee permisos de lectura y escritura. Su OID es: 1.3.6.1.2.1.1.1 ifIndex Define el índice de la interfaz, es un valor único, mayor que cero, asignado a cada una de ellas. Su OID es: 1.3.6.1.2.1.2.2.1.1 ifDescr Es una cadena de texto que entrega información sobre la interfaz. Esta cadena incluye el tipo de interfaz y numero de ésta. Su OID es: 1.3.6.1.2.1.2.2.1.2 ifType Entrega el tipo de interfaz asignada por IANA, Internet Assigned Numbers Authority. El valor devuelto se compara con la Tabla 3.2 para 31 saber el tipo de interfaz que representa. La lista completa de equivalencias se aprecia en el Listado 7.7. Valor Tipo Interfaz 1 Other 2 Regular1822 3 Hdh1822 4 Ddnx25 5 Rfc877x25 6 ethernetCsmacd Tabla 3.2 Tipos de interfaces Su OID es: 1.3.6.1.2.1.2.2.1.3 32 ifAdminStatus Entrega el estado de la interfaz, definido por el administrador, el estado puede ser: 1: up (Administrativamente habilitada) 2: down (Administrativamente deshabilitada) 3: testing (Se están realizando pruebas) Su OID es: 1.3.6.1.2.1.2.2.1.7 ifOperStatus Entrega el estado de operación de la interfaz, estos estados pueden ser: 1: up 2: down 3: Testing 4: unknown 5: dormant 6: notPresent 7: lowerLayerDown El estado “testing(3)” es de prueba definido por ifAdminStatus. Si ifAdminStatus es “down(2)” entonces ifOperStatus debe ser “down(2)”. Si ifAdminStatus cambia a “up(1)” entonces ifOperStatus debe ser “up(1)”. Si el componente de hardware no esta instalado, debe permanecer como “notPresent(6)” Su OID es: 1.3.6.1.2.1.2.2.1.8 33 ifInOctets Es el número total de Octetos (bytes) recibidos por la interfaz. Su OID es: 1.3.6.1.2.1.2.2.1.10 ifOutOctets Es el número total de Octetos (bytes) que se transmiten por la interfaz. Su OID es: 1.3.6.1.2.1.2.2.1.16 ifSpeed Representa una estimación del ancho de banda de la interfaz, para interfaces donde no varía el ancho de banda. Este objeto representa el ancho de banda nominal [bit/seg]. Su OID es: 1.3.6.1.2.1.2.2.1.5 3.4.2 OLD-CISCO-CPU-MIB avgBusy5 Es el promedio porcentual de ocupación de la CPU en 5 minutos. Su OID es: 1.3.6.1.4.1.9.2.1.58 34 3.4.3 CISCO-VTP-MIB vtpVlanName Entrega el nombre de las VLAN. Su OID es: 1.3.6.1.4.1.9.9.46.1.3.1.1.4 3.4.4 Q-BRIDGE-MIB dot1qVlanStaticName Entrega la cadena de texto que describe a la VLAN. Su OID es: 1.3.6.1.2.1.17.7.1.4.3.1.1 3.4.5 MPLS-VPN-MIB mplsVpnConfiguredVrfs Numero de VRF’s configuradas en el dispositivo. Su OID es: 1.3.6.1.3.118.1.1.1 35 3.4.6 ENTITY-MIB entPhysicalClass Entrega el hardware especifico del equipo, este valor debe ser comparado en el Listado 3.4. 1:other 2:unknown 3:chassis 4:backplane 5:container 6:powerSupply 7:fan 8:sensor 9:module 10:port 11:stack 12:cpu Listado 3.4 Características de hardware Su OID es: 1.3.6.1.2.1.47.1.1.1.1.5 36 CAPÍTULO 4 CAPTURA En el presente Capítulo se presentará como se realizó la captura, que servidor se ocupó, como se logró automatizar el proceso y que indicadores se consultaron. Para las consultas se analizan las alternativas de lenguajes. Se busca uno que posea la capacidad de trabajar con cadenas de texto y archivos de texto de forma rápida, que posea una variedad de módulos, entre ellos uno para consultas SNMP. La elección fue Perl (ver Tabla 4.1). PERL v/s … Comentarios Perl puede ser más lento que C, debido a la cantidad de memoria necesaria para poder cargar el intérprete de C comandos, pero posee mayor flexibilidad en el lenguaje, variedad de bibliotecas y soporte orientado a objetos que lo hace más robusto. Para tareas pequeñas sh es muy eficiente, pero a Sh medida que el problema se hace más compleja sh hace notar sus limitaciones. Python no posee la cantidad de módulos de desarrollo Python que posee Perl, pero es la competencia directa más fuerte que posee. Tabla 4.1 Comparación Perl y otros lenguajes de programación 37 4.1 PREPARACIÓN DEL SERVIDOR Se trabajó sobre un equipo IBM, que posee las características de la Tabla 4.2. Característica Valor Marca IBM Procesador Pentium III de 550 MHz Memoria RAM 256MB Disco Duro 8GB Interfaz de red Sistema Operativo o 3Com Corporation - 100BaseTX o Intel Ethernet Pro 100 Debian version 3.1 Tabla 4.2 Características del equipo de captura Sobre el equipo se instalaron los siguientes módulos PERL. El proceso de instalación básico se ve en el Listado 4.1. ⇒ Net::SNMP Object oriented interface to SNMP Net-SNMP-5.2.0 - 20 Oct 2005 - David M. Town ⇒ Net::Ping check a remote host for reachability Net-Ping-2.31 - 28 Jun 2003 - Rob Brown ⇒ Date::Handler Easy but complete date object (1.1) Date-Handler-1.2 - 11 Nov 2004 - Benoit Beausejour 38 ⇒ Math::Complex complex numbers and associated mathematical functions Math-Complex-1.36 - 04 Jul 2006 - Jarkko Hietaniemi ⇒ Spreadsheet::WriteExcel Write to a cross-platform Excel binary file. Spreadsheet-WriteExcel-2.17 - 21 May 2006 - John McNamara ⇒ CGI Simple Common Gateway Interface Class CGI.pm-3.20 - 23 Apr 2006 - Lincoln D. Stein El Modulo NET: SNMP es el que realiza las consultas SNMP a lo equipos, NET::Ping y Date::Handler son herramientas para optimizar el proceso, el modulo CGI es para desplegar los resultados en una Web. 1) Extraer gtar -zxvf Net-Ping-xxxx.tar.gz cd Net-Ping-xxxx 2) Compilar make realclean perl Makefile.PL make make test 3) Instalar make install Listado 4.1 Instalación de los módulos Perl Luego de instalar los módulos se configuran las interfaces para poder instalar el servidor Capturador en el lugar definitivo. Las interfaces 39 se configuran editando el archivo “etc/network/interfaces” (Ver Listado 4.2) ginna:~/humberto/web# vi /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 200.9.151.173 netmask 255.255.255.192 network 200.9.151.128 broadcast 200.9.151.191 gateway 200.9.151.151 auto eth1 iface eth1 inet static address 91.0.7.195 netmask 255.0.0.0 network 91.0.0.0 broadcast 91.255.255.255 up route add -net 172.31.0.0 netmask 255.255.0.0 gw 200.9.151.140 dev eth0 Listado 4.2 Configuración interfaces capturador Una vez instalado el Servidor Capturador, la administración se realizó por medio del Software SSh Secure Shell Client, Figura 4.1. 40 Figura 4.1 SSH Secure Shell client 4.2 ESTRUCTURA DEL CAPTURADOR El Capturador representa al sistema NMS del Protocolo SNMP. Este realiza las consultas a los equipos en las Plataformas (ver Figura 4.2). 41 Figura 4.2 Relación del capturador y las plataformas La herramienta de captura se estructura según la Figura 4.3. Figura 4.3 Estructura del capturador 42 En la Figura 4.3 se ven los archivos que forman al Capturador. Estos archivos se clasifican según la función que realizan. Además se generan para cada Plataforma reemplazando la palabra “PLATAFORMA” por el nombre de ésta. Se clasifican en: Entrada, Salida y Proceso. 4.2.2 Entrada En este grupo de archivos se ingresan datos para el proceso de captura. Se compone de: Archivo infoPLATAFORMA.txt Tiene el listado de todos los equipos de la plataforma. Es un archivo de texto de entrada, posee el siguiente formato: “IP;COMUNIDAD;NOMBRE;NODO” Las características de cada parámetro se ven en la Tabla 4.3. 43 Parámetro Descripción IP Dirección del equipo a consultar Comunidad Contraseña del protocolo SNMP Alias del equipo normalizado para el Capturador. Nombre caracteres Los del primeros nombre dan 4 la ubicación del equipo. El nombre “CL01SMASWT02” se ubica en la primera región del país. Nodo Se refiere al lugar donde se encuentra el equipo Tabla 4.3 Parámetros del archivo infoPLATAFORMA.txt En el Listado 4.3 se ve una sección del archivo, con información de equipos reales. 172.31.129.90;chsatMPLS;CL01SMASWT02;IQUIQUE 172.31.129.123;chsatMPLS;CL01ZOFSWT01;ZOFRI IQUIQUE 172.31.129.67;chsatMPLS;CL02ABASWT01;CALAMA 172.31.129.186;chsatMPLS;CL02ABASWT02;CALAMA Listado 4.3 Sección del archivo infoPLATAFORMA.txt 4.2.3 Proceso Grupo de archivos que implementan el motor del Capturador. Estos archivos cargan los parámetros de archivo de entrada, generan las consultas SNMP, reciben la información de los indicadores y generan los archivos de salida. ♦ principalPLATAFORMA.pl 44 ♦ PLATAFORMA.pm A continuación se describen ambos archivos. Archivo principalPLATAFORMA.pl El archivo carga los parámetros de entrada, extraídos de “infoPLATAFRMA.txt”, además genera los archivos de salida y llama a las funciones que obtienen los indicadores. La creación de las variables y la carga de bibliotecas se realizan en el Listado 4.4. #Carga de bibliotecas use lib('/root/humberto/snmp/Net-SNMP-5.2.0/lib'); use Switch; #Modulo de la Plataforma use Net::Ping; use Net::SNMP qw(oid_lex_sort); #creación de variables my $resultado1; my $resultado2; my $resultado3; Listado 4.4 Carga de librerías del archivo principalPLATAFORMA.pl Se crean los archivos de salida, tales como los LOG, los archivos de datos (ver Listado 4.5) y se carga el archivo de entrada. #Se crean los archivos LOG y se llenan sin reemplazar su contenido. open ( LOG, ">>/root/humberto/snmp/infoswitch.log")||die "No se puedo abrir el archivo de log"; open ( LOGS, ">>/root/humberto/snmp/infoswitchS.log")||die "No se puedo abrir el archivo de log"; #imprimir fecha y hora en el LOG 45 print LOG entrega_fecha_hora().":Inicio Consultas\n" ; print LOGS entrega_fecha_hora().":Inicio Consultas\n" ; #Se generan archivos de salida de datos open(ARCHIVO1, ">/home/capacity/capturas/DATO-SWITCH.txt") || die "No se pudo abrir el archivo de salida"; open(ARCHIVO2, ">/home/capacity/historico/DATO-SWITCH.txt.".entrega_fecha()) || die "No se pudo abrir el archivo de salida"; #Carga de archive entrada open(ARCHIVOLEC1, "/root/humberto/snmp/infoswitch.txt")|| die "No se pudo abrir el archivo de entrada"; Listado 4.5 Cargar archivos de entrada y salida El proceso de consulta realiza una lectura de una línea del archivo infoPLATAFORMA.txt, luego la divide en cada uno de los elementos que se encuentra separados por “;”. Después se realiza una revisión al equipo para ver si es válido para comenzar con las consultas sobre él. Esta revisión consiste un ping al equipo, para determinar si se encuentra online, y de una consulta SNMP para verificar la validez de la comunidad (ver Listado 4.6). Si cumple con esos requisitos se puede comenzar la consulta. El inicio de la sesión SNMP se analiza en la sección 4.3.2. while($linea = <ARCHIVOLEC1>) #lee línea archivo entrada { chomp($linea); @datos = split(/;/, $linea); #divido la línea en sus parámetros my $p = Net::Ping->new("icmp"); #genera una consulta icmp if ($p->ping($datos[0])) { #realizo un ping ip #si es valido, consulto un objeto MIB my ($session, $error) = Net::SNMP->session( -hostname => $datos[0], -community => $datos[1], 46 -port => 161 ); my $comprobar='1.3.6.1.2.1.2.1.0'; my $result = $session->get_request( -varbindlist => [$comprobar] ); if(!defined($result)) { print LOG "ERROR: Equipo no compatible: ".$datos[0]."\n"; print LOGS "ERROR: Equipo no compatible: ".$datos[0]."\n"; $session->close; } else { #inicio de consulta de indicadores } Listado 4.6 Comprobar equipo antes de iniciar consultas Las consultas de los indicadores se inician en el Listado 4.7, estos indicadores dependen de la “PLATAFORMA”. Estas consultas llaman a funciones que se encuentran en el modulo “Switch” del archivo “Switch.pm” #Llamada a los indicadores $resultado= &Switch::switchpuertas($datos[0],$datos[1],$datos[2]); print ARCHIVO1 $resultado; print ARCHIVO2 $resultado; $resultado1 = &Switch::consultaCPUswitch($datos[0],$datos[1],$datos[2]); print ARCHIVO1 $resultado1; print ARCHIVO2 $resultado1; $resultado2 = &Switch::consultaVLANsnmp($datos[0],$datos[1],$datos[2]); print ARCHIVO1 $resultado2; print ARCHIVO2 $resultado2; $resultado3=&Switch::consultaBWswitch($datos[0],$datos[1],$datos[2]); print ARCHIVO1 $resultado3; 47 print ARCHIVO2 $resultado3; Listado 4.7 Llamada a la función de captura de cada indicador Archivo PLATAFORMA.pm En este archivo se encuentran las funciones de consulta para cada uno de los indicadores. Estas funciones son llamadas del archivo “principalPLATAFORMA.pl” El archivo posee un formato de generación del módulo, dado en la primera línea del Listado 4.8, luego la carga de las bibliotecas necesarias para las consultas. package Switch; #generar modulo Switch #carga de librerias use strict; use lib('/root/humberto/snmp/Net-SNMP-5.2.0/lib'); use Net::SNMP qw(oid_lex_sort); Listado 4.8 Inicio del archivo PLATAFORMA.pm La siguiente sección del archivo son las funciones, se crean para la captura de los indicadores, en las funciones se comienza con la creación de los LOG, luego con la extracción de los parámetros dados en la llamada función ($direccion, $comunidad, $nombre) (Ver Listado 4.9). sub consultaCPUswitch() { #Abre el archivo de log del sistema. open (LOG, ">>/root/humberto/snmp/infoswitch.log")||die "No se puedo abrir el archivo de log"; open (LOGS, ">>/root/humberto/snmp/infoswitchS.log")||die "No se puedo abrir el archivo de log"; #extraer direccion IP y comunidad 48 my ($direccion,$comunidad,$nombre)=@_; Listado 4.9 Inicio de la consulta de un indicador La consulta de cada uno de los indicadores, desde la conexión SNMP hasta el procesamiento de los OID se desarrolló en la Sección 4.3 Finalmente se cierra la sesión SNMP y los archivos LOG Se retorna la respuesta de la consulta al archivo “principalPLATAFORMA.pl” (ver Listado 4.10) $session->close; my $fecha_actual=entrega_fecha(); close(LOG); close(LOGS); #retornar respuesta de la consulta. return $nombreswitch.";12;Ocupacion de CPU;".$porcentajeusoCPU.";100;0;0;".$fecha_actual.";0;0;4; SWITCHES\n"; Listado 4.10 Respuesta del módulo de consulta 4.2.4 Salida Grupo de archivos generados por los archivos de proceso, estos archivos almacenan los resultados de las consultas y los detalles de ésta. Los archivos de salida son: ♦ infoPLATAFORMA.log ♦ infoPLATAFORMAS.log ♦ DATO-PLATAFORMA.txt 49 ♦ DATO-PLATAFORMA.txt.dd.mm.aaaa A continuación se describen los archivos: Archivo infoPLATAFORMA.log Se almacenan los detalles de las consultas, tales como: • No hay respuesta del ping. • No hay respuesta SNMP • Inicio de consultas • Término de consultas. Este archivo se va llenando semanalmente con los detalles de todas las consultas. Una sección del archivo se ve en el Listado 4.11. 26-5-2006 8:37:15:Inicio Consultas ERROR: No hay respuesta PING del equipo: 172.31.129.67 ERROR: No hay respuesta PING del equipo: 192.168.40.140 ERROR: No hay respuesta PING del equipo: 172.31.129.21 ERROR: No hay respuesta PING del equipo: 192.168.50.235 ERROR: Equipo no compatible: 172.31.129.131 ERROR: Equipo no compatible: 172.31.129.34 ERROR: No hay respuesta PING del equipo: 192.168.50.109 ERROR: No hay respuesta PING del equipo: 192.168.100.165 ERROR: Equipo no compatible: 192.168.50.200 ERROR: Equipo no compatible: 192.168.50.190 ERROR: Equipo no compatible: 192.168.50.26 ERROR: Equipo no compatible: 172.31.129.210 26-5-2006 8:56:26:Termino Consultas ################################################################# Listado 4.11 Detalles del archivo infoPLATAFORMA.log 50 Archivo infoPLATAFORMAS.log Este archivo LOG, posee la misma información que el archivo LOG anterior, pero sólo almacena la información de la última semana. Archivo DATO-PLATAFORMA.txt Principal archivo de salida, su formato fue requerido por la empresa: ALIAS;ID;DESCRIPCION;OC;MAX;ID1;ID2;FECHA;ID3;ID4;ID_PLA;PLA La descripción de los parámetros es: ALIAS: Nombre normalizado del equipo, posee la característica de entregar la región en la que se encuentra en los primeros cuatro caracteres. Por ejemplo CL01APRSWT01, pertenece a la primera región. ID: Numero que define al indicador a capturar (ver Tabla 4.4) DESCRIPCION: Cadena de texto que describe el identificador (ver Tabla 4.4) 51 ID DESCRIPCIÓN 8 Slot Disponibles 10 Cantidad de VLAN 12 Ocupación de CPU 13 Puertas Ocupadas 13 Ancho de Banda 15 Cantidad de VRF 16 Cantidad de Sub-Interfaces 23 Puertas Fast Ethernet Ocupadas 24 Puertas GIGA Ocupadas 25 Puertas IMA Ocupadas 26 Puertas POS Ocupadas 27 Puertas Serial Ocupadas 28 Puertas WAN Ocupadas 31 Puertas HSSI Ocupadas Tabla 4.4 ID de identificadores OC: Ocupación del indicador MAX: Máximo valor de ocupación del indicador. ID1, ID2, ID3, ID4: Valores requeridos por la empresa para uso privado. FECHA: Se entrega la fecha y la hora de captura del indicador. Tiene el formato “dd-mm-aaaa hh-mm-ss”. ID_PLA: Identificador numérico que define a una Plataforma (ver Tabla 4.5) 52 PLA: Nombre de la Plataforma en la cual se capturó el identificador (ver Tabla 4.5) ID_PLA PLA 1 DSLAM 4 SWITCHES 2 IP-MPLS Tabla 4.5 ID de plataforma En el Listado 4.12 se ve una sección del archivo de Captura para la Plataforma SWITCHES. CL01APRSWT01;13;Puertas Ocupadas;16;26;0;0;28-05-2006 01:00:06;0;0;4;SWITCHES CL01APRSWT01;23;Puertas Ocupadas Ethernet;16;24;0;0;28-05-2006 01:00:06;0;0;4;SWITCHES CL01APRSWT01;24;Puertas Ocupadas GIGA;0;2;0;0;28-05-2006 01:00:06;0;0;4;SWITCHES CL01APRSWT01;12;Ocupacion de CPU;1;100;0;0;28-05-2006 01:00:06;0;0;4;SWITCHES CL01APRSWT01;10;Cantidad de VLANs;43;1000;0;0;28-05-2006 01:00:08;0;0;4;SWITCHES CL01APRSWT01;7;Ocupacion de BW en la troncal kbps;493;100000;0;0;28-05-2006 01:00:14;0;0;4;SWITCHES CL01APRSWT01;18;Troncal Configurado Mbps;100;100;0;0;28-05-2006 01:00:14;0;0;4;SWITCHES Listado 4.12 Formato del archivo DATO-PLATAFORMA.txt Archivo DATO-PLATAFORMA.dd.mm.aaaa.txt Este archivo de salida contiene el mismo formato que el archivo de captura anterior, pero cambia el nombre del archivo debido a que éste es un archivo de respaldo histórico de los datos capturados a esa fecha. 53 4.3 OBTENER INDICADORES DE LOS EQUIPOS La captura de indicadores se realiza con un servidor Debian, que se comunica con los equipos a través del Protocolo de administración SNMP que es manejado por el modulo NET::SNMP de Perl. Los indicadores a Capturar se presentan en la Tabla 4.6. Algunos métodos de captura son independientes de las Plataformas y la marca de los equipos. Por lo tanto, se describirá como se han capturado cada uno de los indicadores y para qué Plataformas es valido el proceso. Indicadores Comentarios Nombre del Equipo Cadena de texto que identifica al equipo. Se utilizan distintos criterios para saber Ocupación Interfaces si una interfaz está ocupada o disponible. Método distinto para cada Plataforma Numero VLAN Cantidad de Redes Virtuales creadas. Porcentaje de ocupación del Procesador, CPU fue requerido por la empresa para algunas Plataformas. Slot Sub-Interfaces VRF Ancho de Banda Cantidad de Slot Ocupados en la Plataforma IP-MPLS Sólo para la Plataforma IP-MPLS Sólo para la Plataforma IP-MPLS, fue requerido por la empresa. Fue requerido por la Empresa. Tabla 4.6 Indicadores a capturar 54 4.3.2 Conectarse al equipo Se realiza la conexión al equipo gracias al modulo de Perl Net::SNMP, el cual es llamado al comienzo de los script (ver Listado 4.13) use Net::SNMP #Se usa el modulo NET::SNMP #Inicia sesion my ($session, $error) = Net::SNMP->session( -hostname => $direccion , -community => $comunidad, #Comunidad del dispositivo -port #IP del dispositivo a consultar => 161, ); #Ver si la sesión fue abierta if (!defined($session)) { #si la session falla, se gusrda el error en un log y se cierra session. print LOGS "ERROR: Session Puertas IP: ".$direccion."\n"; $session->close; close(LOGS); return ; } else { #Comienzan las consultas de los Indicadores } Listado 4.13 Iniciar sesión SNMP Luego de llamar al modulo SNMP (Listado 4.13) se inicia la sesión SNMP, usando la IP y la comunidad del dispositivo a consultar. Si la comunidad es valida se inicia la sesión sin problemas y se puede comenzar a consultar los indicadores, pero si es errónea falla la confirmación y se almacena el error en un LOG para luego cerrar la sesión. 55 4.3.3 Determinar el nombre del equipo El Nombre del equipo lo da la MIB-II (RFC1213), definido en el Objeto “sysName”. La consulta de este indicador se ve en el Listado 4.14. #Consultar Nombre del equipo “SysName” my $nameSyS ='1.3.6.1.2.1.1.5.0'; #OID que define el objeto sysname my $result1 = $session->get_request( #realizo la consulta, GET del OID anterior -varbindlist => [$nameSyS] ); if (!defined($result1)) { #si no entrega respuesta el OID, entregaa un error en el LOG print LOGS "ERROR: Consulta Nombre IP: ".$direccion."\n"; $session->close; return; } my $nombreSyS=$result1->{$nameSyS}; #se almacena el nombre del equipo en la variable $nombreSyS Listado 4.14 Consultar nombre del equipo Se ingresa en OID a consultar en una variable, luego se ejecuta la función “get_request”, representa el comando GET del Protocolo SNMP. A esta función se le da el OID como parámetro de entrada. Se realiza entonces la consulta del OID en la sesión SNMP ya creada con anterioridad en el Script. Si la respuesta de la función “get_request” no está definida, se almacena un error en el archivo LOG y se cierra la sesión SNMP con el equipo. Si da una respuesta válida, se almacena el nombre en la variable “$nombreSyS”. 56 4.3.4 Ocupación de interfaces Este indicador posee criterios, para decidir si una interfaz está ocupada o disponible. Además influye el tipo de interfaz presente. Estos parámetros son distintos para cada plataforma. 4.3.4.1 DSLAM Una interfaz está ocupada si tiene asociada una VLAN, como se ve en la Figura 4.4. Figura 4.4 Ocupación puertas en equipos DSLAM En la Figura 4.4, hay 5 interfaces ocupadas. Para realizar este análisis por medio de consultas SNMP se identifican las VLAN y se asocian al puerto que pertenecen. En el Listado 4.15 se obtienen los ID de las VLAN. Se consulta el OID '1.3.6.1.2.1.17.7.1.4.3.1.1' (dot1qVlanStaticName) que entrega string que contienen el ID de las VLAN creadas, para diferenciar los ID de las 57 VLAN se debe convertir el string en vector y seleccionar el elemento que identifica la VLAN. Todos los ID de las VLAN son almacenados en el vector “@NumeroV”. #OBTENGO NUMERO DE VLAN VALIDAS! my $ifIndex='1.3.6.1.2.1.17.7.1.4.3.1.1'; my $result; my @inter; $result = $session->get_table(-baseoid => $ifIndex); if(!defined($result)) { print LOG "ERROR: Descripcion VLAN IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Descripcion VLAN IP: ".$direccion."\n"; close(LOGS); $session->close; return ; } my $contadorVLANS=0; foreach my $oid (oid_lex_sort(keys(%{$result}))) { #print $oid."\n"; @oids = split(/\./ , $oid ); push(@NumeroV,$oids[13]);push(@NumeroV, 1 ); #print $oids[13]."\n"; $contadorVLANS++; } Listado 4.15 Obtener el ID de las VLAN Luego se consultan las interfaces, para ver los ID de VLAN que tienen asociadas. El ID de VLAN de cada interfaz se compara con el vector que contiene los ID de VLAN creadas en el equipo. Si estos coinciden, se activa una variable indicando que esa puerta posiblemente está ocupada. 58 La puerta está ocupada si además se encuentra administrativamente habilitado (Ver Listado 4.16) #BUSCO PUERTAS COMPARANDO CON VLAN #inicializo variables my $interf=1; my $puertasVLAN=0; my $interfaces=1; while( $interfaces <= 8) { #Consulto las 8 interfaces my $sensor=0; my $vlanes ='1.3.6.1.4.1.890.1.5.14.2.1.3.'.$interfaces; #OID Entrega las VLAN de la $Interfaces $result = $session->get_table(-baseoid => $vlanes); #Consulto la lista de VLAN por interfaz if(!defined($result)) { } else{ foreach my $oid (oid_lex_sort(keys(%{$result}))){ #ordeno la lista de VLAN my $result1 = $session->get_request( -varbindlist => [$oid] ); my $valor1 = $result1->{$oid}; #respuesta del OID #Comparo el ID VLAN con las ID VLAN creados foreach $VV (@NumeroV){ if ($valor1 == $VV ){ $sensor=1; } } } } #REVISO si la interfaz esta habilitada por el administrador, para asi asegurar que se encuentra ocupada. if ( $sensor == 1) { my $ifadmin='1.3.6.1.2.1.2.2.1.7.'.$interfaces; #OID IfAdminStatus my $resultaa = $session->get_request( -varbindlist => [$ifadmin] 59 ); if (!defined($resultaa)) { print LOG "ERROR: Consulta Interfaz Admin: ".$direccion."\n"; print LOGS "ERROR: Consulta Interfaz Admin: ".$direccion."\n"; $session->close; close (LOG); close (LOGS); return ; } $aa=$resultaa->{$ifadmin}; if ($aa == 1){$puertasVLAN++; } } $interfaces++; } Listado 4.16 Interfaces con ID de VLAN validas 4.3.4.2 Switches La ocupación de las puertas en esta Plataforma está definida por una función lógica: si se encuentra administrativamente habilitada y operacionalmente activa, entonces la interfaz está ocupada. Para todos los otros casos, tenemos una interfaz disponible. Por ejemplo, las conexiones destacadas en la Figura 4.5 se encuentran ocupadas. 60 Figura 4.5 Interfaces lógicamente ocupadas En la Figura 4.5 se ven las interfaces ocupadas, pero sólo para un tipo de interfaz, en esta plataforma se debe diferenciar el tipo de interfaz. La diferencia del tipo de interfaz se realiza por medio de un filtro en la descripción de las interfaces. Se obtiene el índice de las interfaces del equipo, almacenándolo en el vector “@if_indexes” (Ver Listado 4.17). #Determina el index de las interfaces y lo coloca dentro de un arreglo. my $ifIndex='1.3.6.1.2.1.2.2.1.1'; my $contador=0; my @if_indexes; my $result; $result = $session->get_table(-baseoid => $ifIndex); #Obtengo las lista de OID que entregan el index if(!defined($result)) { #para cada una de las interfaces print LOG "ERROR: Session Index Intreface IP: ".$direccion."\n"; print LOGS "ERROR: Session Index Intreface IP: ".$direccion."\n"; $session->close; close(LOG); close(LOGS); return ; } #a cada OID le pido el Index y lo almaceno ene l vector @if_indexes 61 foreach my $oid (oid_lex_sort(keys(%{$result}))) { push(@if_indexes,$result->{$oid}); } Listado 4.17 Obtener el index de las Interfaces (ifIndex) Se consulta el índice de las interfaces, porque en el desarrollo del script se comprobó que no necesariamente son números continuos. Con el ifIndex almacenado en un vector, se consulta ifAdminStatus e ifOperStatus, los resultados se almacenan en variables según el tipo de interfaz (ver Listado 4.18). #INICIALIZAR VARIABLES my $aa=0;my $bb=0; my $pETH = 0 ;my $pGIGA = 0 ;my $pLRE = 0 ; my $tETH = 0 ;my $tGIGA = 0 ;my $tLRE = 0 ; my $pOCUPADAS=0; my $pTOTALES=0; my $hayETH0 = 0; my $hayGIGA = 0; my $hayLRE = 0; #ANALIZO CADA INTERFAZ, POR EL INDEX foreach (@if_indexes){ my $ifadmin='1.3.6.1.2.1.2.2.1.7.'.$_; #OID ifAdminStatus my $ifoper='1.3.6.1.2.1.2.2.1.8.'.$_; #OID ifOperStatus #CONSULTO EL ESTADO DE LA INTERFAZ (IFOPERSTATUS e IFADMINSTATUS)!!! my $resultaa = $session->get_request( -varbindlist => [$ifadmin] ); if (!defined($resultaa)) { print LOG "ERROR: Consulta Interfaz Admin: ".$direccion."\n"; print LOGS "ERROR: Consulta Interfaz Admin: ".$direccion."\n"; 62 $session->close; close (LOG); close (LOGS); return ; } $aa=$resultaa->{$ifadmin}; my $resultbb = $session->get_request( -varbindlist => [$ifoper] ); if (!defined($resultbb)) { print LOG "ERROR: Consulta Interfaz Operativa: ".$direccion."\n"; print LOGS "ERROR: Consulta Interfaz Operativa: ".$direccion."\n"; $session->close; close (LOG); close (LOGS); return ; } $bb=$resultbb->{$ifoper}; Listado 4.18 Obtener ifOperStatus e IfAdminStatus El tipo de interfaz se obtiene preguntando la descripción (ifDescr) y revisando si es igual a los tipos existente (ver Tabla 4.7). Este procedimiento se ve en el Listado 4.19. # DESCRIPCION INTERFACES!######################### my $ifdescr='1.3.6.1.2.1.2.2.1.2.'.$_; #OID descripcion if my $resultcc = $session->get_request( -varbindlist => [$ifdescr] 63 ); if (!defined($resultcc)) { print LOG "ERROR: Consulta Interfaz Descripcion: ".$direccion."\n"; print LOGS "ERROR: Consulta Interfaz Descripcion: ".$direccion."\n"; $session->close; close (LOG); close (LOGS); return ; } my $cc=$resultcc->{$ifdescr}; #tipos de interfaz # FastEthernet # GigabitEthernet # Nortel Networks Business Policy Switch 2000 Ethernet Switch Module # 10/100 utp ethernet # LongReachEthernet0 #print LOGS $cc." --> ".$direccion."\n"; ############################################### #SE realiza el MATCH para clasificar la Ocupación según tipo de interfaz. ################################################# if ( $cc =~ /^FastEthernet/i || $cc =~ /^10\/100 utp ethernet/i || $cc =~ /^Nortel Networks Business Policy Switch 2000 Ethernet Switch Module/i){ if ( $aa == 1 && $bb == 1) { $pETH++; } #Comparacion logica para ver ocupacion deñ $tETH++; $hayETH0 = 1; } if ( $cc =~ /^GigabitEthernet/i ){ if ( $aa == 1 && $bb == 1) { $pGIGA++; } $tGIGA++; $hayGIGA = 1; } if ( $cc =~ /^LongReachEthernet/i ){ if ( $aa == 1 && $bb == 1) { $pLRE++; } $tLRE++; #tipo de interfaz (Fast Ethernet) 64 $hayLRE = 1; } Listado 4.19 Ocupación según tipo de interfaces Finalmente, la ocupación de puertas se obtiene de la comparación lógica entre ifAdminStatus e ifOperStatus, y es almacenado en las variables “$pETH” y “$pGIGA”. 4.3.4.3 IP-MPLS La ocupación de interfaces en la Plataforma IP-MPLS se hace en forma independiente para cada tipo de interfaz. Se consideran las interfaces para el desarrollo del proyecto: fast ethernet y GIGA, pero además se requiere identificar las otras interfaces presentes (ver Tabla 4.7). 65 Interfaz ATM/IMA SERIAL WAN Descripción Modo de Transferencia Asíncrona, la información se envía en celdas ATM. Interfaz E1 (Formato de transmisión digital a 2048*10^6 [bps]) Interfaz diseñada para conectar WAN (redes de área amplia) GIGA Interfaces GBIC Fast Ethernet Interfaces Ethernet de 100Mbps POS Interfaz de fibra óptica. (Packet over SONET) Interfaz en serie de alta velocidad. Estándar para una HSSI conexión en serie con velocidades de transmisión de hasta 52 Mbps Tabla 4.7 Tipos interfaces IP-MPLS Como son equipos de transmisión críticos para la empresa, su administración por parte de los operadores es más cuidadosa. En estos equipos, una interfaz se considera ocupada cuando ifAdminStatus es 1. Luego de obtener el index de las interfaces, se comienza a analizar cada una de ellas. Se consulta ifType, ifDescr e ifAdminStatus, estos resultados se almacenan en variables (ver Tabla 4.8). 66 Objeto MIB Variable ifType $tipo_inter ifDescr $string ifAtminStatus $valor Tabla 4.8 Variables Interfaces IP-MPLS Cada tipo de interfaz posee características distintas, para identificarla se usa una de las variables anteriores y se realizan filtros. Interfaces ATM/IMA: Estas poseen un ifType igual a 19 o 107 (ver Listado 4.20). if ( $tipo_inter == 19 || $tipo_inter == 107) { $tipo_IMA++; $hay_tipo_IMA++; #print "IMA tipo 107 y 107: ".$tipo_inter." ".$string."\n"; } if ( $tipo_inter == 37 && $string !~ /-/) { $tipo_IMA++; $hay_tipo_IMA++; #print "IMA tipo 37 y descr sin - : ".$tipo_inter." ".$string."\n"; } Listado 4.20 Capturar interfaces IMA Interfaces serial: Se consulta ifDescr, esta debe decir “Serial” (ver Listado 4.21). if ( $string =~ /^Serial/ && $string !~ /[.]/ ){ $tipo_SERIAL++; $hay_tipo_SERIAL++; 67 #print "SERIAL sin punto: ".$tipo_inter." ".$string."\n"; } Listado 4.21 Capturar interfaces serial Interfaces WAN: Poseen un ifType igual a 6, como todas las interfaces ethernet, por lo tanto se debe diferenciar por la descripción. En ifDescr debe decir “GE-WAN” (ver Listado 4.22). if ( $tipo_inter == 6 && $string =~ /^GE-WAN/ && $string !~ /-.-/ ) { $tipo_WAN++; $hay_tipo_WAN++; #print "GEWAN sin 2 - : ".$tipo_inter." ".$string."\n"; } Listado 4.22 Capturar Interfaces WAN Interfaces GIGA: Se debe diferenciar por la descripción, ifDescr debe ser igual al “GigabitEthernet” (ver Listado 4.23). if ( $tipo_inter == 6 && $string =~ /^GigabitEthernet/ && $string !~ /[.]/ && $string !~ /-/ ) { $tipo_GIGA++; $hay_tipo_GIGA++; #print "GIGA sin . ni - : ".$tipo_inter." ".$string."\n"; } Listado 4.23 Capturar interfaces GIGA Interfaces fast ethernet: Se diferencia por la descripción, ifDescr debe decir “FastEthernet” o “Ethernet” (ver Listado 4.24). 68 if ( $tipo_inter == 6 && $string =~ /^FastEthernet/ && $string !~ /[.]/) { $tipo_FastEth++; $hay_tipo_FastEth++; #print "Fast sin punto : ".$tipo_inter." ".$string."\n"; } if ( $tipo_inter == 6 && $string =~ /^Ethernet/ && $string !~ /[.]/) { $tipo_FastEth++; $hay_tipo_FastEth++; #print "Fast sin punto : ".$tipo_inter." ".$string."\n"; } Listado 4.24 Capturar interfaces fast ethernet Interfaces POS: Poseen un tipo definido, ifType debe ser igual a 171(ver Listado 4.25). if ( $tipo_inter == 171 ) { $tipo_POS++; $hay_tipo_POS++; #print "POS tipo 171: ".$tipo_inter." ".$string."\n"; } Listado 4.25 Capturar interfaces POS 69 Interfaces HSSI: La descripción (ifDescr) debe ser “Hssi” (ver Listado 4.26). if ( $string =~ /^Hssi/ && $string !~ /[.]/ && $string !~ /-/ ){ $tipo_Hssi++; $hay_tipo_Hssi++; #print "Hssi: ".$tipo_Hssi." ".$string."\n"; } Listado 4.26 Capturar interfaces HSSI Identificadas las interfaces se realiza la consulta si están ocupadas o no, esto es una consulta lógica. Si existe la interfaz y está habilitada por ifAdminStatus, entonces está ocupada (ver Listado 4.27). if($hay_tipo_IMA == 1 && $valor == 1 ) { $oc_IMA++; } if($hay_tipo_SERIAL == 1 && $valor == 1 ) { $oc_SERIAL++; } if($hay_tipo_WAN == 1 && $valor == 1 ) { $oc_WAN++; } if($hay_tipo_GIGA == 1 && $valor == 1 ) { $oc_GIGA++; } if($hay_tipo_FastEth == 1 && $valor == 1 ) { $oc_FastEth++; } if($hay_tipo_POS == 1 && $valor == 1 ) { $oc_POS++; } if($hay_tipo_Hssi == 1 && $valor == 1 ) { $oc_Hssi++; } Listado 4.27 Contabilizar interfaces ocupadas Así se obtiene la cantidad de puertas ocupadas en los equipos de la Plataforma IP-MPLS. 70 4.3.5 Numero de VLAN La cantidad de VLAN se captura para las Plataformas DSLAM y SWITCHES. Ambas poseen MIB diferentes que entregan el resultado, la función para obtener el número de VLAN es similar. El OID entrega la lista de VLAN creadas en el equipo, devuelve una lista con las VLAN y sus ID, y para obtener la cantidad se necesita un contador para las filas de la lista. 4.3.5.1 DSLAM Para obtener este indicador se utilizó la captura del indicador “Puertas Ocupadas”. Al consultar las VLAN creadas para compararlas con las VLAN presentes en las interfaces y ver la ocupación, se crea un contador “$contadorVLANS” y cada vez que se revisa una VLAN, se aumenta el contador. (Listado 4.15). El Zyxel IES-1000 soporta hasta 400 VLAN. 4.3.5.2 Switches La cantidad de VLAN en esta Plataforma que se obtiene con un contador (Listado 4.28), de igual manera que para los DSLAM. Los switch Cisco soportan hasta 1005 VLAN. my $CantidadVLAN='1.3.6.1.4.1.9.9.46.1.3.1.1.4'; #OID vtpVlanName my $result; #Se pide la Lista de VLAN $result = $session->get_table(-baseoid => $CantidadVLAN); 71 if(!defined($result)) { print LOG "ERROR: Consulta VLAN: ".$direccion."\n"; print LOGS "ERROR: Consulta VLAN: ".$direccion."\n"; $session->close; close (LOG); close (LOGS); return ; } my $contadorVLAN=0; #Se inicializa el contador foreach my $oid (oid_lex_sort(keys(%{$result}))) { #Recorre la lista de VLAN $contadorVLAN++; } Listado 4.28 Cantidad VLAN en switches 4.3.6 CPU Este indicador fue requerido como información adicional para ver la carga de procesos en los equipos. Se obtiene para las Plataformas IP-MPLS y SWITCHES. La obtención es la misma para ambas plataformas, debido a que las dos poseen la MIB donde se encuentra el indicador. El script de captura se ve en Listado 4.29. #Consultar CPU del Equipo my $OIDporcentajeuso ='1.3.6.1.4.1.9.2.1.58.0'; #OID avgBusy5 my $result12 = $session->get_request( -varbindlist => [$OIDporcentajeuso] #se pide la carga del CPU ); if (!defined($result12)) { print LOG "ERROR: Consulta CPU: ".$direccion."\n"; print LOGS "ERROR: Consulta CPU: ".$direccion."\n"; 72 $session->close; close (LOG); close (LOGS); return ; } my $porcentajeusoCPU=$result12->{$OIDporcentajeuso}; #se extrae la carga del CPU a la variable Listado 4.29 Captura porcentaje ocupación del CPU El script del Listado 4.29 no realiza análisis de las consultas, porque la ocupación del CPU se encuentra inmediatamente al realizar GET avgBusy5 básicamente. 4.3.7 Slot disponibles Son contenedores, en los cuales se pueden agregar módulos. Fue requerido para ver proyecciones de crecimiento en el mismo equipo. Si hay Slot’s disponibles es mas rápido instalar módulos con las interfaces necesarias que instalar un nuevo equipo. Este indicador es requerido en la Plataforma IP-MPLS. Esta información se captura utilizando la ENTITY-MIB #Inicializar Variables my $informacion='1.3.6.1.2.1.47.1.1.1.1.5'; my $container='5'; my $ncontainer='0'; my $modulo='9'; my $nmodulo='0'; #consulta OID my $result = $session->get_table(-baseoid => $informacion); if(!defined($result)) { print LOG "ERROR: Session tipos SLOT: ".$direccion."\n"; print LOGS "ERROR: Session tipos SLOT: ".$direccion."\n"; $session->close; 73 close(LOG); close(LOGS); return ; } #Analizar la lista del OID consultado, buscando los Modulos y los Containers foreach my $oid (oid_lex_sort(keys(%{$result}))) { if($result->{$oid} == $container){$ncontainer++;} if($result->{$oid} == $modulo){$nmodulo++;} } Listado 4.30 Captura slot disponibles en la plataforma IP-MPLS En el Listado 4.30 se comienza creando la variable “$informacion” con el OID entPhysicalClass. Para la obtención de los Slot disponibles es necesario buscar la cantidad total de containers, y luego los módulos instalados. Entonces los Slot’s disponibles son la resta de dos variables consultadas. 4.3.8 Sub-Interfaces Este indicador sólo se captura en la Plataforma IP-MPLS. Su captura se realiza dentro de la consulta de Ocupación de Puertas, en el ciclo donde se consulta cada una y se tiene las variables de la Tabla 4.8. Ahí se consulta si la interfaz es una Sub-Interfaz (Ver Listado 4.31) if( $tipo_inter == 134 || $tipo_inter == 135 ){ $subinter++; } if( $hay_tipo_SERIAL == 1 && $string =~ /[.]/ ) { $subinter++; } Listado 4.31 Capturar sub-interfaces 74 Las Sub-Interfaces son del tipo (ifType) igual a 134 y 135. El numero máximo depende del equipo, para los router Cisco 12008 es 4000 y para el resto de los equipos es 1000 Sub-Interfaces. 4.3.9 Numero VRF’s Fue requerido como Indicador a largo plazo, cuando se habiliten otras plataformas, este indicador será necesario para otros servicios. La captura del número de VRF creadas en los equipos de la Plataforma IP-MPLS es parte de la MIB MPLS-VPN-MIB, por lo tanto la captura es GET mplsVpnConfiguredVrfs. Esto se ve en el Listado 4.32. my $OIDvrf ='1.3.6.1.3.118.1.1.1.0'; #OID mplsVpnConfiguredVrfs my $result = $session->get_request( -varbindlist => [$OIDvrf] ); if (!defined($result)) { print LOG "ERROR: Consulta vrf: ".$direccion."\n"; print LOGS "ERROR: Consulta vrf: ".$direccion."\n"; $session->close; close (LOG); close (LOGS); return ; } my $nvrf=$result->{$OIDvrf}; #almaceno la variable de numero de VRF’s Listado 4.32 Capturar VRF en la plataforma IP-MPLS El script del Listado 4.32 almacena el numero de VRF’s en la variable “$nvrf”. Los equipos soportan 1000 VRF’s. 75 4.3.10 Ancho de banda Este indicador, no representa la ocupación de la troncal, debido a que sólo es medido una vez por semana en horario de bajo tráfico. El método de captura es aplicable a todas las plataformas, porque usa Objetos de MIB que pertenecen a la MIB-II (RFC1213). Los Objetos MIB con los cuales trabaja son: ifInOctets: 1.3.6.1.2.1.2.2.1.10.9 ifOutOctets: 1.3.6.1.2.1.2.2.1.16.9 ifSpeed: 1.3.6.1.2.1.2.2.1.5.9 El proceso de cálculo se basa en buscar la cantidad de “octetos” de entrada o salida que transitan por una interfaz en un intervalo de tiempo. La velocidad configurada en la interfaz (máxima velocidad de transmisión) se obtiene del Objeto de MIB ifspeed. Finalmente se deben convertir las unidades, para obtener un resultado en [Mbps]. 76 El formato de la primera captura de “octetos” de entrada y de salida se ve en el Listado 4.33, en el se definen las variables: $bytesin1: Primera captura de ifInOctets $bytesout1: Primera captura de ifOutOctets my $octin='1.3.6.1.2.1.2.2.1.10.9'; my $octout='1.3.6.1.2.1.2.2.1.16.9'; #Preguntando por primera vez por los bytes de entrada my $result20=$session->get_request( -varbindlist => [$octin] ); if (!defined($result20)) { print LOG "ERROR: Consulta bit entrada 1 BW IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Consulta bit entrada 1 BW IP: ".$direccion."\n"; close(LOGS); $session->close; return ; } my $bytesin1=$result20->{$octin}; # push(@Voctin1,$bytesin1); #Preguntando por primera vez por los bytes de salida my $result30=$session->get_request( -varbindlist => [$octout] ); if (!defined($result30)) { print LOG "ERROR: Consulta bit salida 1 BW IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Consulta bit salida 1 BW IP: ".$direccion."\n"; close(LOGS); $session->close; return ; 77 } my $bytesout1=$result30->{$octout}; Listado 4.33 Primera captura del ancho de banda El tiempo de espera se define en la variable “$deltaT”, luego de eso se vuelve a consultar los Objetos MIB (Listado 4.34) necesarios para obtener la cantidad de bytes que transitan por la interfaz en el periodo “$deltaT”. Las variables definidas y capturadas en el Listado 4.34 son: $bytesin2: Segunda captura ifInOctets $bytesout2: Segunda captura ifOutOctets #Esperando algun tiempo sleep($deltaT); #Preguntando por segunda vez por los bytes de entrada my $result40=$session->get_request( -varbindlist => [$octin] ); if (!defined($result40)) { print LOG "ERROR: Consulta bit entrada 2 BW IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Consulta bit entrada 2 BW IP: ".$direccion."\n"; close(LOGS); $session->close; return ; } my $bytesin2=$result40->{$octin}; # push(@Voctin2,$bytesin2); #Preguntando por segunda vez por los bytes de salida my $result50=$session->get_request( -varbindlist => [$octout] ); if (!defined($result50)) { 78 print LOG "ERROR: Consulta bit salida 2 BW IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Consulta bit salida 2 BW IP: ".$direccion."\n"; close(LOGS); $session->close; return ; } my $bytesout2=$result50->{$octout}; # push(@Voctout2,$bytesin2); Listado 4.34 Segunda captura del ancho de banda En el Listado 4.35 se obtiene la velocidad nominal de la interfaz definida por ifSpeed y almacenada en la variable “$maxbwinter”. Esta velocidad se encuentra en [bit/seg]. my $maxbw='1.3.6.1.2.1.2.2.1.5.9'; #Preguntando por el maximo de capacidad my $result60=$session->get_request( -varbindlist => [$maxbw] ); if (!defined($result60)) { print LOG "ERROR: Consulta BW MAX IP: ".$direccion."\n"; close(LOG); print LOGS "ERROR: Consulta BW MAX IP: ".$direccion."\n"; close(LOGS); $session->close; return ; } my $maxbwinter=$result60->{$maxbw}; Listado 4.35 Captura del ancho de banda nominal (ifSpeed) Los valores obtenidos definen el ancho de banda (BW) de entrada, salida y nominal de la interfaz. 79 Ancho de banda BWin = ∆ifInOctets ∆tiempo de byte seg , entrada donde (BWin): Se define como ∆ifInOctets = $byte sin 2 − $byte sin 1 y ∆tiempo = $deltaT . Ancho BWout = de banda ∆ifOutOctets byte , ∆tiempo seg de salida donde (BWout): Se define como ∆ifOutOctets = $bytesout 2 − $bytesout1 y ∆tiempo = $deltaT . bit Ancho de banda nominal (BWmax): Se define como BW max = ifspeed . seg El Ancho de Banda que mejor representa la ocupación de la interfaz es el mayor de los dos, esta decisión se toma en el Listado 4.36. my $bytesdelayin=$bytesin2-$bytesin1; my $bytesdelayout=$bytesout2-$bytesout1; my $anchodebanda1=$bytesdelayin/($deltaT); my $anchodebanda2=$bytesdelayout/($deltaT); #Ancho de banda mayor my $anchodebandafinal=0; if($anchodebanda1>$anchodebanda2) { $anchodebandafinal=$anchodebanda1; } else { 80 $anchodebandafinal=$anchodebanda2; } Listado 4.36 Análisis del ancho de banda El porcentaje de ocupación se da comparando el ancho de banda obtenido en [byte/seg] con el ancho de banda nominal entregado en [bit/seg]. La unidad de Ancho de Banda requerida es [Kbps], entonces se debe realizar la conversión de unidades (ver Listado 4.37): bit Kbit 1 Convertir bps a Kbps: ∗ → seg 1000 seg byte Kbit 8 Convertir Bps a Kbps: ∗ → seg 1000 seg #conversion unidades #$maxbwinter [bit/seg] a [Kbite/seg] $maxbwinter=int($maxbwinter/(1000)); #en Kbps my $maxbwinterM=int($maxbwinter/(1000)); #en Mbps #$anchodebandafinal [byte/seg] a [Kbite/seg] $anchodebandafinal=int($anchodebandafinal*8/(1000)); Listado 4.37 Conversión de unidades de ancho de banda 81 4.4 AUTOMATIZAR LA CAPTURA Con el proceso de captura funcionando se debe realizar la automatización. Este procedimiento se realiza en el servidor usando la herramienta “crontab”. Primero se definen los horarios de captura para cada Plataforma, estos se definen en la Tabla 4.9. Plataforma Horario DSLAM Sábados 1am SWITCHES Domingos 1am IP-MPLS Lunes 1am Tabla 4.9 Horario de captura para las plataformas La herramienta “crontab” permite ejecutar tareas en forma periódica. Esto se realiza agregando las tareas y el tiempo de ejecución en el archivo de configuración de “crontab”. La configuración del “crontab” se realiza en una línea para cada script a automatizar. En la línea se definen cinco campos configurables y luego la dirección del script, tal como se ve en la Figura 4.6. 82 Figura 4.6 Formato del crontab Para agregar tareas al “crontab” se ejecuta “crontab –e” que abre un editor, donde se ingresan las líneas según el Listado 4.38. #dslam 0 1 * * sat /usr/bin/perl5.8.4 /root/humberto/snmp/principalDSLAM.pl #switches 0 1 * * sun /usr/bin/perl5.8.4 /root/humberto/snmp/principalSWITCH.pl #ip-mpls 0 1 * * mon /usr/bin/perl5.8.4 /root/humberto/snmp/principalROUTER.pl Listado 4.38 Configuración del crontab en el capturador Una vez ingresada las líneas se cierra el archivo y automáticamente comienzan a correr las configuraciones. 83 CAPÍTULO 5 ANÁLISIS Este capitulo presenta como se va a realizar el análisis de los datos, usando los valores que se encuentran almacenados luego de la captura de un indicador en un equipo. Este método se generalizara para todos los indicadores en todos los equipos de todas las plataformas. Luego se desarrollara el script que realizara el análisis a los indicadores de los equipos. Los resultados obtenidos se clasificaran en segmentos según características comunes y finalmente se mostrara la forma de despliegue de los datos en una Web. Para comenzar el Capturador registra la ocupación de cada indicador, en un periodo de tiempo. La información almacenada en archivos históricos. Con los cuales es posible generar una grafica de la evolución del indicador (ver Figura 5.1) en el periodo de tiempo observado. Figura 5.1 Evolución del indicador 84 Para graficar las fechas de captura, se consideran la cantidad de días, a partir del 01 de enero de 2006. En la Figura 5.1 se grafica la evolución del indicador los primeros seis días de enero. Entonces, se puede generar una función matemática que represente la muestra de puntos, y con ésta se puede ver la tendencia de la ocupación (Figura 5.2). Figura 5.2 Tendencia de la ocupación La proyección de la curva nos permite predecir el comportamiento futuro (ver Figura 5.3). 85 Figura 5.3 Proyección del indicador En el grafico de la Figura 5.4 se ilustra el concepto de díasinventario, como la cantidad de días que tiene el indicador antes de llegar a su máxima capacidad. Si se considera 14 como el valor máximo del indicador, entonces la proyección indica que se alcanzará este límite en 6 días más. Por lo tanto el día 12 de enero se colmara la capacidad. 86 Figura 5.4 Días inventario La función que representa la tendencia de la muestra se obtiene a través del método de regresión de mínimos cuadrados. 87 5.2 PROCESO DE REGRESIÓN Para la búsqueda de la función que mejor represente al conjunto de puntos, se utiliza un proceso de regresión el cual comprende la utilización de modelos Lineales y no Lineales. 5.2.1 Modelo lineal Este modelo busca obtener la ecuación de la recta que represente mejor al conjunto de puntos en el plano cartesiano. La ecuación de la recta se define en la Figura 5.5. Figura 5.5 Ecuación de la recta Los parámetros “a” y “b” se representan en la Tabla 5.1. 88 Parámetro a Descripción Ordenada en el origen. Es el punto de corte con el eje de las ordenadas (Y), para X=0. Define la pendiente, es el grado de inclinación de la recta. b Esta puede ser negativa, para rectas decrecientes positivas, para rectas crecientes. Se define como: b = y ∆Y ∆X Tabla 5.1 Parámetros de la ecuación de la recta Para obtener el modelo se utiliza el método de Mínimos Cuadrados, que consiste en encontrar la recta tal que la suma de los cuadrados de las distancias dé los puntos a la recta y que sea la mínima posible (Ver Figura 5.6). Figura 5.6 Modelo mínimos cuadrados Con la condición ∑d 2 i = d12 + d 22 + ... + di2 + ... + d n2 ⇒ Mínimo , se llegan a obtener los parámetros de la ecuación de la recta: b= n∑ xi yi − ∑ xi ∑ yi n∑ xi2 − (∑ xi ) 2 89 a= ∑y i − b∑ xi n Donde: n : Cantidad de muestras x i : Dia y i : Indicador La recta generada con los parámetros anteriores representa al conjunto de puntos. Pero para confirmar la calidad de la representación, se utiliza el Coeficiente de Determinación R2que se define como: (n∑ x y − ∑ x ∑ y ) = [n∑ x − (∑ x ) ][n∑ y − (∑ y ) ] 2 R 2 i 2 i i i 2 i i 2 i 2 i Este término se obtiene de una serie de cálculos basándose en índices de dispersión, tales como la varianza y covarianza. La calidad de la representación se da según el valor entregado por el coeficiente de determinación R2. Una buena representación se da cuando R2 es cercano a uno, y una mala representación se da cuado el coeficiente de determinación es cercano a 0 (ver Figura 5.7). 90 Figura 5.7 Representación del coeficiente de determinación R2 Entonces las ecuaciones que se utilizaran para representar el modelo lineal de regresión de mínimos cuadrados se muestran en la Tabla 5.2. Parámetro Ecuación Recta Y=a+bx a b ∑y i − b∑ xi n n ∑ x i y i − ∑ xi ∑ y i n∑ xi2 − (∑ xi ) 2 (n∑ x y − ∑ x ∑ y ) [n∑ x − (∑ x ) ][n∑ y − (∑ y ) ] 2 R2 i 2 i i i 2 i i 2 i 2 i Tabla 5.2 Modelo lineal regresión de mínimos cuadrados 91 5.2.2 Modelo no lineal Se basa en el mismo formato que en el Modelo Lineal, pero se deben linealizar las ecuaciones. La función y=f(x) debe transformarse al formato Y=A+BX y luego se aplica el método de Regresión Lineal. 5.2.2.1 Modelo potencial En la Tabla 5.3 se presenta en detalle el Modelo Potencial. Detalle Ecuación Modelo y = a ∗ xb Modelo linealizado ln y = ln a + b ln x Formato buscado Y = A+ B* X Y ln y X ln x A ln a B b a eA b B Tabla 5.3 Detalles modelo potencial Para obtener los parámetros de la Tabla 5.4, se realiza el proceso de regresión sobre el modelo linealizado. 92 Parámetro Ecuación Potencial y = a * xb a ∑ ln yi − b∑ ln xi exp n n∑ ln x i ln y i − ∑ ln xi ∑ ln y i n∑ ln xi2 − (∑ ln xi ) b 2 (n∑ ln x ln y − ∑ ln x ∑ ln y ) 2 [n∑ ln x R2 i 2 i i ][ i i − (∑ ln xi ) n∑ ln y i2 − (∑ ln y i ) 2 2 ] Tabla 5.4 Parámetros modelo potencial 5.2.2.2 Modelo exponencial En la Tabla 5.5 se presenta en detalle el Modelo Exponencial. Detalle Ecuación Modelo y = a ∗ e bx Modelo linealizado ln y = ln a + bx Formato buscado Y = A+ B* X Y ln y X x A ln a B b a eA b B Tabla 5.5 Detalles modelo exponencial Para obtener los parámetros de la Tabla 5.6, se realiza el proceso de regresión sobre el modelo linealizado. 93 Parámetro Ecuación Potencial y = a * e bx a ∑ ln y i − b∑ xi exp n B n∑ x i ln y i − ∑ x i ∑ ln y i n∑ xi2 − (∑ xi ) 2 (n∑ x ln y − ∑ x ∑ ln y ) 2 R2 [n∑ x i 2 i i ][ i i − (∑ xi ) n∑ ln y i2 − (∑ ln y i ) 2 2 ] Tabla 5.6 Parámetros modelo exponencial 5.2.2.3 Modelo logarítmico En la Tabla 5.7 se presenta en detalle el Modelo Logarítmico. 94 Detalle Ecuación Modelo y = a + B * ln x Modelo linealizado y = a + B * ln x Formato buscado Y = A+ B* X Y y X ln x A a B b a A b B Tabla 5.7 Detalles modelo logarítmico Para obtener los parámetros de la Tabla 5.8, se realiza el proceso de regresión sobre el modelo linealizado. Parámetro Ecuación Potencial y = a + b * ln x a B ∑y i − b∑ ln xi n n∑ y i ln x i − ∑ ln x i ∑ y i n∑ ln x i2 − (∑ ln x i ) 2 (n∑ ln x y − ∑ ln x ∑ y ) 2 R2 [n∑ ln x i 2 i i ][ i i − (∑ ln xi ) n∑ y i2 − (∑ y i ) 2 Tabla 5.8 Parámetros modelo logarítmico 2 ] 95 5.3 ESTRUCTURA ANÁLISIS El análisis se realiza por medio de scripts, los que calculan la ocupación de cada indicador, aplican el método de regresión y clasifican los resultados. La estructura del análisis se aprecia en la Figura 5.8. Archivos entrada Procesos Análisis Archivos salida Figura 5.8 Estructura del análisis Existen tres tipos de análisis: ♦ Calcular Porcentaje de Ocupación y Días Inventario ♦ Clasificar resultados según Días Inventario ♦ Clasificar resultados según Porcentaje de Ocupación 5.3.1 Calcular porcentaje de ocupación y días inventario Este script “caculador_PLATAFORMA.pl” es el motor del análisis, y la tarea de realizar todos los cálculos desde la ocupación del indicador hasta aplicar cada uno de los modelos buscando el de mejor eficiencia, para Obtener los Días Inventario. Su operación se puede ver en la Figura 5.9. 96 Archivos de entrada: DATO-PLATAFORMA.txt.dd.mm.aaa DATO-PLATAFORMA.txt Análisis: calculador_PLATAFORMA.pl Archivos de salida: DATOWEB-PLATAFORMA-GRAF.txt DATOWEB-PLATAFORMA.txt fechasPLATAFORMA.txt Figura 5.9 Trabajo del script calculador_PLATAFORMA.pl 5.3.1.2 Archivos de entrada Estos archivos son la entrada al análisis y son obtenidos del Capturador, son entregados como respuesta a las consultas SNMP. ⇒ DATO-PLATAFORMA.txt.dd.mm.aaaa (ver sección 0) ⇒ DATO-PLATAFORMA.txt (ver sección 0) 97 5.3.1.3 Análisis Se compone de un archivo que realiza toda la tarea de cálculo. Archivo calculador_PLATAFORMA.txt El script obtiene información de los archivos de datos generados por el Capturador, los procesa y genera las salidas necesarias para el despliegue en la Web. El proceso comienza con la carga de los nombres de los archivos históricos. Se lee el nombre de cada uno y se analiza la fecha de captura. Los nombres los almacena en un vector “@nom” y las fechas en el archivo de salida “fechasPLATAFORMA.txt” (ver Listado 5.1). Las fechas son almacenadas como número de días desde el 01 de enero de 2006 y como texto “dd.mm.aaaa”. #Abre el directorio donde se los Historicos open ( FECHAS , ">/home/capacity/web/fechasSW.txt") || die (" no se pudo "); opendir DIR, "/home/capacity/historico/"; my @histo=readdir(DIR); #para cada archive Historico de esta plataforma almacenos el nombre y la fecha foreach $i (@histo) { if ( $i =~ "DATO-SWITCH"){ chomp $i; my @val = split (/\./, $i ); my $date = new Date::Handler({ date => { year => $val[4], 98 month => $val[3], day => $val[2], }, time_zone => 'Sudamerica', locale => 'es_CL' }); #alamaceno la fecha numerica, desde el 01/01/2006 my $ti=$date->DayOfYear() +$val[4]*$date->DaysInYear()-2006*365+1; push @tiempo, $ti; push @nom, $i; $jk= substr ($i, (index ($i, "t."))+2, (length $i)-1); #capturo la fecha ke aparece en el nombre del archivo print FECHAS $jk.";".$ti."\n"; #imprimo los valores en el archive fechas } } closedir DIR; close(FECHAS); Listado 5.2 Carga de los archivos históricos El proceso consiste en leer el archivo de la última captura “DATOPLATAFORMA.txt”, de ahí se van a extraer los nombres de los equipos y los indicadores a procesar. Con el nombre del equipo y el indicador seleccionado se busca en cada uno de los archivos históricos las coincidencias. Al encontrarse una, se almacena en un vector la ocupación, el máximo de ocupación y la fecha numérica (ver Listado 5.2). while ($equipoip = <EQUIPO>) { #leo una línea de DATO-PLATAFORMA.txt chomp($equipoip); @info=split(/;/,$equipoip); my $cont=0; foreach $nombre (@nom){ #Abro cada archive historico open( HIST , "/home/capacity/historico/".$nombre); 99 while ($raya = <HIST>) { chomp($raya); @datos1 = split(/;/, $raya); #comparo el liena leida con la linea del historico if ($datos1[0] eq $info[0] && $datos1[1] == $info[1]) { #almaceno las variables en vectores push @oc, $datos1[3]; push @tot, $datos1[4]; push @times , $tiempo[$cont]; } } close (HIST); $cont++; } Listado 5.3 Carga de todos los indicadores capturados Con los indicadores capturados en vectores se procede a aplicar los modelos de regresión (ver Listado 7.8). Con todos los cálculos realizados se selecciona el modelo que posea un coeficiente de determinación R2 más cercano a uno para calcular los Días Inventario. Se necesitan aplicar un conjunto de condiciones para que el valor entregado de Días Inventario tenga sentido. Se dan cinco casos (ver Tabla 5.9). 100 Casos Días Inventario Descripción La función genera una recta paralela al eje x. No hay cambios Pendiente cercana a cero (ver Figura 5.10). La función es creciente y el valor numérico es Valor en Días la cantidad de días que quedan para llegar al máximo de ocupación (ver Figura 5.11). El valor numérico es mayor a 180 días. El grafico es igual al de valor en días, pero será Mas de 6 meses representado por la cadena de texto “más de 6 meses”. El cálculo entrega una cantidad de días Agotado menor a los días de la fecha actual (ver Figura 5.12). Desocupación Pendiente negativa (ver Figura 5.13). Tabla 5.9 Casos de días inventario Ocu p aci on de Indi cador N o hay Cambi os Ocupacion Indicador 7 6 5 4 3 2 1 0 1 2 3 4 5 6 Fe chas de l His torico Figura 5.10 Caso “No hay cambios” días inventario 101 Ocu p aci on de Indi cador Val or en Di as maximo Ocupacion Indicador 12 10 8 6 3 Dias Inventario 4 hoy 2 0 1 2 3 4 5 6 7 8 9 Fe chas de l His torico Figura 5.11 Caso “Valor en días” días inventario Ocuapcion Indicador Ocu p aci on de Indi cador Agotado 8 7 6 5 maximo maximo cruza con la tendencia. 4 3 2 1 0 hoy 1 2 3 4 5 6 Fe chas de l His torico Figura 5.12 Caso “Agotado” días inventario 102 Ocupacion del Indicador Ocup aci on del Indi cador Desocu p aci ón 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 Fe chas de l His torico Figura 5.13 Caso “Desocupación” días inventario Una sección de las condiciones del cálculo de los días inventario se ve en el Listado 5.3 if ($rlo == $erresS[$#erresS]){ $aproxx="Logaritmica"; $correla=$rlo; #analisis dias Logaritmos #print "DIAS Logaritmicos!!!\n"; if ($Blo >= -0.000000001 && $Blo < 0.000000001 ){$diainv="No hay cambios";} if ($Blo >= 0.000000001){ $dias=int (exp(($totalast-$Alo)/$Blo)); if ($dias > $timesS[$#timesS]){ $diainv=($dias-$timesS[$#timesS]); # print "dias: ".$dias."\n"; # print "dia inv: ".$diainv."\n"; # print "tiempo mayor".$timesS[$#timesS]."\n"; if ( $diainv >180 ){$diainv="mas de 6 meses";} } else{ $diainv="AGOTADO"; } 103 } if ($Blo < -0.000000001){ $diainv="Desocupacion"; } Listado 5.4 Condiciones de calculo de los días dnventario 5.3.1.4 Archivos de salida Se deben generar estos archivos, manteniendo el formato de archivos de salida anteriores, parámetros separados por “;”. Los archivos son: Archivo DATOWEB-PLATAFORMA.txt En este archivo esta almacenada la interfaz Web. La información almacenada se muestra en la Tabla 5.10. 104 Parámetro Descripción Alias Nombre normalizado del equipo Nodo Ubicación geográfica del equipo Indicador Descripción del indicador %Ocupación Porcentaje de ocupación del indicador Días Inventario Cantidad de días que quedan para llegar al máximo de ocupación Vector que contiene tres parámetros en forma consecutiva. Estos son: Histórico Ocupación. Máxima ocupación Fecha en cantidad de días. Tabla 5.10 Parámetros del archivo DATAWEB-PLATAFORMA.txt Archivo DATOWEB-PLATAFORMA-GRAF.txt Se almacena la información para graficar la evolución del indicador (ver Tabla 5.11). 105 Parámetro Descripción Alias Nombre normalizado del equipo Nodo Ubicación geográfica del equipo Indicador Descripción del indicador %Ocupación Porcentaje de ocupación del indicador Días Inventario Cantidad de días que quedan para llegar al máximo de ocupación Aproximación Método usado para realizar la regresión Índice Coeficiente de determinación R2 Vector que contiene los siguientes parámetros en forma consecutiva: Histórico valorY dado remplazando la función generada por la regresión en la fecha del histórico. Ocupación en la fecha de la captura Fecha de la captura. Tabla 5.11 Parámetros del archivo DATOWEB-PLATAFORMA-GRAF.txt 5.3.2 Clasificar resultados según días inventario La clasificación se realiza en base a la estructura de la Figura 5.14, teniendo como núcleo el archivo de clasificación. 106 Archivos de entrada: DATOWEB-PLATAFORMA.txt nodoPLATAFORMA.txt Análisis: calculador_resumen_PLATAFORMA.pl Archivos de salida: RESUMENWEB-PLATAFORMA.txt Figura 5.14 Estructura de clasificación según días inventario 5.3.2.2 Archivos de entrada Cada archivo de entrada tiene una utilidad diferente. ⇒ DATOWEB-PLATAFROMA.txt (ver sección5.3.1.4). ⇒ nodoPLATAFORMA.txt: Es una lista de nodos de la plataforma. 5.3.2.3 Análisis 107 Se compone de un archivo, que realiza toda la tarea de agrupar los resultados. Archivo calculador_resumen_PLATAFORMA.pl Es un archivo para clasificar los indicadores, agruparlos dentro de segmentos comunes para mostrarlos en la Web de manera más rápida. Este archivo clasifica la cantidad de Días Inventario presentes en un indicador en grupos: Grupo 1: 0 a 30 Días Inventario Grupo 2: 30 a 60 Días Inventario Grupo 3: 60 a 90 Días Inventario Grupo 4: 90 a 120 Días Inventario Grupo 5: 120 a 150 Días Inventario Grupo 6: 150 a 180 Días Inventario Grupo 7: Más de 6 meses Grupo 8: Desocupación Grupo 9: No hay cambios Grupo 10: Agotado Luego se contabiliza la cantidad de indicadores en cada grupo (ver Listado 5.4). Esto se realiza para distintos niveles de agrupación de equipos: Nivel 1: Plataforma Nivel 2: Zona (Norte, Centro, Sur) Nivel 3: Región Nivel 4: Nodo if( $lineas[4] > 0 && $lineas[4] <= 30 ){$nequipo301++;} if( $lineas[4] > 30 && $lineas[4] <= 60 ){$nequipo601++;} if( $lineas[4] > 60 && $lineas[4] <= 90 ){$nequipo901++;} 108 if( $lineas[4] > 90 && $lineas[4] <= 120 ){$nequipo1201++;} if( $lineas[4] > 120 && $lineas[4] <= 150 ){$nequipo1501++;} if( $lineas[4] > 150 && $lineas[4] <= 180 ){$nequipo1801++;} if( $lineas[4] =~ /^mas de 6 meses$/ ){$nequipo2101++;} if( $lineas[4] =~ /^Desocupacion$/ ){$nequipo2201++;} if( $lineas[4] =~ /^No hay cambios$/ ){$nequipo2301++;} if( $lineas[4] =~ /^AGOTADO$/ ){$nequipo2401++;} Listado 5.5 Clasificación de días inventario Nivel 1 Se realiza la clasificación para toda la plataforma, por lo tanto se trabaja en todos los equipos presentes en el archivo “DATOWEBPLATAFORMA.txt” Nivel 2 Se clasifican los equipos por zonas geográficas. Se definen 3 zonas en el territorio nacional (ver Tabla 5.12). Zona Regiones Norte 1,2,3,4 Centro 5,RM Sur 6,7,8,9,10,11,12 Tabla 5.12 Zonas geográficas La clasificación (ver Listado 5.5) se realiza por el Alias que identifica al equipo, en los primeros cuatro caracteres se da la región a la cual pertenece. #($lineas[0] es el alias del equipo 109 if($lineas[0] =~ /CL01|CL02|CL03|CL04/){ #funcion } if($lineas[0] =~ /CL05|CLRM/ ){ #funcion } if($lineas[0] =~ /CL06|CL07|CL08|CL09|CL10|CL11|CL12/ ){ #funcion } Listado 5.6 Clasificación según zona geográfica Nivel 3 La clasificación por región consiste en contabilizar los equipos que tiene la región en común. Eso se realiza de forma similar a la clasificación por zona geográfica. Nivel 4 El nodo al que pertenece el equipo es un parámetro del archivo “DATOWEB-PLATAFORMA.txt”. Además se mantiene una lista de nodos de la plataforma en el archivo “nodosPLATAFORMA.txt”. El proceso de clasificación lee un nodo de la lista, busca las coincidencias en el archivo “DATOWEB-PLATAFORMA.txt”, y al inventario de cada indicador del equipo. encontrarla clasifica los días 110 5.3.2.4 Archivo de salida El archivo de salida “RESUMENWEB-PLATAFORMA.txt” posee un formato basado en 3 elementos importantes, como se ve en la Tabla 5.13. Parámetro Nivel Indicador Grupo Descripción Nombre del nivel en el cual se realiza la clasificación de los días inventario. Descripción del indicador que se esta clasificando. Vector consecutivo de la cantidad de equipos que pertenecen a cada grupo (separados por “;”) Tabla 5.13 Formato salida del archivo RESUMENWEB-PLATAFORMA.txt 5.3.3 Clasificar resultados según porcentaje de ocupación La estructura de clasificación de porcentajes de ocupación de los indicadores se ve en la Figura 5.15 111 Archivos de entrada: DATOWEB-PLATAFORMA.txt nodoPLATAFORMA.txt Análisis: calculador_resumen_PLATAFORMA_oc.pl Archivos de salida: RESUMENWEB-PLATAFORMA-OC.txt Figura 5.15 Estructura de clasificación según porcentaje de ocupación 5.3.3.2 Archivos de entrada Cada archivo de entrada tiene una utilidad diferente. ⇒ DATOWEB-PLATAFROMA.txt (ver sección 5.3.1.4). ⇒ nodoPLATAFORMA.txt: Es una lista de nodos de la plataforma. 112 5.3.3.3 Análisis Se realiza por medio de un archivo, que realiza la agrupación de los resultados según la ocupación del indicador. Archivo calculador_resumen_PLATAFORMA_oc.pl Es otro archivo de clasificación presente en el análisis, este archivo clasifica el porcentaje de ocupación de cada indicador. Es similar al archivo “calculador_RESUMEN_PLATAFORMA.pl” en el proceso de clasificación por niveles, sólo se diferencia en los grupos. Los grupos son: Grupo 1: 0 a 20 % Grupo 2: 20 a 40 % Grupo 3: 40 a 60 % Grupo 4: 60 a 80 % Grupo 5: 80 a 100 % Luego se contabiliza la cantidad de equipos que pertenecen a cada grupo (ver Listado 5.6) según el nivel en el cual se encuentre. if( $lineas[3] >= 0 && $lineas[3] <=20 ){$nequipo303++;} if( $lineas[3] > 20 && $lineas[3] <=60 ){$nequipo603++;} if( $lineas[3] > 60 && $lineas[3] <=80 ){$nequipo903++;} if( $lineas[3] > 80 && $lineas[3] <=100 ){$nequipo1203++; } Listado 5.7 Clasificación según el porcentaje de ocupación 113 5.3.3.4 Archivo de salida El archivo de salida “RESUMENWEB-PLATAFORMA-OC.txt” posee un formato basado en 3 elementos importantes, como se ve en la Tabla 5.14. Parámetro Nivel Indicador Grupo Descripción Nombre del nivel en el cual se realiza la clasificación de los días inventario. Descripción del indicador que se está clasificando. Vector consecutivo de la cantidad de equipos que pertenecen a cada grupo (separados por “;”) Tabla 5.14 Formato salida del archivo RESUMENWEB-PLATAFORMA-OC.txt 5.4 ESTRUCTURA DE DESPLIEGUE El despliegue se realiza en una Web dinámica que se actualiza automáticamente una vez por semana. Las páginas son generadas usando Perl y se inicializan con la información almacenada en los archivos de salida del análisis (ver Figura 5.16) 114 Figura 5.16 Web del capturador La página se compone de un menú principal y el área de contenido. 5.4.2 Menú principal En el menú se encuentran las plataformas y las diferentes opciones para cada una de ellas (ver Figura 5.17). Para el despliegue en la Web, se requirió la división de la plataforma DSLAM en ADSL y SDSL. 115 Figura 5.17 Menú de la web del capturador 5.4.3 Área de contenido El área de contenido es variable, según la sección del menú en la cual se ingrese. Las secciones son: ♦ PLATAFORMA ♦ LOG ♦ EQUIPOS CONSULTADOS ♦ ADMINISTRACION DEL CAPTURADOR 116 5.4.3.1 Plataforma Se centra el resumen de la plataforma. Ésta posee tres cuadros de diálogo. Cada uno entrega información distinta. Cuadro de diálogo 1 Se compone de filtros para mostrar equipos (ver Figura 5.18). Cada filtro se aplica a la lista completa de equipos (“DATOWEB- PLATAFORMA.txt”). Figura 5.18 Filtro de equipos consultados El filtro puede ser por Zona, Región, Nodo y Equipo. Pero no diferencia entre los indicadores capturados sino que se limita a entregar todos los que pertenecen al equipo, como se aprecia en la Figura 5.19. 117 Figura 5.19 Respuesta al filtro de región Cuadro de diálogo 2 Entrega la información resumida por grupos de los Días inventario y el porcentaje de Ocupación. Da la posibilidad de seleccionar los indicadores a mostrar y además seleccionar el nivel en el cual se entregará el resumen (ver Figura 5.20). 118 Figura 5.20 Dialogo de resumen para los días inventario La respuesta al resumen son 2 secciones: la primera sección una entrega un resumen del Porcentaje de Ocupación (ver Figura 5.21) y la segunda sección da un resumen de los Días Inventario (ver Figura 5.22). Figura 5.21 Resumen porcentaje de ocupación Figura 5.22 Resumen días inventario 119 En ambas respuestas se puede llegar al detalle de los equipos que se encuentran en cada grupo (ver Figura 5.23). Figura 5.23 Detalle de información de los equipos Todas las tablas pueden ser exportardas a Microsoft Excel, en caso de ser necesario un manejo más detallado (ver Figura 5.24). Además se puede ver en forma grafica la ocupación y la regresión en el tiempo (ver Figura 5.25). Figura 5.24 Exportar a Microsoft Excel 120 Figura 5.25 Grafico de ocupación Cuadro de diálogo 3 Es una sección administrativa, es alcanzable del menú principal, por lo tanto se explicara en la sección de administración del capturador. 5.4.3.2 Bitácora Esta sección se da para ver los LOG del Capturador. Permite ver el último LOG (ver Figura 5.26) o el LOG histórico que posee información de todas las consultas de la plataforma. 121 Figura 5.26 Bitácora del capturador 5.4.3.3 Equipos consultados Entrega la lista de equipos consultados (ver extrayéndola del archivo infoPLATAFORMA.txt. Figura 5.27 Lista de los equipos consultados Figura 5.27), 122 5.4.3.4 Administración del capturador En la Web, además de mostrar la información capturada de distintas formas, se puede realizar un proceso simple de administración del Capturador, a través de la facultad de agregar (ver Figura 5.28) o eliminar equipos (ver Figura 5.29) de la lista de consultas. El proceso consiste en tomar las variables ingresadas y editar el archivo infoPLATAFORMA.txt, agregando los nuevos equipos al final de la consulta o buscando y eliminado el equipo seleccionado. Esta página esta protegida vía password, para saber si es un usuario autorizado para realizar la modificación. Figura 5.28 Agregar equipo 123 Figura 5.29 Eliminar equipo 124 CAPÍTULO 6 CONCLUSIONES Los resultados obtenidos por el Capturador reflejan en forma precisa la información de ocupación entregada por las áreas que administran las respectivas plataformas. La empresa se encuentra hoy en día utilizando esta información para adquirir y justificar recursos. Se observaron también situaciones de variaciones en los resultados debido a que no se han normalizado algunos casos que producen confusión, como la existencia de interfaces defectuosas. El método de consultar indicadores por SNMP es aplicable a todos los equipos, que posean las MIB necesarias. Es decir, la aplicación no esta restringida a operar con marcas o lienas especificas de equipos. Por lo tanto, se pueden agregar nuevos equipos que cumplan a con lo anterior y así extender el uso de este sistema de consulta Capturador. El Capturador demostró ser capaz de mantener información clara y de rápido acceso, y ha sido utilizado en varios ítem de proyectos donde se ha necesitado saber las capacidades de las plataformas. Respecto al desarrollo del Capturador, los archivos generados, a medida que transcurre, el tiempo se van haciendo más voluminosos, por lo tanto el análisis cada vez se va a hacer más lento, pero como se realiza una vez a la semana no perjudicará a corto plazo la utilización de la herramienta. El crecimiento y el tiempo invertido en el análisis se ven en la Tabla 6.1. Estos datos fueron obtenidos solo para la plataforma Switches que posee una cantidad de 158 equipos 125 Plataforma Switches Cantidad de equipos [unidades] 158 Proceso captura Tiempo[min] Tiempo medio por equipo [seg] Cantidad datos almacenados [KB] Cantidad media de datos por equipo [Byte] 30 11 81 527 Proceso calculo días inventario Tiempo[min] Tiempo medio por equipo [seg] Cantidad datos almacenados [KB] Cantidad media de datos por equipo [Byte] Cantidad acumulada a la fecha [KB] 15 5 11 69 352 Proceso clasificación por días inventario Tiempo[min] Tiempo medio por equipo [seg] Cantidad datos almacenados [KB] Cantidad media de datos por equipo [Byte] 1 0,3 46 295 Proceso clasificación por porcentaje de ocupación Tiempo[min] Tiempo medio por equipo [min] Cantidad datos almacenados [KB] Cantidad media de datos por equipo [KB] 1 0.3 41 259 Tabla 6.1 Detalles proceso de captura y análisis En la Tabla 6.1 se en detalle el tiempo y la cantidad de datos que se manejan en cada uno de los procesos. El proceso que mas tiempo requiere es la captura por SNMP, se debe a la cantidad de interfaces. Pero los datos obtenidos no van en aumento, porque se remplaza el archivo donde se almacenan. El proceso de calculo de días inventario tarda 15 min en ejecutarse, este proceso va en aumento a medida que son mas fechas las que debe calcular y su archivo va creciendo a medida que se ejecutan mas capturas, entonces este proceso dará dificultades en un futuro cuando se tengan años de capturas. Los otros dos procesos de clasificación no darán problemas, son rápidos y simples y sus archivos no se ven en aumento. 126 Una solución a la cantidad de datos es migrar a una base de datos y sobre ella realizar el procedimiento de análisis. Otra solución es limitar la ventana según el tipo de plataforma, para plataformas de alta movilidad en servicios se propone el uso de ventanas menores, porque rápidamente los equipo muestran una tendencia de ocupación o desocupación, en cambio para equipos como routers, donde la ocupación es mas estable, se recomiendan ventanas de análisis mas grandes, para así detectar las variaciones en la ocupación. El sistema desarrollado demostró ser un sistema viable para fines de obtener las capacidades de las plataformas y realizar un análisis sobre ellas. El sistema puede ser extendido implementando nuevas plataformas y enfocandolo a las necesidades de otras areas de la empresa. Dado que el sistema mantiene un registro de los indicadores capturados, se pueden realizar más análisis de datos, más filtros, complementado con utilidades para areas de venta de servicios, adquisición de equipos. Debido a la modularidad de la herramienta, enfocada a plataformas con distintos tipos de equipos, se otorga un grado de flexibilidad para presentar sobre ella nuevas plataformas y así realizar nuevos análisis, desarrollando modelos para integrar la ocupación de servicios. En la Figura 6.2 se ve la variación de la ocupación de un equipo de la plataforma DSLAM. Este grafico muestra como la ocupación de las interfaces se ha mantenido en 2 hasta el de de junio de 2006, luego comienza un repentino crecimiento hasta llegar a tener 6 puertas ocupadas el 19 de agosto de 2006. El análisis que más refleja este 127 conjunto de muestras es una aproximación exponencial, la cual tiene un coeficiente de determinación R2 de 0.8476. En el grafico no se aprecia el momento que la curva generada por el método de aproximación exponencial llega al máximo de puertas disponibles en el equipo, en este caso 8 puertas. Pero en la Web del Capturador se ve el estado del equipo (ver Figura 6.3), definido por los días inventario y el porcentaje de ocupación del indicador. Por lo tanto según la proyección realizada este equipo llegara a su máxima capacidad en 62 días más. Figura 6.2 Ocupación puertas equipo plataforma DSLAM Figura 6.3 Estado del equipo plataforma DSLAM 128 BIBLIOGRAFIA [1] Zyxel User Guide, “IES-1000 Integrated Ethernet Switch”, http://dl0.web.zyxel.ru/001/IES-1000/document/IES-1000_v205_UsersGuide.pdf (2004) [2] Cisco System, “Cisco Network Monitoring and Event Correlation Guidelines”, http://www.cisco.com/en/US/products/sw/cscowork/ps2393/prod_tech nical_reference09186a00800a9e2f.html (2006) [3] Maria Sol Canalis, “MPLS: Multiprotocol Label Switching”, http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MP LS.PDF (2002) [4] Augusto Vyhmister Nanking, “Monitoreo de calidad técnica del suministro eléctrico a redes de dato vía UPS”, Universidad de Concepción, Facultad de Ingeniería, Dpto. Ing. Eléctrica (1997). [5] Tom Shaughnessy, “Manual de CISCO”, McGraw-Hill (2000) [6] Daniel A. Menascé, “Capacity Planning for Web Services”, Prentice Hall PTR. (2002) [7] William Stalling, “Comunicaciones y Redes de Computadores”, Prentice Hall (2000) [8] J. Cady and B. Howarth, “Computers Systems Performance Management and Capacity Planning”, Prentice Hall (1990) [9] Michael Gossland and Associates “Introductory Perl Tutorial Course for Windows”, http://www.gossland.com/course/index.html, (2006) 129 [10] Joseph N. Hall, “Effective Perl programming”, http://www.usenix.org/publications/login/1999-4/perl.html (1999) [11] Paul Vixie <[email protected]>, “man crontab”, http://www.hmug.org/man/5/crontab.php (1994) [12] Javier Fernández-Sanguino Peña, “Gestión SNMP con Linux”, http://es.tldp.org/Articulos-periodisticos/jfs/snmp/snmp.html (2001) [13] Rachel Andrew, “Style Web Forms Using CSS”, http://www.sitepoint.com/article/style-web-forms-css/1 (2003) [14] Cisco Systems, “Supported Device Table for DFM 2.0”, http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/cw2000/df m/dev_sup/dfm2_0.htm#wp95509 (2006) [15] Cisco Systems, “Features For Any Interface”, http://www.cisco.com/en/US/products/ps6350/products_configuration_ guide_chapter09186a00804455ae.html#wp1090659 (2006) [16] Jacqueline Hamilton, “CGI Programming 101 (2nd edition)”, http://www.cgi101.com/book/intro.html (2004) [17] Cisco System, “Catalyst 2950 and Catalyst 2955 Switch Software Configuration Guide”, http://www.cisco.com/en/US/products/hw/switches/ps628/products_co nfiguration_guide_book09186a008047233a.html (2006) [18] Cisco System, “Data Sheet Cisco Catalyst 2955 Series Switches”, http://www.cisco.com/en/US/products/hw/switches/ps628/products_da ta_sheet09186a008033a436.html (2005) [19] Cisco System, “Catalyst 3550 Multilayer Switch Software Configuration Guide”, 130 http://www.cisco.com/en/US/products/hw/switches/ps646/products_co nfiguration_guide_book09186a008014f30e.html (2003) [20] Cisco System, “Data Sheet Cisco Catalyst 3550 Series Intelligent Ethernet Switches”, http://www.cisco.com/en/US/products/hw/switches/ps646/products_da ta_sheet09186a00800913d7.html (2005) [21] Cisco System, “Cisco 12000 Series Channelized Line Card”, http://www.cisco.com/en/US/products/hw/modules/ps2710/products_d ata_sheet0900aecd80416929.html (2006) [22] Cisco System, “Cisco 12008 and Cisco 12012 Routers”, http://www.cisco.com/en/US/products/hw/routers/ps167/products_dat a_sheet09186a00800920b9.html (2006) [23] Cisco System, “Cisco 7200 Series Router MIB Specifications Guide”, http://www.cisco.com/en/US/products/hw/routers/ps341/products_mib _quick_reference_book09186a00803d6154.html (2005) [24] Cisco System, “Cisco 7500 Series Router”, http://www.cisco.com/en/US/products/hw/routers/ps359/products_dat a_sheet0900aecd800f5542.html (2005) [25] Cisco System, “Cisco 7507 Quick Start Guide”, http://www.cisco.com/en/US/products/hw/routers/ps359/products_qui ck_start09186a00800dc779.html (2005) [26] Cisco System, “Data Sheet Cisco 7609 Router-Enhenced 9-slot Chassis”, http://www.cisco.com/en/US/products/hw/routers/ps368/products_dat a_sheet09186a0080169ead.html (2006) 131 [27] Cisco System, “Cisco 7600 Series Internet Router MIB Specifications”, http://www.cisco.com/en/US/products/hw/routers/ps368/products_mib _quick_reference_book09186a008051d16d.html (2005) [28] Cisco System, “Cisco 7600 Series Router Hardware Documentation”, http://www.cisco.com/en/US/products/hw/routers/ps368/products_inst allation_guide_book09186a008057b682.html (2005) [29] Rosario Ruiz Baños, “Ecuación Explícita de la Recta”, http://www.ugr.es/~rruizb/cognosfera/sala_de_estudio/estadistica/regre sion.ppt (2002) [30] Jorge Peri, “Metodología de la Programación”, http://www.tyr.unlu.edu.ar/TYR-publica/MODULO-PROGRAMACION2002-v16.pdf (2004) [31] Cisco System, “How To Calculate Bandwidth Utilization Using SNMP”, http://www.cisco.com/warp/public/477/SNMP/calculate_bandwidth_sn mp.html (2005) [32] K. McCloghrie, (1991) “RFC1213”, http://ietfreport.isoc.org/rfc/rfc1213.txt 132 CAPÍTULO 7 ANEXOS • BRIDGE-MIB (RFC1493) • CISCO-2900-MIB • CISCO-BULK-FILE-MIB • CISCO-CDP-MIB • CISCO-CLUSTER-MIB • CISCO_CONFIG_COPY_MIB • CISCO-CONFIG-MAN-MIB • CISCO-ENTITY-MIB • CISCO-ENTITY-ALARM-MIB (Catalyst 2955 only) • CISCO-ENTITY-VENDORTYPE-OID-MIB • CISCO_ENVMON_MIB • CISCO-FLASH-MIB • CISCO-FTP-CLIENT-MIB • CISCO-IETF-VDSL-LINE-MIB (Catalyst 2950 Long-Reach Ethernet [LRE] only) • CISCO-IGMP-FILTER-MIB • CISCO-IMAGE-MIB • CISCO-LRE-CPR-MIB (Catalyst 2950 LRE only) • CISCO-MAC-NOTIFICATION-MIB • CISCO-MEMORY-POOL-MIB • CISCO-PAE-MIB • CISCO-PAGP-MIB • CISCO-PING-MIB • CISCO-PORT-SECURITY-MIB • CISCO-PROCESS-MIB • CISCO-PRODUCTS-MIB • CISCO-RTTMON-MIB • CISCO-SMI • CISCO_STACKMAKER_MIB • CISCO-STP-EXTENSIONS-MIB • CISCO-SYSLOG-MIB • CISCO-TC • CISCO-TCP-MIB • CISCO-VLAN-MEMBERSHIP-MIB • CISCO-VTP-MIB 133 • ENTITY-MIB • IEEE8021-PAE-MIB • IANAifType-MIB • IF-MIB (RFC 1573) • OLD-CISCO-CHASSIS-MIB • OLD-CISCO-CPU-MIB • OLD-CISCO-INTERFACES-MIB • OLD-CISCO-IP-MIB • OLD-CISCO-MEMORY-MIB • OLD-CISCO-SYSTEM-MIB • OLD-CISCO-TCP-MIB • OLD-CISCO-TS-MIB • RFC1213-MIB • RFC1398-MIB • RMON-MIB (RFC 1757) • RS-232-MIB • SNMPv2-MIB • SNMPv2-SMI • SNMPv2-TC • TCP-MIB • UDP-MIB Listado 7.1 MIB Cisco Catalyst serie 2950 • BRIDGE-MIB • CISCO-BULK-FILE-MIB • CISCO-CDP-MIB • CISCO-CLUSTER-MIB • CISCO-CONFIG-COPY-MIB • CISCO-CONFIG-MAN-MIB • CISCO-ENVMON-MIB • CISCO-FLASH-MIB • CISCO-FTP-CLIENT-MIB • CISCO-HSRP-EXT-MIB • CISCO-HSRP-MIB • CISCO-IGMP-FILTER-MIB 134 • CISCO-IMAGE-MIB • CISCO-IPMROUTE-MIB • CISCO-MAC-NOTIFICATION-MIB • CISCO-MEMORY-POOL-MIB • CISCO-PAGP-MIB • CISCO-PORT-QOS-MIB • CISCO-PROCESS-MIB • CISCO-RTTMON-MIB • CISCO-STACKMAKER-MIB • CISCO-STACK-MIB • CISCO-STP-EXTENSIONS-MIB • CISCO-SYSLOG-MIB • CISCO-TCP-MIB • CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB • CISCO-VLAN-MEMBERSHIP-MIB • CISCO-VTP-MIB • ENTITY-MIB • IF-MIB • IGMP-MIB • IPMROUTE-MIBL2/L3 INTERFACE MIB • OLD-CISCO-CHASSIS-MIB • OLD-CISCO-SYSTEM-MIB • OLD-CISCO-TS-MIB • OSPF-MIB (RFC 1253) • PIM-MIB • RFC1213-MIB • RMON2-MIB • SNMPv2-MIB • TCP-MIB • UDP-MIB Listado 7.2 MIB Cisco Catalyst serie 3550 • BRIDGE-MIB.my • CISCO-GENERAL-TRAPS.my • NOVELL-IPX-MIB.my 135 • NOVELL-RIPSAP-MIB.my • OLD-CISCO-APPLETALK-MIB.my • OLD-CISCO-CHASSIS-MIB.my • OLD-CISCO-CPU-MIB.my • OLD-CISCO-DECNET-MIB.my • OLD-CISCO-ENV-MIB.my • OLD-CISCO-FLASH-MIB.my • OLD-CISCO-INTERFACES-MIB.my • OLD-CISCO-IP-MIB.my • OLD-CISCO-MEMORY-MIB.my • OLD-CISCO-NOVELL-MIB.my • OLD-CISCO-SYS-MIB.my • OLD-CISCO-SYSTEM-MIB.my • OLD-CISCO-TCP-MIB. • OLD-CISCO-TS-MIB.my • OLD-CISCO-VINES-MIB.my • OLD-CISCO-XNS-MIB.my • RFC1213-MIB.my • RFC1231-MIB.my • RFC1243-MIB.my • RFC1285-MIB • RFC1315-MIB.my • RFC1381-MIB.my • RFC1382-MIB.my • RFC1398-MIB.my • RFC1406-MIB.my • SNMP-REPEATER-MIB.my • SOURCE-ROUTING-MIB.my • BGP4-MIB.my • CISCO-CHANNEL-MIB.my • CISCO-FLASH-MIB.my • CISCO-IMAGE-MIB.my • CISCO-PING-MIB.my • CISCO-PRODUCTS-MIB.my • CISCO-QLLC01-MIB.my • CISCO-REPEATER-MIB.my 136 • CISCO-SMI.my • CISCO-TC.my • CISCO-TCP-MIB.my • RS-232-MIB.my • SNA-SDLC-MIB.my • SNMPv2-CONF.my • SNMPv2-MIB.my • SNMPv2-SMI.my • SNMPv2-TC.my • BGP4-MIB-V1SMI.my • CISCO-CHANNEL-MIB-V1SMI.my • CISCO-FLASH-MIB-V1SMI.my • CISCO-IMAGE-MIB-V1SMI.my • CISCO-PING-MIB-V1SMI.my • CISCO-PRODUCTS-MIB-V1SMI.my • CISCO-QLLC01-MIB-V1SMI.my • CISCO-REPEATER-MIB-V1SMI.my • CISCO-SMI-V1SMI.my • CISCO-TC-V1SMI.my • CISCO-TCP-MIB-V1SMI.my • RS-232-MIB-V1SMI.my • SNA-SDLC-MIB-V1SMI.my • SNMPv2-MIB-V1SMI.my • SNMPv2-SMI-V1SMI.my • SNMPv2-TC-V1SMI.my Listado 7.3 MIB Cisco serie 12000 • BRIDGE-MIB.my • CISCO-GENERAL-TRAPS.my • NOVELL-IPX-MIB.my • NOVELL-RIPSAP-MIB.my • OLD-CISCO-APPLETALK-MIB.my • OLD-CISCO-CHASSIS-MIB.my • OLD-CISCO-CPU-MIB.my • OLD-CISCO-DECNET-MIB.my 137 • OLD-CISCO-ENV-MIB.my • OLD-CISCO-FLASH-MIB.my • OLD-CISCO-INTERFACES-MIB.my • OLD-CISCO-IP-MIB.my • OLD-CISCO-MEMORY-MIB.my • OLD-CISCO-NOVELL-MIB.my • OLD-CISCO-SYSTEM-MIB.my • OLD-CISCO-TS-MIB.my • OLD-CISCO-VINES-MIB.my • OLD-CISCO-XNS-MIB.my • RFC1213-MIB.my • RFC1231-MIB.my • RFC1243-MIB.my • RFC1315-MIB.my • RFC1381-MIB.my • RFC1382-MIB.my • RFC1398-MIB.my • RFC1406-MIB.my • SNMP-REPEATER-MIB.my • SOURCE-ROUTING-MIB.my • BGP4-MIB.my • CISCO-CHANNEL-MIB.my • CISCO-FLASH-MIB.my • CISCO-IMAGE-MIB.my • CISCO-PING-MIB.my • CISCO-PRODUCTS-MIB.my • CISCO-QLLC01-MIB.my • CISCO-REPEATER-MIB.my • CISCO-SMI.my • CISCO-TC.my • CISCO-TCP-MIB.my • RS-232-MIB.my • SNA-SDLC-MIB.my • SNMPv2-CONF.my • SNMPv2-MIB.my • SNMPv2-SMI.my 138 • SNMPv2-TC.my • BGP4-MIB-V1SMI.my • CISCO-CHANNEL-MIB-V1SMI.my • CISCO-FLASH-MIB-V1SMI.my • CISCO-IMAGE-MIB-V1SMI.my • CISCO-PING-MIB-V1SMI.my • CISCO-PRODUCTS-MIB-V1SMI.my • CISCO-QLLC01-MIB-V1SMI.my • CISCO-REPEATER-MIB-V1SMI.my • CISCO-SMI-V1SMI.my • CISCO-TC-V1SMI.my • CISCO-TCP-MIB-V1SMI.my • RS-232-MIB-V1SMI.my • SNA-SDLC-MIB-V1SMI.my • SNMPv2-MIB-V1SMI.my • SNMPv2-SMI-V1SMI.my • SNMPv2-TC-V1SMI.my Listado 7.4 MIB Cisco serie 7200 • BRIDGE-MIB.my • CISCO-GENERAL-TRAPS.my • NOVELL-IPX-MIB.my • NOVELL-RIPSAP-MIB.my • OLD-CISCO-APPLETALK-MIB.my • OLD-CISCO-CHASSIS-MIB.my • OLD-CISCO-CPU-MIB.my • OLD-CISCO-DECNET-MIB.my • OLD-CISCO-ENV-MIB.my • OLD-CISCO-FLASH-MIB.my • OLD-CISCO-INTERFACES-MIB.my • OLD-CISCO-IP-MIB.my • OLD-CISCO-MEMORY-MIB.my • OLD-CISCO-NOVELL-MIB.my • OLD-CISCO-SYSTEM-MIB.my • OLD-CISCO-TS-MIB.my 139 • OLD-CISCO-VINES-MIB.my • OLD-CISCO-XNS-MIB.my • RFC1213-MIB.my • RFC1231-MIB.my • RFC1243-MIB.my • RFC1315-MIB.my • RFC1381-MIB.my • RFC1382-MIB.my • RFC1398-MIB.my • RFC1406-MIB.my • SNMP-REPEATER-MIB.my • SOURCE-ROUTING-MIB.my • BGP4-MIB.my • CISCO-CHANNEL-MIB.my • CISCO-FLASH-MIB.my • CISCO-IMAGE-MIB.my • CISCO-PING-MIB.my • CISCO-PRODUCTS-MIB.my • CISCO-QLLC01-MIB.my • CISCO-REPEATER-MIB.my • CISCO-SMI.my • CISCO-TC.my • CISCO-TCP-MIB.my • RS-232-MIB.my • SNA-SDLC-MIB.my • SNMPv2-CONF.my • SNMPv2-MIB.my • SNMPv2-SMI.my • SNMPv2-TC.my • BGP4-MIB-V1SMI.my • CISCO-CHANNEL-MIB-V1SMI.my • CISCO-FLASH-MIB-V1SMI.my • CISCO-IMAGE-MIB-V1SMI.my • CISCO-PING-MIB-V1SMI.my • CISCO-PRODUCTS-MIB-V1SMI.my • CISCO-QLLC01-MIB-V1SMI.my 140 • CISCO-REPEATER-MIB-V1SMI.my • CISCO-SMI-V1SMI.my • CISCO-TC-V1SMI.my • CISCO-TCP-MIB-V1SMI.my • RS-232-MIB-V1SMI.my • SNA-SDLC-MIB-V1SMI.my • SNMPv2-MIB-V1SMI.my • SNMPv2-SMI-V1SMI.my • SNMPv2-TC-V1SMI.my Listado 7.5 MIB Cisco serie 7500 • ATM-MIB.my • BGP4-MIB.my • BRIDGE-MIB.my • CISCO-AAL5-MIB.my • CISCO-ALPS-MIB.my • CISCO-ATM-EXT-MIB.my • CISCO-ATM-PVC-MIB.my • CISCO-BCP-MIB.my • CISCO-BGP-POLICY-ACCOUNTING-MIB.my • CISCO-BSTUN-MIB.my • CISCO-BLUK-FILE-MIB.my • CISCO-BRIDGE-EXT-MIB.my • CISCO-CABLE-DIAG-MIB.my • CISCO-CALL-HISTORY-MIB.my • CISCO-CAR-MIB.my • CISCO-CASA-MIB.my • CISCO-CAT6k-CROSSBAR-MIB.my • CISCO-CDP-MIB.my • CISCO-CLASS-BASED-QOS-MIB.my • CISCO-CONFIG-COPY-MIB.my • CISCO-CONFIG-MAN-MIB.my • CISCO-DLSW-EXT-MIB.my • CISCO-DLSW-MIB.my • CISCO-DSPU-MIB.my 141 • CISCO-ENHANCED-MEMPOOL-MIB.my • CISCO-ENTITY-ASSET-MIB.my • CISCO-ENTITY-EXT-MIB.my • CISCO-ENTITY-FRU-CONTROL-MIB.my • CISCO-ENTITY-SENSOR-MIB.my • CISCO-ENTITY-VENDORTYPE-OID-MIB.my • CISCO-ENVMON-MIB.my • CISCO-FLASH-MIB.my • CISCO-FLEX-LINKS-MIB.my • CISCO-FRAME-RELAY-MIB.my • CISCO-FTP-CLIENT-MIB.my • CISCO-HRSP-EXT-MIB.my • CISCO-HRSP-MIB.my • CISCO-IETF-ATM2-PVCTRAP-MIB.my • CISCO-IETF-IP-FORWARD-MIB.my • CISCO-IETF-IP-MIB.my • CISCO-IF-EXTENSIONS-MIB.my • CISCO-IMAGE-MIB.my • CISCO-IPMROUTE-MIB.my • CISCO-IP-STAT-MIB.my • CISCO-L2-CONTROL-MIB.my • CISCO-L2-TUNNEL-CONFIG-MIB.my • CISCO-L2L3-INTERFACE-CONFIG-MIB.my • CISCO-LAG-MIB.my • CISCO-MAC-NOTIFICATION-MIB.my • CISCO-MEMORY-POOL-MIB.my • CISCO-NDE-MIB.my • CISCO-NTP-MIB.my • CISCO-PAE-MIB.my • CISCO-PAGP-MIB.my • CISCO-PIM-MIB.my • CISCO-PING-MIB.my • CISCO-PORT-SECURITY-MIB.my • CISCO-PRIVATE-VLAN-MIB.my • CISCO-PROCESS-MIB.my • CISCO-PRODUCTS-MIB.my 142 • CISCO-QUEUE-MIB.my • CISCO-RF-MIB.my • CISCO-RMON-CONFIG-MIB.my • CISCO-RSRB-MIB.my • CISCO-RTTMON-MIB.my • CISCO-SLB-EXT-MIB.my • CISCO-SLB-MIB.my • CISCO-SNAPSHOT-MIB.my • CISCO-SONET-MIB.my • CISCO-SRP-MIB.my • CISCO-STACK-MIB.my • CISCO-STP-EXTENSIONS-MIB.my • CISCO-STUN-MIB.my • CISCO-SVI-AUTOSTATE-MIB.my • CISCO-SWITCH-ENGINE-MIB.my • CISCO-SYSLOG-MIB.my • CISCO-TAP-MIB.my • CISCO-TCP-MIB.my • CISCO-UDLDP-MIB.my • CISCO-VINES-MIB.my • CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB.my • CISCO-VLAN-MEMBERSHIP-MIB.my • CISCO-VLAN-TRANSLATION-MIB.my • CISCO-VPDN-MGMT-MIB.my • CISCO-VTP-MIB.my • DLSW-MIB.my • ENTITY-MIB.my (RFC2737) • ETHERLIKE-MIB.my (RFC2665) • EXPRESSION-MIB.my • HC-RMON-MIB.my • IEEE8021-PAE-MIB.my • IEEE8023-LAG-MIB.my • IF-MIB.my • IGMP-MIB.my • INT-SERV-GUARANTEED-MIB.my • INT-SERV-MIB.my 143 • IPMROUTE-MIB.my • ISDN-MIB.my • MPLS-LDP-MIB.my • MPLS-LSR-MIB.my • MPLS-TE-MIB.my • MPLS-VPN-MIB.my • NOTIFICATION-LOG-MIB.my • NOVELL-IPX-MIB.my • NOVELL-NLSP-MIB.my • NOVELL-RIPSAP-MIB.my • OLD-CISCO-APPLETALK-MIB.my • OLD-CISCO-CHASSIS-MIB.my • OLD-CISCO-CPU-MIB.my • OLD-CISCO-DECNET-MIB.my • OLD-CISCO-FLASH-MIB.my • OLD-CISCO-INTERFACES-MIB.my • OLD-CISCO-IP-MIB.my • OLD-CISCO-MEMORY-MIB.my • OLD-CISCO-NOVELL-MIB.my • OLD-CISCO-SYS-MIB.my • OLD-CISCO-TCP-MIB.my • OLD-CISCO-TS-MIB.my • OLD-CISCO-VINES-MIB.my • OLD-CISCO-XNS-MIB.my • PIM-MIB.my • RFC1213-MIB.my (MIB-II) • RFC1243-MIB.my (APPLETALK MIB) • OSPF-MIB.my • FRAME-RELAY-DTE-MIB.my • DS3-MIB.my • RFC2006-MIB.my (MIP MIB) • RMON-MIB.my (RFC 1757) • RMON2-MIB.my (RFC 2021) • RS-232-MIB.my • RSVP-MIB.my • SMON-MIB.my 144 • SNA-SDLC-MIB.my • SNMP-COMMUNITY-MIB.my (RFC 2576) • SNMP-FRAMEWORK-MIB.my (RFC 2571) • SNMP-MPD-MIB.my (RFC 2572) • SNMP-NOTIFICATION-MIB.my (RFC 2573) • SNMP-TARGET-MIB.my (RFC 2573) • SNMP-USM-MIB.my (RFC 2574) • SNMP-VACM-MIB.my (RFC 2575) • SNMPv2-MIB.my • SONET-MIB.my • TCP-MIB.my • UDP-MIB.my Listado 7.6 MIB Cisco serie 7600 1:other 2:regular1822 3:hdh1822 4:ddnX25 5:rfc877x25 6:ethernetCsmacd 7:iso88023Csmacd 8:iso88024TokenBus 9:iso88025TokenRing 37:atm 38:miox25 39:sonet 40:x25ple 41:iso88022llc 42:localTalk 43:smdsDxi 44:frameRelayService 45:v35 46:hssi 47:hippi 145 48:modem 49:aal5 50:sonetPath 51:sonetVT 52:smdsIcip 53:propVirtual 54:propMultiplexor 55:ieee80212 56:fibreChannel 57:hippiInterface 58:frameRelayInterconnect 59:aflane8023 60:aflane8025 61:cctEmul 62:fastEther 63:isdn 64:v11 65:v36 66:g703at64k 67:g703at2mb 68:qllc 69:fastEtherFX 70:channel 71:ieee80211 72:ibm370parChan 73:escon 74:dlsw 75:isdns 76:isdnu 77:lapd 78:ipSwitch 79:rsrb 100:voiceEM 101:voiceFXO 102:voiceFXS 103:voiceEncap 146 104:voiceOverIp 105:atmDxi 106:atmFuni 107:atmIma 108:pppMultilinkBundle 109:ipOverCdlc 140:dtm 141:dcn 142:ipForward 143:msdsl 144:ieee1394 145:if-gsn 146:dvbRccMacLayer 147:dvbRccDownstream 148:dvbRccUpstream 149:atmVirtual 150:mplsTunnel 151:srp 152:voiceOverAtm 153:voiceOverFrameRelay 154:idsl 155:compositeLink 156:ss7SigLink 157:propWirelessP2P 158:frForward 159:rfc1483 160:usb 161:ieee8023adLag 162:bgppolicyaccounting 163:frf16MfrBundle 164:h323Gatekeeper 165:h323Proxy 166:mpls 167:mfSigLink 168:hdsl2 169:shdsl 147 170:ds1FDL 171:pos 172:dvbAsiIn 173:dvbAsiOut 174:plc 175:nfas 176:tr008 177:gr303RDT 178:gr303IDT 179:isup 180:propDocsWirelessMaclayer 181:propDocsWirelessDownstream 182 210:linegroup 211:voiceEMFGD 212:voiceFGDEANA 213:voiceDID 214:mpegTransport 215:sixToFour 216:gtp 217:pdnEtherLoop1 218:pdnEtherLoop2 219:opticalChannelGroup 220:homepna 221:gfp 222:ciscoISLvlan 223:actelisMetaLOOP 224:fcipLink 225:rpr 226:qam 227:lmp 228:cblVectaStar 229:docsCableMCmtsDownstream 230:adsl2 231:macSecControlledIF 232:macSecUncontrolledIF 148 233:aviciOpticalEther 234:atmbond Listado 7.7 Tipos de Interfaces definidas en IANA #valores iniciales $Sy=0; foreach $ocu (@oc){ $Sy=$Sy+$ocu; } $Sx=0; foreach $tii (@times){ $Sx=$Sx+$tii; } $N=scalar(@oc); $Sx2=0; foreach $tii2 (@times){ $Sx2=$Sx2+$tii2*$tii2; } $Sy2=0; foreach $ocu2 (@oc){ $Sy2=$Sy2+$ocu2*$ocu2; } $Sxy=0; $c=0; foreach $ocu (@oc){ $Sxy=$Sxy+$ocu*$times[$c]; $c++; } 149 $Slnx=0; foreach $tii (@times){ $Slnx=$Slnx+ln($tii); } $Slny=0; foreach $ocu (@oc){ $Slny=$Slny+ln($ocu); } $Slnx2=0; foreach $tii2 (@times){ $Slnx2=$Slnx2+ln($tii2)*ln($tii2); } $Slny2=0; foreach $ocu2 (@oc){ $Slny2=$Slny2+ln($ocu2)*ln($ocu2); } $Sxlny=0; $c=0; foreach $ocu (@oc){ $Sxlny=$Sxlny+ln($ocu)*$times[$c]; $c++; } $Sylnx=0; $c=0; foreach $ocu (@oc){ $Sylnx=$Sylnx+$ocu*ln($times[$c]); $c++; } $Slnxlny=0; $c=0; foreach $ocu (@oc){ $Slnxlny=$Slnxlny+ln($ocu)*ln($times[$c]); 150 $c++; } #Correlaciones, la mas cercana a uno es la ke se busca!(la mayor) if ($Sx2 == (($Sx*$Sx)/$N)){$denlia=0.00001;}else{$denlia=($Sx2-($Sx*$Sx)/$N);} if ($Sy2 == (($Sy*$Sy)/$N)){$denlib=0.00001;}else{$denlib=($Sy2-($Sy*$Sy)/$N);} $rli=($Sxy-$Sx*$Sy/$N)*($Sxy-$Sx*$Sy/$N)/($denlia*$denlib); if ($Slnx2 == (1/$N*$Slnx*$Slnx)){$denloa=0.00001;}else{$denloa=($Slnx2-1/$N*$Slnx*$Slnx);} if ($Sy2 == (1/$N*$Sy*$Sy)){$denlob=0.00001;}else{$denlob=($Sy2-1/$N*$y*$Sy);} $rlo=($Sylnx-1/$N*$Slnx*$Sy)*($Sylnx-1/$N*$Slnx*$Sy)/($denloa*$denlob); if($Slnx2 == ($Slnx*$Slnx/$N)){$denpoa=0.00001;}else{$denpoa=($Slnx2-$Slnx*$Slnx/$N);} if($Slny2 == ($Slny*$Slny/$N)){$denpob=0.00001;}else{$denpob=($Slny2-$Slny*$Slny/$N);} $rpo=($Slnxlny-($Slnx*$Slny)/$N)*($Slnxlny-($Slnx*$Slny)/$N)/($denpoa*$denpob); if($Sx2 == ($Sx*$Sx/$N)){$denexa=0.00001;}else{$denexa=($Sx2-$Sx*$Sx/$N);} if($Slny2 == ($Slny*$Slny/$N)){$denexb=0.00001;}else{$denexb=($Slny2-$Slny*$Slny/$N);} $rex=($Sxlny-$Sx*$Slny/$N)*($Sxlny-$Sx*$Slny/$N)/($denexa*$denexb); #correcion lineal horizontal sin cambios! if ($Sy2 == (($Sy*$Sy)/$N)){$rli = 1.000000; $rlo = 1.000000;} if($Slny2 == ($Slny*$Slny/$N)){$rpo = 1.000000; $rex = 1.000000;} push @erres, $rli; push @erres, $rlo; push @erres, $rpo; push @erres, $rex; #sort erres! @erresS = sort {$a<=>$b} @erres; #cosntantes lineal y=Ali+Bli*x if ($Sx2 == (($Sx*$Sx)/$N)){$denlia=0.00001;}else{$denlia=($Sx2-($Sx*$Sx)/$N);} 151 $Bli=($Sxy-$Sx*$Sy/$N)/($denlia); $Ali=$Sy/$N-$Bli*$Sx/$N; #cosntantes logaritmica y=Alo+Blo*LN(x) if ($Slnx2 == (1/$N*$Slnx*$Slnx)){$denloa=0.00001;}else{$denloa=($Slnx2-1/$N*$Slnx*$Slnx);} $Blo=($Sylnx-1/$N*$Slnx*$Sy)/($denloa); $Alo=1/$N*($Sy-$Blo*$Slnx); #cosntantes potencial y=Apo*x^Bpo if($Slnx2 == ($Slnx*$Slnx/$N)){$denpoa=0.00001;}else{$denpoa=($Slnx2-$Slnx*$Slnx/$N);} $Bpo=($Slnxlny-($Slnx*$Slny)/$N)/($denpoa); $Apo=exp($Slny/$N-$Bpo*$Slnx/$N); #constantes exponenciales if($Sx2 == ($Sx*$Sx/$N)){$denexa=0.00001;}else{$denexa=($Sx2-$Sx*$Sx/$N);} $Bex=($Sxlny-$Sx*$Slny/$N)/($denexa); $Aex=exp($Slny/$N-$Bex*$Sx/$N); Listado 7.8 Procedimiento de cálculo de los modelos de regresión
Documentos relacionados
Introducción a SNMP
• El dispositivo puede no tener un agente de SNMP • El dispositivo puede estar configurado con otro texto de comunidad • El dispositivo puede estar configurado para rechazar encuestas de SNMP de...
Más detalles