Anda di halaman 1dari 66

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

INDUSTRIALES Y DE TELECOMUNICACIÓN

UNIVERSIDAD DE CANTABRIA

Trabajo Fin de Grado

Desarrollo de una aplicación para la


monitorización de puntos de acceso
MikroTik
(Development of an application for MikroTik
access points monitoring)

Para acceder al Título de

Graduado en
Ingeniería de Tecnologías de Telecomunicación
Autor: Adrián Monge Sainz

Octubre - 2017
E.T.S. DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACION

GRADUADO EN INGENIERÍA DE TECNOLOGÍAS DE


TELECOMUNICACIÓN

CALIFICACIÓN DEL TRABAJO FIN DE GRADO

Realizado por: Adrián Monge Sainz


Director del TFG: Luis Valle López , Óscar Fernández Fernández
Título: “Desarrollo de una aplicación para la monitorización de puntos de
acceso MikroTik”
Title: “Development of an application for MikroTik access points
monitoring“

Presentado a examen el día: 27 de Octubre de 2017

para acceder al Título de

GRADUADO EN INGENIERÍA DE TECNOLOGÍAS DE


TELECOMUNICACIÓN

Composición del Tribunal:


Presidente (Apellidos, Nombre): Valle López, Luis
Secretario (Apellidos, Nombre): Pérez López, Jesús Ramón
Vocal (Apellidos, Nombre): Martínez Fernández, Mª del Carmen

Este Tribunal ha resuelto otorgar la calificación de: ......................................

Fdo.: El Presidente Fdo.: El Secretario

Fdo.: El Vocal Fdo.: El Director del TFG


(sólo si es distinto del Secretario)

Vº Bº del Subdirector Trabajo Fin de Grado Nº


(a asignar por Secretaría)
Desarrollo de una aplicación para la monitorización de
puntos de acceso MikroTik

Adrián Monge Sainz

Octubre 2017
1

Resumen

El uso de APIs para el desarrollo de software es cada vez más frecuente ya que permite implementar
al desarrollador las principales funciones de software propietarios de ciertas marcas, ayudando a crear
aplicaciones adaptadas a las necesidades del usuario.

En el ámbito de la gestión de redes, fabricantes como MikroTik disponen de APIs para diferentes
lenguajes de programación, que los usuarios pueden utilizar libremente en el diseño de sus aplicacio-
nes. En este trabajo en concreto se utilizará la API de MikroTik en Visual Basic para desarrollar
una aplicación que permita mapear en diferentes escenarios de interiores la posición de los puntos de
acceso para posteriormente conectarse a éstos y obtener información relativa a los clientes conectados
y la calidad de sus conexiones ası́ como el estado de los recursos hardware del router. Dichos datos se
recopilarán en diferentes instantes de tiempo y serán procesados para estudiar cuáles son los usuarios
más activos en la red e identificar cuáles son los puntos de acceso más utilizados por los usuarios, lo
que aportará referencias al administrador de la red de las zonas en las que se concentran un mayor
número de clientes y en las que previsiblemente se generará un mayor tráfico de datos.

Palabras clave – MikroTik, RouterOS, Puntos de Acceso, Clientes, Wi-Fi, Monitorización de


Redes, API, Wireless Registration-Table, RSSI (Received Signal Strength Indicator), CCQ (Client
Connection Quality), Visual Basic.

Abstract

The use of Programmable Interface Applications is more and more frequent in the software deve-
lopment since it permits the implementation of propietary software of different manufacturing firms,
helping with de design of applications adapted to the requirements of the user.

In the field of the network management, manufacturers such as MikroTik have APIs in different
programming languages, that are provided to the developers as free code. In this project, MikroTik
API for Visual Basic will be used for the development of an application which allows maping in diffe-
rent maps the position of the access points to later connect to them and obtain information regarding
connected clients and hardware resources. Such data will be collected at different time points and
proccessed to study wich access points are most used by clents, which will provide references to the
network manager of the areas in which a greater number of customers are concentrated and where it
is expected that more data traffic will be generated.

Key words – MikroTik, RouterOS, Access Points, Clients, Wi-FI, Network Monitoring, Appli-
cation Programming Interface,Wireless Registration-Table, System Resources, RSSI (Received Signal
Strength Indicator), CCQ (Client Connection Quality), Visual Basic.
Índice general

1. Introducción 1
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivación y alcance del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Aspectos teóricos de la tecnologı́a MikroTik 3


2.1. MikroTik. Reseña histórica y situación actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. El sistema operativo RouterOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. RouterBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1. Primer uso de la RouterBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. La herramienta Winbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.1. Puesta en marcha de la red Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.2. Obtención de información de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.3. Obtención de gráficos en tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5. APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1. Comunicaciones con los puntos de acceso a través de Winsock . . . . . . . . . . . . . . . . 14
2.5.2. Configuraciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.3. Manejo de la API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.4. Formato de la información proporcionada por la API . . . . . . . . . . . . . . . . . . . . . 17

3. Protocolos involucrados 19
3.1. El protocolo MikroTik Neighbor Discovery (MNDP) . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2. El protocolo Nv2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. El protocolo de gestión de red SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1. Elementos básicos del protocolo SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.2. El paradigma gestor-agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.3. La Base de Información Gestionada (MIB) . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.4. Mensajes SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.5. SNMP en la tecnologı́a MikroTik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4. Diseño de la aplicación 28
4.1. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2. Software utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.1. Workstation 12 Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.2. GenCDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.3. Microsoft Visual Basic 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.4. Winbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3. Hardware utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1. RouterBoard RB411AH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4. Desarrollo de la Interfaz gráfica de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4.1. Formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4.2. Módulos de Clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

I
II

4.4.3. Registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5. Resultados obtenidos 38
5.1. Caso práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6. Conclusiones y lı́neas futuras 43


6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2. Lı́neas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Índice de figuras

2.1. Logo de MikroTik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


2.2. Record de enlace Wi-fi más largo utilizando enrutadores MikroTik [Fuente: newatlas.
com ,2007] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Esquema de la arquitectura SMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4. Acceso a la interfaz de RouterOS mediante web browser . . . . . . . . . . . . . . . . . . . 5
2.5. RouterBoard 411AH que se utilizará en este proyecto (sin encapsulado) . . . . . . . . 5
2.6. Dirección MAC de una de las RouterBoard utilizadas . . . . . . . . . . . . . . . . . . . . . 6
2.7. Pantalla de inicio de Winbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.8. Detección de un punto de acceso por parte de Winbox . . . . . . . . . . . . . . . . . . . . 7
2.9. Configuracion Wi-Fi desde Winbox para un router MikroTik . . . . . . . . . . . . . . . . . 8
2.10. Configuracion Wi-Fi desde Winbox para un router MikroTik . . . . . . . . . . . . . . . . . 8
2.11. Datos ofrecidos por Winbox de dos terminales móviles conectados al AP . . . . . . . . 9
2.12. Consulta de la Registration Table mediante consola . . . . . . . . . . . . . . . . . . . . . 9
2.13. Test de ancho de banda para la evaluación del throughput en Winbox . . . . . . . . . . 12
2.14. Gráficas Throughput-SNR para diferentes estándares 802.11 . . . . . . . . . . . . . . . . 13
2.15. Ejemplos de gráficas en tiempo real en Winbox [Fuente: MikroTik Forums] . . . . . . . 14
2.16. Proceso Sockets para arquitectura cliente-servidor . . . . . . . . . . . . . . . . . . . . . 15
2.17. Configuraciones previas para el correcto funcionamiento de la API . . . . . . . . . . . 16
2.18. Uso de la librerı́a VBScript Regular Expressions 5.5 en Visual Basic 6.0 . . . . . . . 16
2.19. Ejemplo de funcionamiento de la API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1. Esquema ilustrativo de la técnica de acceso TDMA . . . . . . . . . . . . . . . . . . . . . . 20


3.2. Arquitectura del protocolo SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3. El paradigma gestor-agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4. Ejemplo de la jerarquı́a MIB en forma de árbol . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5. Formato de un mensaje SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6. Formato de las diferentes SNMP-PDU (SNMP v.1) . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7. Formato del mensaje Get Bulk Request (SNMP v.2) . . . . . . . . . . . . . . . . . . . . . . . 25
3.8. Habilitación del protocolo SNMP por consola y API . . . . . . . . . . . . . . . . . . . . . . 26
3.9. Captura de la MIB de MikroTik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.10. Solicitud por terminal de OIDs asociadas a la Registration Table . . . . . . . . . . . 27

4.1. Estructura del proyecto en Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


4.2. Pantalla de inicio de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3. Formulario para la representación de la red de puntos de acceso . . . . . . . . . . . . 33
4.4. Formulario para la monitorización de la red . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5. Formulario para la representación de gráficos estadı́sticos . . . . . . . . . . . . . . . 35
4.6. Diagrama de funcionamiento del MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.1. Ubicación de los puntos de acceso sobre el mapa del edificio . . . . . . . . . . . . . . 38


5.2. Muestra de los resultados sobre la calidad de la conexión de dos dispositivos al AP1 40
5.3. Evolución del RSSI durante 1h. de dos dispositivos conectados al AP1 . . . . . . . . . 40

III
ÍNDICE DE FIGURAS IV

5.4. Evolución de la CCQ durante 1h. de dos dispositivos conectados al AP1 . . . . . . . . 41


5.5. Histogramas de frecuencia obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Índice de tablas

2.1. Calidad de la conexión Wi-Fi en función del RSSI . . . . . . . . . . . . . . . . . . . . . . 10

3.1. Diferentes formas de acceder al objeto MIB de MikrtoTik . . . . . . . . . . . . . . . . . 22


3.2. Comparativa entre la MIB-I y la MIB-II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3. Posibles valores del campo Estado de error . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1. Caracterı́sticas técnicas RB411AH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


4.2. Codificación MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3. Inicialización del buffer MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.1. Identificación de los puntos de acceso de la red . . . . . . . . . . . . . . . . . . . . . . 38


5.2. Información obtenida de los AP y supervisión de los recursos hardware . . . . . . . . 39
5.3. Dispositivos de prueba utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

V
Lista de acrónimos

AP Access Point

API Application Programming Interface

CCQ Client Connection Quality

CLI Command-Line Interface

CMIP Commom Management Information Protocol

CPU Central Processing Unit

IP Internet Protocol

ISP Internet Service Provider

MAC Media Access Control

MD Managed Device

MD5 Message-Digest Algorithm 5

MIB Management Information Base

MNDP MikroTik Neighbour Dsiscovery Protocol

NMS Network Management System

OID Object Identifier

PCI Peripheral Component Interconnect

PDU Protocol Data Unit

PoE Power of Ethernet

RSSI Received Signal Strength Indicator

SMP Symmetric Multi-Processing

SNMP Simple Network Management Protocol

SNR Signal to Noise Ratio

SSID Service Set Identifier

TDMA Time Division Multiple Access

VI
Introducción
1
1.1. Introducción
A lo largo de los últimos años, las redes de comunicaciones [1] se han considerado cada vez en mayor me-
dida como una parte fundamental en el ámbito estratégico de la empresa. Dado el crecimiento en términos de
dimensionamiento de estas redes con más dispositivos que gestionar, es importante su control, monitorización
y gestión de manera que se pueda garantizar una buena calidad del servicio.

Históricamente, las redes en el ámbito empresarial utilizaban equipos de un único fabricante que podı́an ser
gestionados mediante un software propietario solamente válido para dispositivos de dicha marca. Sin embargo,
con el paso del tiempo, estas redes han ido aumentando en complejidad y heterogeneidad, lo que ocasiona un
problema de compatibilidad a la hora de gestionar equipos de caracterı́sticas diferentes desde un único sistema
administrador.

Esta heterogeneidad ha tenido como consecuencia la elaboración de protocolos que a dı́a de hoy sirven como
estándares para gestionar este tipo de redes. Fue durante la década de los 90 cuando se comenzaron a desarrollar
protocolos que daban solución a este problema. Ejemplos de estos protocolos son el SNMP (Simple Network
Management Protocol ) y el CMIP (Common Management Information Protocol ).
Es por esto que la mayorı́a de las grandes firmas distribuidoras de hardware y software de redes (Cisco, HP
Openview, IBM...) fabrican sus sistemas de forma que puedan ser gestionados mediante el protocolo SNMP. En
el caso de este proyecto, en el que se utilizarán puntos de acceso del fabricante MikroTik, el protocolo que utiliza
esta marca para la gestión de sus dispositivos también es el SNMP, aunque también existen otros métodos como
el uso de software de gestión de redes o la solicitud de la información utilizando interfaces de lı́nea de coman-
do (CLI) con los que se puede obtener la misma información con un nivel de abstracción mayor para el usuario. 1 .

Antes de entrar a explicar el alcance de este proyecto, que se justificará en el siguiente apartado, es impor-
tante distinguir entre los conceptos de gestión, control y monitorización de red; conceptos que en ocasiones se
pueden confundir o asociar a una misma idea.
La monitorización [3] de la red consiste en la observación continua y el análisis del estado de los recursos gestio-
nados con el objetivo de extraer y procesar datos que ayude a entender el funcionamiento de la red o a buscar
fallos en el propio recurso administrado.
Por otra parte, el control de redes se encarga de las tareas relacionadas con la modificación de parámetros de
la red y la ejecución de acciones sobre los recursos gestionados.
Por último, la gestión de red es un concepto más general que incluye a los dos anteriores. Incluye también [[3]]
“el despliegue, integración y coordinación del hardware, software y recursos humanos para monitorizar, probar,
sondear, configurar, analizar, evaluar y controlar los recursos de la red para conseguir los requerimientos de
tiempo real, desempeño operacional y calidad del servicio a un precio razonable.”

En este proyecto en concreto nos encargaremos de la monitorización de puntos de acceso Mikrotik.


1
A pesar de que se puede gestionar una red de nodos MikroTik haciendo uso de SNMP como se verá en el capı́tulo 3,
en este proyecto se accederá a la información mediante una arquitectura cliente-servidor por lo que dicho protocolo pasa
a un segundo plano.

1
CAPÍTULO 1. INTRODUCCIÓN 2

1.2. Motivación y alcance del proyecto


La motivación de este trabajo es diseñar una solución de fácil utilización para el usuario y compatible con
sistemas operativos Windows, cuya principal finalidad es presentar en tiempo real información sobre el estado
de los puntos de acceso MikroTik de una red. El diseño del software estará basado en una API de MikroTik
cuyas funciones permiten monitorizar y gestionar equipos de esta marca, obteniendo parámetros que nos apor-
tan datos tales como el tiempo de actividad de los usuarios conectados al router, la velocidad de transmisión de
datos o la variación de tráfico a lo largo del tiempo. Asimismo, permite obtener parámetros fı́sicos del propio
dispositivo: dirección MAC, tensión de alimentación, fallos en el hardware del router (Bad Blocks) etc. Esto
demuestra que la API es una herramienta muy potente a la vez que útil a la hora de diseñar nuestra aplicación.
Teniendo en cuenta la gran cantidad de información que se puede obtener de la API, este proyecto está centrado
en la obtención y procesado de datos relacionados con los clientes conectados de forma inalámbrica a los puntos
de acceso bajo estudio.

Para dar un valor añadido a la aplicación, se marca como objetivo recopilar en registros los parámetros de
interés en diferentes instantes de tiempo con el fin de generar gráficos estadı́sticos que den una idea de la forma
en la que los usuarios utilizan la red.

1.3. Estructura de la memoria


La memoria del proyecto está estructurada en 6 capı́tulos cuyos contenidos se describen a continuación:
Capı́tulo 1. Introducción. En el presente capı́tulo se trata de contextualizar el proyecto en el ámbito de la
gestión de redes. Contiene una breve introducción en la que se explica la evolución histórica de la gestión
de redes y cómo se han afrontado sus principales problemas además de una explicación de la importancia
y el alcance de este proyecto.

Capı́tulo 2. Aspectos básicos de la tecnologı́a MikroTik. En el segundo capı́tulo se resumen los funda-
mentos teóricos en los que se basa el proyecto. En primer lugar se describirá el entorno MikroTik sobre
el que se va a trabajar, incluyendo su sistema operativo, sus principales productos y la herramienta de
gestión Winbox que será utilizada para realizar las configuraciones previas a la realización del proyecto.
Por último, se explicará la importancia de las APIs para el desarrollo de aplicaciones y los principales
comandos que se utilizarán para obtener información de los puntos de acceso.

Capı́tulo 3. Protocolos involucrados. En el tercer capı́tulo se profundizará en los protocolos involucrados


en el las comunicaciones y la monitorización de los puntos de acceso. En primer lugar se describirá
brevemente el funcionamiento del protocolo MNDP (MikroTik Neighbour Discovery Protocol) encargado
de encontrar los puntos de acceso disponibles ası́, como el del protocolo Nv2 que permite a los clientes
conectarse a dichos routers. Además, se hará especial énfasis en el Protocolo Simple de Gestión de Redes
(SNMP) del que se explicará su funcionamiento aportando ejemplos de su utilidad en la gestión de
dispositivos de la marca Mikrotik.
Capı́tulo 4. Diseño de la aplicación. En esta cuarta parte se comenzará por analizar los requerimientos
funcionales y no funcionales del proyecto. A continuación se describirá el software utilizado durante la
realización del trabajo y los fines con los que se usa cada una de las herramientas. Por otra parte, se
describirán las principales caracterı́sticas del hardware utilizado (puntos de acceso). Para finalizar, se
mostrarán de forma gráfica los resultados del diseño de la aplicación, describiendo el funcionamiento de
la misma ası́ como las tareas que realiza cada uno de los controles que la componen.

Capı́tulo 5. Resultados obtenidos. Para finalizar, se plantea un caso práctico en el que se utilizará la aplica-
ción diseñada para obtener diversos parámetros de la red ası́ como gráficos estadı́sticos que posteriormente
serán analizados para extraer conclusiones acerca del modo en el que los clientes usan la red y demostrar
ası́ el potencial de este software.

Capı́tulo 6. Conclusiones. Una vez diseñada la aplicación y verificado su funcionamiento en diferentes situa-
ciones, en este capı́tulo se extraen las conclusiones obtenidas de la realización del proyecto. Para finalizar
la memoria, se proponen posibles lı́neas futuras (mejoras de la aplicación, diseño en otros entornos de
programación...) que surgen de la realización de éste.
Aspectos teóricos de la tecnologı́a MikroTik
2
En este capı́tulo se pretende hacer una introducción a la tecnologı́a MikroTik [5], incidiendo en su sistema
operativo propio, las herramientas de gestión que ofrece y las APIs que han sido diseñadas por los desarrolladores
de MikroTik para que otros usuarios puedan incluirlas en el diseño de sus propias aplicaciones relacionadas, ası́
como en la explicación de los comandos especı́ficos que se utilizarán posteriormente para obtener información
en tiempo real de los puntos de acceso de la red a gestionar.

2.1. MikroTik. Reseña histórica y situación actual


La empresa MikroTik nació en Letonia en 1995 con el objetivo de desarrollar routers y sistemas inalámbricos
para proveedores de servicios de Internet (ISP). En sus inicios crearon un sistema operativo para la administra-
ción de redes de gran eficiencia y robustez. Este sistema operativo se lanzó al mercado en 1997 bajo el nombre
de RouterOS. La evolución y aceptación del mismo, tanto por pequeñas como por grandes empresas, llevó a la
comercialización de un hardware propio llamado RouterBoard que aprovechaba todas las ventajas del sistema
operativo de la firma letona. Fue entonces cuando MikroTik comenzó a coger fuerza en las redes de pequeñas y
medianas empresas en Latino-américa, aunque a dı́a de hoy sus productos son comercializados en todo el mundo.

Los principales motivos por los que muchas empresas y usuarios están optando por diseñar sus redes con
puntos de acceso MikroTik son la estabilidad y flexibilidad en la configuración y gestión de la red y el bajo coste
que suponen estos equipos frente a otros como los del referente Cisco.

Figura 2.1: Logo de MikroTik

El hecho de que estos routers sean de bajo coste no quiere decir que los productos MikroTik no tengan
grandes prestaciones. A modo de ejemplo, en 2007, el centro CISAR (Centro Italiano de Actividades de Radio)
consiguió el record 1 del enlace Wi-Fi de larga distancia no amplificado más largo del mundo con una distancia
de 304 Km uniendo el Monte Amiata de Toscana y el Monte Limbara de Cerdeña, utilizando para ello routers
inalámbricos de MikroTik optimizados con NStreme que es un protocolo propietario de Mikrotik e incompatible
con equipos de otras marcas que mejora la calidad del enlace inalámbrico reduciendo el tiempo de acceso al
medio y la sobrecarga de información de las tramas aumentando ası́ la velocidad de transmisión.
1
Record enlace Wi-fi larga distancia: https://en.wikipedia.org/wiki/Long-range_Wi-Fi

3
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 4

Figura 2.2: Record de enlace Wi-fi más largo utilizando enrutadores MikroTik [Fuente:
newatlas.com ,2007]

2.2. El sistema operativo RouterOS


RouterOS es el sistema operativo que utilizan los productos hardware RouterBoard de MikroTik. Se trata
de un sistema operativo basado en el núcleo Linux que contiene las funcionalidades necesarias para implementar
un Proveedor de Servicios de Internet (ISP). El sistema operativo puede instalarse tanto en PCs como en otros
dispositivos con arquitecturas de 32 y 64 bits y es soportado por sistemas con multiprocesamiento simétrico
(SMP) 2 .

Figura 2.3: Esquema de la arquitectura SMP

RouterOS es compatible con una amplia variedad de tarjetas de red como las 10 Gigabit Ethernet, wireless
802.11 en sus versiones a/b/g/n/ac y módems de tercera y cuarta generación.
Cabe destacar que Mikrotik proporciona un gran soporte a este sistema operativo gracias a su Wiki [9], en la
que se puede encontrar información general y manuales de descarga, instalación y configuración de los distintos
servicios y productos de MikroTik, además de APIs en distintos lenguajes de programación compartidas por los
desarrolladores de esta marca. Otras de sus principales ventajas son su fácil instalación y su interfaz sencilla e
intuitiva tanto en su versión web, a la que se accede colocando la dirección IP del router en la barra de búsqueda
del navegador, como a través del software Winbox.
2
El multiprocesamiento simétrico SMP es una arquitectura de computadores en la que varios procesadores comparten
una memoria central.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 5

(a) Acceso vı́a navegador web (b) Interfaz Web

Figura 2.4: Acceso a la interfaz de RouterOS mediante web browser

2.3. RouterBoard
RouterBoard es el nombre con el que se conoce a los productos de MikroTik. Esta gama de productos
consta de diferentes modelos de placas base sobre las que se montan los routers. Dichas placas están provistas
de varios slots de expansión MiniPCI utilizados para conectar las tarjetas de red inalámbricas, puertos para
la conexión de cables Ethernet, puertos USB y otros conectores para periféricos. Los productos RouterBoard
utilizan el sistema operativo propietario de la marca (RouterOS) y tienen como principal ventaja que se puede
actualizar indefinidamente, por lo que estos productos no quedan obsoletos siempre que se mantengan con las
últimas actualizaciones instaladas. Otra virtud importante de RoouterBoard es la buena relación calidad-precio
de sus productos y la capacidad de éstos para ser configurados a gusto del usuario, lo que implica que se pueden
ahorrar costes incluyendo solamente el hardware necesario sobre la placa base.

Para diseñar un router básico utilizando los productos que ofrece Mikrotik es necesario como mı́nimo una
placa base RouterBoard, una tarjeta de red inalámbrica, una antena conectada a ésta mediante un pigtail y una
fuente de alimentación, ya sea a través del propio cable Ethernet (alimentación PoE: ”Power of Ethernet”) o a
través de la toma de corriente eléctrica mediante un adaptador incluido con la placa base.

Además, se debe cubrir la placa y todos sus componentes con una carcasa protectora.

(a) Esquema de componentes de la (b) Montaje completo de la Router-


RouterBoard Board

Figura 2.5: RouterBoard 411AH que se utilizará en este proyecto (sin encapsulado)
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 6

2.3.1. Primer uso de la RouterBoard


En el caso de que la RouterBoard [18] venga con la configuración de fábrica, o bien haya sido reseteada a
la configuración original, se deben seguir los siguientes pasos para su primera utilización:

1. Ejecutar Winbox con la RouterBoard conectada al PC vı́a cable Ethernet.


2. Para acceder al router desde Winbox, la dirección IP por defecto será la 192.168.88.1, con nombre de
usuario admin y el campo contraseña en blanco.
3. En caso de que la conexión por IP falle, es posible conectarse a través de la dirección MAC del dispositivo
que se encuentra disponible en la parte trasera de la placa. En este caso se utilizará el mismo usuario y
contraseña que en el caso de la conexión vı́a IP.

Figura 2.6: Dirección MAC de una de las RouterBoard utilizadas

2.4. La herramienta Winbox


Winbox es una sencilla herramienta propietaria de MikroTik que permite acceder a los routers con un
sistema operativo RouterOS integrado. Desde esta aplicación se pueden llevar a cabo la mayor parte de las
funciones y configuraciones de RouterOS. Algunas excepciones son las configuraciones avanzadas como puede
ser el cambio de la dirección MAC de una interfaz, sólo posible desde consola.

A continuación, se explicará como acceder a un punto de acceso y realizar las configuraciones necesarias
para llevar a cabo este proyecto.

Al arrancar Winbox nos encontramos con una ventana inicial como la siguiente:

Figura 2.7: Pantalla de inicio de Winbox

Como se puede observar en la figura anterior, inicialmente se da la opción al usuario de conectarse a un


router introduciendo su dirección MAC o IP (campo Connect To), el nombre de usuario del administrador
(campo Login) y su contraseña (campo Password ).
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 7

Hay que tener en cuenta que sólo será posible conectarse a los routers que previamente hayan sido localiza-
dos en la lista Neighbors que se explica a continuación. Además, también será necesario que éstos dispongan
de RouterOS ya que en ocasiones, este software también detecta routers que no pertenecen a la marca MikroTik.

Por otra parte, se localizan dos pestañas:

La pestaña Neighbors que permite buscar puntos de acceso cercanos mediante el protocolo Neighbor
Discovery, ya sean estos compatibles con Winbox o no. Por ejemplo, puede localizar dispositivos que
utilicen el protocolo CDP de Cisco, aunque luego no se pueden gestionar desde Winbox.
La pestaña Managed en la que se muestran los dispositivos a los que Winbox se ha conectado previamente
y cuyas credenciales han sido guardadas por el administrador de la red. Esta opción es especialmente útil
cuando se trabaja con redes de gran tamaño.
En la siguiente figura se muestra la detección de un equipo MikroTik. Como se observa en la Figura 2.8,
en la lista aparecen dos items que en realidad corresponden al mismo punto de acceso (misma MAC) pero con
diferentes direcciones IP (el primero de la lista con IP v6 y el segundo con IP v4).

Figura 2.8: Detección de un punto de acceso por parte de Winbox

Mediante un protocolo de “descubrimiento de puntos de acceso vecinos”se pueden localizar puntos de acceso
compatibles con IP v4 e IP v6 y obtener información básica sobre ellos como puede ser su dirección MAC, la
dirección IP asociada al dispositivo, el nombre de la red, la versión de RouterOS instalada y el modelo de
RouterBoard

Para conectarse al punto de acceso hay que hacer click en la dirección MAC si se quiere hacer una conexión
a través de la capa 2 del modelo OSI (capa de enlace) o bien seleccionar la dirección IP para conectarse a por
capa 3 del modelo OSI (capa de red). En el caso de que se desee acceder mediante la dirección MAC, no es
necesario realizar ninguna configuración previa ya que es única para cada dispositivo de red.

Para asignar una dirección IP a un punto de acceso MikroTik se debe acceder al submenú IP, Addresses y
pulsar en el botón Add. En la siguiente figura se muestra la asignación de una dirección IP a la red 192.168.100.0:
Una vez asignada una IP al dispositivo, es recomendable acceder mediante dicha dirección IP ya que es más
estable que el acceso por dirección MAC. En este caso hay que asegurarse de que la configuración del protocolo
de Internet versión 4 (TCP/IPv4) sea compatible con la de nuestro router para que tanto Winbox como la API
de MikroTik puedan acceder a él correctamente.
Por ejemplo, para un router al que se le ha asignado la dirección IP 192.168.100.2, nuestro PC debe tener una
dirección IP 192.168.100.x de forma que tanto el PC como el punto de acceso pertenecen a la misma red.
Esta configuración se puede hacer de forma manual desde el centro de redes y recursos compartidos de Windows
como se muestra a continuación:
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 8

(a) Asignación de una dirección IP a (b) Configuración necesaria para acceder a un router Mi-
un punto de acceso MikroTik kroTik desde su IP

Figura 2.9: Configuracion Wi-Fi desde Winbox para un router MikroTik

Una vez conectados correctamente a un punto de acceso, se muestra la ventana principal del programa
con un menú lateral en el que podemos encontrar varias opciones de actualización, configuración y gestión del
dispositivo.

2.4.1. Puesta en marcha de la red Wi-Fi


En esta sección se van a explicar las configuraciones necesarias para crear una red Wi-Fi desde Winbox a la
que se podrán conectar diferentes equipos. En primer lugar, desde el submenú Wireless, Interfaces le daremos un
nombre a la red (SSID) y fijaremos algunos parámetros como la frecuencia de operación que se debe encontrar
en la banda de los 2.4 GHz y el ancho de banda del canal que debe ser de 20 MHz o 40 Mhz. Por último, en el
submenú Wireless, Security Profiles estableceremos la contraseña de la red Wi-Fi. En este caso estableceremos
una autenticación de tipo WPA2-PSK por ser la que mayor seguridad ofrece.

(a) Configuración de la red Wi-Fi (b) Configuración de la seguridad de la red Wi-Fi

Figura 2.10: Configuracion Wi-Fi desde Winbox para un router MikroTik


CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 9

2.4.2. Obtención de información de la red


A continuación se muestran algunas de las opciones más interesantes que ofrece Winbox y que se intentarán
reproducir en la aplicación que se pretende diseñar. Esta información [7] se encuentra fundamentalmente en la
pestaña Registration de la ventana Wireless Tables y en la opción Resources. En la Figura 2.11 se muestran
algunos de estos datos.

Figura 2.11: Datos ofrecidos por Winbox de dos terminales móviles conectados al AP

Otra forma de interrogar a los puntos de acceso es mediante en uso del terminal de Winbox. Se trata de
una ventana de comandos con la que se puede acceder a cualquiera de las opciones de Winbox escribiendo
un comando con la ruta que serı́a necesaria seguir en la interfaz gráfica. A modo de ejemplo, para solicitar la
información que se muestra en la Figura 2.11, utilizarı́amos el siguiente comando:

/interface wireless registration-table print

En la siguiente captura se muestran los resultados proporcionados por el terminal.

Figura 2.12: Consulta de la Registration Table mediante consola

A continuación se pasa a explicar los parámetros que se han considerado más relevantes y con los que se
trabajará en la aplicación [7],[8]:

Parámetros monitorizdos de la opción Wireless


Nombre del punto de acceso: alias del punto de acceso que puede ser modificado por el usuario desde
Winbox. En este trabajo se utilizará el nombre por defecto, que se corresponde con la MAC del AP.
SSID: representa el nombre de la red a la que pertenece el punto de acceso al que se ha accedido mediante la
aplicación.
Interfaz: este parámetro indica el modo de comunicación que existe entre punto de acceso y el sistema gestor
de la red. Toma tres posibles valores: ether (conexión vı́a cable Ethernet), wlan (conexión inalámbrica)
o bridge (puente de red para interconectar dos segmentos de red). En este trabajo se analizará la interfaz
wlan.
Frecuencia central (MHz): frecuencia central del canal de comunicaciones utilizado indicada en MHz. En
nuestro caso se trata de una frecuencia en la banda de 2.4 GHz.
Ancho de banda del canal: indica el ancho de banda del canal de comunicaciones. Puede tomar los valores
tı́picos de canales WiFi: 20 MHz, 40 MHz. En MikroTik se utilizarán canales de 20 MHz por defecto,
aunque también puede haber canales de 40 MHz o 80 MHz que surgen como la unión de varios canales
de 20 MHz (channel bonding) con el objetivo de incrementar el throughput de la red al disponer de un
mayor ancho de banda.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 10

Protocolos 802.11 compatibles: especifica los protocolos utilizados en la interfaz wlan. Para routers Mikro-
Tik, esta interfaz puede utilizar protocolos 802.11, Nstreme (útil para mantener las prestaciones de la red
en enlaces de larga distancia) y Nv2(protocolo de acceso al medio basado en TDMA que permite a los
clientes conectarse al router).
Ganancia de la antena: ganancia de la antena del AP expresada en dBi.

Parámetros monitorizdos de la Wireless Regstration-Table


MAC Address: se trata de la dirección fı́sica de la tarjeta de red del dispositivo. Es única para cada uno de
ellos por lo que será uno de los parámetros que servirá para identificar los equipos conectados a nuestros
puntos de acceso.

Uptime (s): el tiempo de actividad indica cuánto tiempo ha transcurrido desde que el dispositivo se conectó
a la red hasta el momento actual.

Last Activity (s): última actividad del dispositivo conectado al AP. Indica el tiempo en segundos desde la
última vez en la que el dispositivo conectado a la red Wi-Fi transmitió datos al punto de acceso.

Tx/Rx Strength (dBm): comunmente conocido como RSSI (Received Signal Strength Indicator) se trata
de un indicador de nivel de intensidad de señal Wi-Fi recibida que mide la potencia recibida por el dis-
positivo conectado a la red inalámbrica y da una idea de la calidad de la conexión. Utiliza el valor de 1
mW (0 dBm) como nivel de referencia, siendo las pérdidas mayores a menor valor de RSSI. Para valorar
la calidad de la señal habrı́a que comparar este nivel de señal recibida con el nivel de ruido mediante una
relación SNR como la de la Ecuación 2.10.

3
En la siguiente tabla se muestra una escala que aporta información sobre los umbrales de calidad de la
conexión en función de la potencia recibida:

RSSI (dBm) Calidad de la conexión


> -50 Excelente (valores óptimos)
-50 a -60 Buena. Enlace estable en condiciones normales
-60 a -70 Justa. Pueden ocurrir caı́das del enlace en condiciones meteorlógicas adversas
<-70 Mala. Altas probabilidades de cortes en las comunicaciones

Tabla 2.1: Calidad de la conexión Wi-Fi en función del RSSI

Por ejemplo, en la Figura 2.11 se puede observar que los dos terminales móviles conectados al punto de
acceso cuentan con una buena conexión a la red.

El valor del RSSI se puede deducir con el siguiente modelo teórico de propagación log-distancia [13]:

d
RSSI(dBm) = −10nlog10 ( ) + A0 (2.1)
d0
donde:
n: exponente de pérdidas de propagación dependiente de la frecuencia y el entorno. Para entornos
indoor n≈2.
d: distancia que separa al punto de acceso del dispositivo conectado.
d0 : distancia de referencia a la que se calcula A0 . Tı́picamente d0 =1.
A0 : Offset RSSI. Es el valor del RSSI a la distancia de referencia.
3
Umbrales válidos en condiciones de ausencia de interferencias y asumiendo un nivel de ruido máximo de -90 dBm,
con el que se cumple la SNR mı́nima de 20 dB que garantiza un buen rendimiento.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 11

En el caso de los dispositivos inalámbricos MikroTik, el RSSI calculado en cada instante de tiempo se
calcula como una media móvil exponencial ponderada con un factor de suavizado del 50 % siguiendo la
fórmula:

RSSIT0 +1 = α · RSSIT + (1 − α) · RSSIT0 (2.2)

donde:
RSSIT0 +1 : estimación del RSSI para un periodo futuro T+1.
RSSIT0 : estimación obtenida en el periodo actual T.
RSSIT0 : medida real en el periodo actual T.
α: Constante de suavizado ∈ [0, 1]
Una de las principales aplicaciones de este parámetro es su uso para el posicionamiento en interiores,
permitiendo calcular la distancia entre transmisor y receptor mediante la siguiente ecuación en el caso de
espacio libre:

P0 − Fm − RSSI − 10nlog10 (f ) + 30n − 32,44


d(m) = 10 10n (2.3)

donde:

P0 : potencia transmitida a distancia d = 0 medida en dBm


Pr : potencia de la señal a distancia d medida en dBm.
f : frecuencia de operación en MHz(2400 MHz en redes 802.11).
n: exponente de pérdidas de propagación (Path-Loss exponent) dependiente de la frecuencia y el
entorno.
Fm : margen de desvanecimientos (fading margin) que expresa la diferencia entre la sensibilidad del
receptor y la potencia recibida, por lo que indica en qué cantidad se puede reducir la potencia
recibida sin que ello afecte al rendimiento del sistema.

Fm (dB) = S(dBm) − Pr (dBm) (2.4)

Para entornos de interiores en los que las señales están sujetas a fenómenos de atenuación, reflexión
y refracción, se utiliza el siguiente modelo de propagación indoor para el cálculo de las pérdidas por
trayectoria basado también en el concepto de RSSI [12]:
   
d 4πd0
P L(dB) = 10n log10 + 20 log + Xσ (2.5)
d0 λ

Donde P L representan las pérdidas por trayectoria (path loss) a una distancia d, n es el exponente de
pérdidas de propagación, d es la distancia entre transmisor y receptor, d0 es la distancia de referencia
c 3 · 108
(tı́picamente 1 m), λ es la longitud de onda a 2,4 GHz y cuyo valor es λ = = = 0, 125m y Xσ
f 2, 4 · 109
el margen de desvanecimientos.
De la ecuación 2.4.2 se deduce la fórmula para el calculo de la distancia en entornos de interiores:

d(m) = 10(P L−20 log10 (4πd0 /λ)−Xσ )/10n · d0 (2.6)

Tx Rate (bps): velocidad a la que un dispositivo transmite datos al punto de acceso al que está conectado.

Rx Rate (bps): velocidad a la que un dispositivo recibe datos del punto de acceso al que está conectado.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 12

Throughput (bps): es la capacidad efectiva de transmisión de datos a través del canal de comunicaciones.
Este parámetro se mide por separado en el enlace de subida (uplink) y en el de bajada (downlink) y su
valor máximo en cada caso estará limitado por el ancho de banda del canal y la SNR.

La herramienta Winbox mediante el uso del test de ancho de banda permite evaluar el throughput a lo
largo del tiempo a través de una interfaz de red determinada. A continuación se muestra un ejemplo en
el que se ha monitorizado el throughput en transmisión y recepción:

(a) Medida del throughput en transmisión (b) Medida del throughput en recepción

Figura 2.13: Test de ancho de banda para la evaluación del throughput en Winbox

Client Connection Quality ( %): el CCQ es un indicador basado en la retransmisión de tramas para calcu-
lar la eficiencia de uso del ancho de banda. Para ello, compara el ancho de banda utilizado en transmisión
con el máximo teórico disponible. Este parámetro aporta información sobre la calidad del enlace además
de una mayor exactitud en la medida del throughput. El CCQ se calcula mediante la siguiente expresión
la que se comparan tiempos de transmisión bajo distintas condiciones para cada una de las N tramas
transmitida y posteriormente se realiza una media ponderada de los resultados:

PN Timin
i=1 pi
Tireal
CCQ = PN (2.7)
i=1 pi
donde:

Tmin representa el tiempo necesario para transmitir una trama a máxima velocidad sin errores.
Treal es la medida del tiempo real que ha tardado en transmitirse la trama bajo estudio, teniendo
en cuenta las posibles retransmisiones que hayan podido haber debido a errores.
pi son los pesos asociados a cada tipo de trama.
Es importante tener en cuenta que para obtener un resultado fiable del CCQ es necesario generar tráfico
para que se transmita el mayor número de tramas posible ya que si por ejemplo el cliente estuviese inacti-
vo durante un periodo grande de tiempo, el valor del CCQ bajarı́a considerablemente pudiendo obtenerse
resultados que no corresponden con la realidad.

Utilizando el resultado del CCQ se obtiene la siguiente fórmula para un cálculo más preciso para el
rendimiento:

T hroughputtx tx
max = T hroughputmedida · CCQ (2.8)

T hroughputrx rx
max = T hroughputmedida · CCQ (2.9)

Signal to Noise ratio (dB): la SNR mide la relación entre la señal deseada y el ruido. Se puede calcular con
la siguiente expresión:

SN R(dB) = RSSI(dBm) − N0 (dBm) (2.10)

En el caso de redes 802.11 [11] podemos relacionarla con el throughput teniendo en cuenta el tipo de
modulación utilizada a través de la siguiente gráfica:
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 13

(a) Throughput-SNR para el estándar 802.11a (b) Throughput-SNR para el estándar 802.11b

Figura 2.14: Gráficas Throughput-SNR para diferentes estándares 802.11

Para redes de datos como la de este trabajo, se recomienda una SNR mayor de 20 dB para tener un buen
rendimiento (throughput). Para el caso de comunicaciones de voz, el mı́nimo recomendado ascenderı́a a
25 dB.

Parámetros monitorizdos de la Resource Table


En routers MikroTik también es posible obtener datos acerca del uso de los recursos hardware. Algunos de
estos recursos son constantes y sólo aportan información acerca de modelos y fabricantes del software que está
siendo gestionado ası́ como información básica del procesador. Por otro lado, se puede supervisar detalladamente
el estado de la memoria RAM. A continuación, se describen brevemente los parámetros que se obtendrán en la
aplicación agrupados según los diferentes recursos hardware:

CPU: en relación al procesador del router se puede obtener información acerca del modelo, arquitectura y
frecuencia actual.

Memoria Flash: en cuanto a la memoria flash NAND del router, encargada de albergar el sistema operativo,
se puede consultar el espacio total y el espacio libre de ésta. Además, la API proporciona información de
los sectores de memoria totales y de aquellos sobre los que se ha escrito desde el último reinicio del router.
Por último, se muestra el porcentaje de bloques de memoria defectuosos (bad-blocks) que son aquellas
secciones en las que no se pueden realizar operaciones de lectura/escritura.

Memoria RAM: en cuanto a la memoria RAM, se puede consultar la memoria total (total-memory) y la libre
(free-memory).
RouterBoard : por último, se puede obtener información de la propia RouterBoard como son el modelo de
ésta y la plataforma (MikroTik).

Parámetros monitorizdos de la opción System Health


La opción System Health de Winbox proporciona información acerca del estado del hardware. Los paráme-
tros que pueden ser leı́dos depende de la RouterBoard que se esté utilizando, ya que algunas no disponen de
los sensores necesarios para supervisar ciertas variables. A continuación se describen los tres parámetros dis-
ponibles, aunque en el caso de la RouterBoard RB411AH de este trabajo solamente podremos obtener la tensión:

XTensión: tensión suministrada al punto de acceso. En Winbox y en la API, por defecto se muestra esta
tensión en Voltios. Sin embargo, si se está gestionando la red utilizando el protocolo SNMP, el voltaje se
mostrará en dV (1Vx10).
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 14

Temperatura: los routers con sensores de temperatura pueden aportar dicho dato medido en grados Celsius
si se usa Winbox, o en Celsius multiplicado por 10 si se obtiene la información utilizando la API o SNMP.

Control de ventilación: algunas RouterBoard incluyen un ventilador cuya función es refrigerar el equipo
cuando aumente su temperatura superando ciertos umbrales. En estos casos existe un control que permite
monitorizarlo.

2.4.3. Obtención de gráficos en tiempo real


Una opción interesante que ofrece Winbox es el trazado de gráficos en tiempo real en los que se representan
la variación de ciertos parámetros relacionados con la red a lo largo del tiempo:
Tensión suministrada al punto de acceso y temperatura.
Utilización de recursos: CPU, memoria RAM y memoria Flash.
Tráfico transmitido a través de diferentes interfaces (Ethernet, Wireless...).
Tráfico transmitido a través de colas simples.
Para conseguir trazar estas gráficas correctamente, hay que asegurarse de que la configuración de fecha y
hora local de Winbox se corresponda con la local y, por otro lado, asegurarse de que el servicio www (puerto
80), que nos permitirá visualizar las gráficas en un navegador web, esté habilitado.

(a) Gráfica de Tráfico diario en Winbox (b) Uso de la memoria flash durante un mes

Figura 2.15: Ejemplos de gráficas en tiempo real en Winbox [Fuente: MikroTik Forums]

2.5. APIs
Una API (Application Programmable Interface) es un conjunto de funciones prediseñadas para poderlas
utilizar en otro software sin necesidad de tenerlas que programar por lo que es un ejemplo de lo que en términos
de informática se conoce como capa de abstracción.

Las APIs son la forma más frecuente de implementar en las aplicaciones desarrolladas por el usuario los
servicios que ofrece RouterOS para la configuración, comunicación con los routers, obtención de información
etc. Estas APIs están disponibles en los sitios web oficiales de MikroTik y son implementables en múltiples
lenguajes de programación (Python, Java, C++, Visual Basic...).

2.5.1. Comunicaciones con los puntos de acceso a través de Winsock


En el caso de la API de MikroTik para Visual Basic, puede entenderse que está basada en una arquitectura
cliente-servidor que utiliza la librerı́a WinSock [6] (Windows Socket) para permitir el acceso a los routers y
el intercambio de información entre usuario y API. Winsock se encarga de implementar el protocolo TCP/IP
permitiendo el envı́o de órdenes y la recepción de paquetes con información procedente de la tarjeta de red de
los puntos de acceso. Este intercambio de datos se realiza a través de sockets, que son procesos localizados tanto
en el cliente como en el servidor y cuya finalidad es que ambos puedan realizar las operaciones de lectura y
escritura de datos e intercambiar los flujos de información a través de la capa de red.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 15

En el caso de la API que se va a utilizar, el socket viene definido por el protocolo de transporte TCP y el puerto
API 8728.

En el siguiente diagrama se muestra cómo se realizan las comunicaciones entre cliente y servidor a través
de Winsock Sockets:

Figura 2.16: Proceso Sockets para arquitectura cliente-servidor

A la vista del diagrama anterior, el funcionamiento de Winsock se divide en las siguientes funciones [9]:

socket(): creación de un nuevo socket.


bind(): el servidor asigna una dirección local al socket. En este estado inicial, el servidor no acepta los
intentos de conexión.
listen(): el servidor entra en un estado de escucha en el que se encuentra disponible para aceptar nuevas
conexiones de clientes.
connect(): el cliente inicia una petición de establecimiento de una conexión vı́a TCP a través de un
puerto libre.
accept(): el servidor acepta la solicitud del cliente de establecer una conexión TCP y genera un nuevo
socket con las direcciones IP del cliente y servidor que caracterizan dicha conexión.
write(), read(): una vez establecida la conexión, cliente y servidor realizan operaciones de envı́o y
recepción de datos.
close(): el sistema libera los recursos asociados al socket y termina la comunicación.

2.5.2. Configuraciones previas


Para poder utilizarlas es necesario tener instalada la versión 3 (o superior) de RouterOS además de unas
configuraciones básicas que se pueden realizar con la herramienta Winbox. Éstas son:

Habilitación del puerto 8728 (puerto por defecto del servicio API de MikroTik). Se accede a través del
menú lateral de Winbox: /IP/Services. Este puerto permite a la API comunicarse con los puntos de
acceso.
Habilitación del puerto 80 (www), el cuál permite la entrada a páginas web en Internet. Se activa desde
la misma lista que el puerto api.
Habilitar el servicio SNMP. Es necesario para que la API acceda a algunos parámetros que están almace-
nados en la base de datos MIB y que son utilizados por Winbox para la obtención de gráficos en tiempo
real. También permite utilizar comandos para obtener el OID de estos objetos y localizarlos dentro de la
base de dicha base de datos. Se accede a través del menú lateral de Winbox: /IP/SNMP
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 16

(a) Habilitación del puerto 8728 (API) (b) Activación del servicio SNMP

Figura 2.17: Configuraciones previas para el correcto funcionamiento de la API

Una vez realizadas en Winbox las configuraciones previas de los routers a gestionar, ya se puede empezar a
trabajar con la API.

Por otro lado, un punto importante a tener en cuenta si se utiliza un cliente API de Visual Basic como
es nuestro caso, es la necesidad de incluir el componente de winsock que se encargará de implementar el
protocolo TCP/IP como se comentó anteriormente. Por otro lado, hay que asegurarse de que en el entorno
de programación que se está utilizando para realizar el proyecto se ha añadido una referencia a la librerı́a
VBScript Regular Expressions 5.5. Estas expresiones regulares proporcionan herramientas para el desarrollo de
algoritmos complejos para la búsqueda de patrones de texto y manipulación de todo tipo de datos. Es por lo
tanto imprescindible activar el uso de estas herramientas para que la API extraiga los datos de los puntos de
acceso correctamente y nuestra aplicación (basada en la API) se pueda compilar y ejecutar sin problemas.
En el caso de utilizar Visual Basic 6.0, esta librerı́a se habilita desde el menú Project, References como se
muestra en la siguiente imagen:

Figura 2.18: Uso de la librerı́a VBScript Regular Expressions 5.5 en Visual Basic 6.0

2.5.3. Manejo de la API


En cuanto al manejo de la API, se realiza en dos pasos, como se observa en la Figura 2.19. En primer lugar,
la API permite conectarse al punto de acceso mediante su dirección IP y el nombre y la contraseña asignados
al administrador de la red. Una vez conectados, se utiliza una lı́nea de comandos para solicitar información al
punto de acceso. Dicha información se muestra en el panel etiquetado como Output. En el ejemplo de la figura
se ha solicitado información acerca de la tensión de alimentación del router (health).
La API también permite desconectar el equipo administrador de la red asociada al punto de acceso para volverse
a conectar a otro AP diferente del que se desee solicitar nueva información.
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 17

(a) Información mostrada tras la correcta conexión al (b) Datos de salida tras introducir el comando print del
punto de acceso a través de la API parámetro health

Figura 2.19: Ejemplo de funcionamiento de la API

2.5.4. Formato de la información proporcionada por la API


Es fundamental saber interpretar la estructura que tienen los mensajes que proporciona la API en respuesta
a un comando con el objetivo de seleccionar la información más relevante para que la aplicación que se desea
desarrollar pueda ordenarla y procesarla posteriormente.

Una vez analizado el código fuente de la API, se llega a la conclusión de que la información que se proporciona
como salida (Out) se guarda en una variable s de tipo String que posteriormente se muestra en un control tipo
TextBox llamado txtOut. Por comodidad, los datos más relevantes se extraerán de esta caja de texto ya que
es la forma más sencilla de visualizar la información de una forma estructurada. La observación de dicho texto
de salida nos permitirá localizar el patrón que utiliza la API para mostrar la información de los diferentes
dispositivos conectados a la red. Será entonces cuando se plantee el algoritmo necesario para filtrar y ordenar
los parámetros más relevantes.

1 Private Sub Out ( ByVal s$ )


2 txtOut . text = txtOut . text & s & vbCrLf
3 End Sub

Función Out que muestra el texto de salida en la API


Como podemos observar en los siguientes textos de salida de la API de Visual Basic, éstos siguen siempre
un mismo formato cuya estructura se observa en los siguientes ejemplos:
Linea 1: comando enviado.
Lı́nea 2: sentencia ((EOS)) (End of Sentence) que aparece al final de un conjunto de lı́neas que representan
el envı́o de un comando o la respuesta a este con la información. Sirve como separador entre los bloques
de información que nos devuelve la API en forma de texto.
Lı́nea 3: sentencia !done indica que el comando se ha enviado correctamente. En caso contrario indicarı́a
un !not done. Otras formas de reportar alguna anomalı́a como por ejemplo, la introducción de unas
credenciales incorrectas, es mediante un !trap.
Lı́nea 4: parámetro ret que indica challenge argument. En caso de fallo en el envı́o del comando, reportarı́a
un mensaje de error.
Lı́neas 5, 6 y 7: secuencia ((EOS)), !done, ((EOS)).
Lı́nea 8: indicador !re que indica el principio de la respuesta de la API al comando enviado.
Siguientes lı́neas: muestran la información solicitada. En cada lı́nea se muestra un parámetro y su valor
siguiendo el siguiente formato: I =NombreParámetro=Valor.
Últimas lı́neas: finalización del bloque de información con la secuencia ((EOS)), !done, ((EOS))
CAPÍTULO 2. ASPECTOS TEÓRICOS DE LA TECNOLOGÍA MIKROTIK 18

1 O / system / resource / print 1 ( cont .)


2 O << EOS > > 2 I 24 Kc
3 I ! done 3 I V7 .4
4 I = ret = a 8 9 4 a d 6 4 6 e d e c d e b 6 a 1 c 7 3 3 6 c 1 f 0 f 0 b 8 4 I = cpu - count =1
5 I << EOS > > 5 I = cpu - frequency =680
6 I ! done 6 I = cpu - load =1
7 I << EOS > > 7 I = free - hdd - space =47661056
8 I ! re 8 I = total - hdd - space =66846720
9 I = uptime =47 m25s 9 I = write - sect - since - reboot =426
10 I = version =6.39.2 10 I = write - sect - total =158388
11 I ( stable ) 11 I = bad - blocks =0
12 I = build - time = Jun /06/2017 12 I = architecture - name = mipsbe
13 I 08:01:04 13 I = board - name = RB411AH
14 I = free - memory =42029056 14 I = platform = MikroTik
15 I = total - memory =67108864 15 I << EOS > >
16 I = cpu = MIPS 16 I ! done
17 ( cont .) 17 I << EOS > >

Formato de la información de salida de la API tras consultar Resource

1 O / interface / wireless / registration - table / print 1 ( cont .)


2 O << EOS > > 2 I = last - activity =190 ms
3 I ! done 3 I = signal - strength = -38 @HT20 -7
4 I = ret =10 d 7 0 e 1 4 c 3 a b 5 8 d f f d d f b e 5 3 4 a f 5 c f a 0 4 I = signal - to - noise =49
5 I << EOS > > 5 I = signal - strength - ch0 = -38
6 I ! done 6 I = evm - ch0 =29
7 I << EOS > > 7 I = strength - at - rates = -33 @1Mbps
8 I ! re 8 I 2 s910ms , -38 @6Mbps
9 I =. id =*2 9 I 2 s520ms , -36 @HT20 -1
10 I = interface = wlan1 10 I 20 s160ms , -38 @HT20 -6
11 I = mac - address = B8 :64:91:68:1 C :50 11 I 7 s330ms , -38 @HT20 -7
12 I = ap = false 12 I 190 ms
13 I = wds = false 13 I = tx - ccq =95
14 I = bridge = false 14 I =p - throughput =6199
15 I = rx - rate =65 Mbps -20 MHz /1 S 15 I = distance =1
16 I = tx - rate =11 Mbps 16 I = last - ip = 1 9 2 . 1 6 8 . 1 0 0 . 2 5 3
17 I = packets =122 ,172 17 I =802.1 x - port - enabled = true
18 I = bytes =13265 ,14518 18 I = management - protection = false
19 I = frames =122 ,172 19 I = wmm - enabled = true
20 I = frame - bytes =12533 ,13486 20 I = tx - rate - set = CCK :1 -11
21 I = hw - frames =123 ,206 21 I OFDM :6 -54
22 I = hw - frame - bytes =15584 ,18430 22 I BW :1 x
23 I = tx - frames - timed - out =0 23 I HT :0 -7
24 I = uptime =46 s 24 I << EOS > >
25 25 I ! done
26 ( cont .) 26 I << EOS > >

Formato de la información de salida de la API tras consultar Registration Table

Nota: para obtener esta información con la API: /interface/wireless/registration-table/print

Teniendo en cuenta el formato de la información proporcionada por la API y que se utiliza el signo ’=’ como
separador entre el nombre de cada variable y su valor, se plantean diferentes algoritmos para obtener los datos
de interés de la totalidad de los dispositivos conectados a la red Wi-Fi, mostrarlos en tablas y almacenarlos en
archivos para, por último, graficar parte de la información.

En la sección de anexos se pueden encontrar algunos de estos algoritmos.


Protocolos involucrados
3
En este capı́tulo se explicarán los protocolos involucrados tanto en el acceso a los routers MikroTik como
en su gestión.

3.1. El protocolo MikroTik Neighbor Discovery (MNDP)


MNDP [7] (MikroTik Neighbor Discovery Protocol) es el protocolo utilizado en las redes MikroTik para
identificar los dispositivos pertenecientes a la mismma. El funcionamiento del protocolo consiste en que cada
router MikroTik descubre otros routers MikroTik conectados a la red y aprende información sobre dichos equi-
pos.

De esta forma, un nodo que se acaba de conectar a la red, descubre aquellos nodos que están conectados
al mismo enlace y, con la ayuda de mensajes ICMPv6, identifica su dirección IPv6. Una de las ventajas de este
protocolo es su capacidad para buscar rutas alternativas cuando la ruta a un nodo falla permitiendo descubrir
otros routers cercanos.

3.2. El protocolo Nv2


Nv2 [7] es un protocolo de acceso al medio propietario de MikroTik que es utilizado por los clientes para
conectarse a los puntos de acceso. Está basado en tecnologı́a TDMA y puede ser utilizado por los dispositivos
inalámbricos 802.11 de esta marca.

Con el uso de TDMA se permite que varios usuarios compartan la misma frecuencia del canal dividiendo la
señal en intervalos de tiempo (time slots) de forma que cada usuario sólo transmite en el intervalo de tiempo
que le corresponde. De esta forma, varios puntos de acceso pueden compartir todo el ancho de banda disponible
en un único canal sin interferir entre ellos.

19
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 20

Figura 3.1: Esquema ilustrativo de la técnica de acceso TDMA

Otra de las ventajas de TDMA (Nv2) es que en cada time-slot el punto de acceso cambia el tipo de modu-
lación para cada cliente afectando ası́ en menor medida al rendimiento de la red que si se utilizase CSMA/CA.

3.3. El protocolo de gestión de red SNMP


SNMP(Protocolo Simple de Gestión de Red) [4] es un protocolo de internet que pertenece a la capa de
aplicación cuya función es facilitar el intercambio de datos necesarios para la realizar tareas de gestión de la
red, supervisión y solución de errores. Es altamente compatible con diferentes dispositivos (routers, switches,
estaciones de trabajo, servidores, impresoras. . . ) por lo que tiene una gran aceptación.

Figura 3.2: Arquitectura del protocolo SNMP

3.3.1. Elementos básicos del protocolo SNMP


Cuando se hace uso del protocolo SNMP se interpreta la red de comunicaciones como tres elementos:

Dispositivo administrado (MD): nodo de la red que contiene a un agente SNMP y que forma parte
de la red. Almacena información relativa a la gestión de la red que se envı́a a los NMS.
Sistema administrador de red (NMS): ejecutan aplicaciones para supervisar y controlar los MD. Se
ubican en los equipos de gestión de red.
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 21

Agente (Agent): módulo de software de administración de red que reside en el MD (nodos que necesitan
ser gestionados). Conoce información acerca de su memoria, tráfico de paquetes, direcciones IP, rutas. . .

Una vez definidos los elementos de la red gestionada, la forma en la que interactúan entre ellos viene dada
a partir de un modelo conocido como el paradigma gestor-agente.

3.3.2. El paradigma gestor-agente


El paradigma gestor-agente pretende explicar el modo en el que los nodos gestores (aquellos que contienen
un NMS) y los nodos gestionados (aquellos que contienen un agente) se comunican intercambiando información
a la hora de gestionar la red.

Los agentes contienen información actualizada y organizada en la base de datos MIB sobre diferentes paráme-
tros que determinan el funcionamiento del nodo gestionado. El gestor es el encargado de solicitar a los agentes
dicha información o bien solicitar la realización de una operación sobre el nodo gestionado. La comunicación
entre gestor y agentes se lleva a cabo a través de un protocolo de gestión de red.

Cuando ocurre alguna anomalı́a en el nodo gestionado, los agentes envı́an de forma autónoma un evento
al gestor, que no es más que una alerta para que desde el sistema de administración de la red se actúe con el
objetivo de solucionar el problema.

La comunicación entre el sistema administrador y el gestor se lleva a cabo mediante una interfaz, que es un
software que permite a la persona que administra la red actuar sobre ésta enviando las ordenes al gestor y a la
vez recibe información en tiempo real en diferentes formatos: datos ordenados, gráficos, informes etc. Uno de
los objetivos de este proyecto en concreto, es diseñar una aplicación de gestión de red a partir de dicha interfaz.

Figura 3.3: El paradigma gestor-agente

3.3.3. La Base de Información Gestionada (MIB)


Una MIB contiene información organizada jerárquicamente en forma de árbol a la que se puede acceder
mediante protocolos de gestión como el SNMP. La información contenida en esta base de datos se organiza en
objetos. Cada objeto contiene información especı́fica sobre una o varias caracterı́sticas de un dispositivo perte-
neciente a la red. Cada uno de estos objetos contiene una o varias instancias de objeto, que son las variables
que aportan información del nodo bajo estudio.

Cuando el objeto administrado tiene una sola instancia, se le denomina objeto escalar. Por otro lado, los
objetos tabulares poseen varias instancias relacionadas entre sı́ y organizadas en tablas dentro de la base de
datos MIB [14].
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 22

Cada objeto del árbol tiene un identificador numérico de forma que para acceder a un objeto hay que des-
plazarse desde los niveles superiores, en los que se encuentran las organizaciones de estandarización, hacia los
inferiores, en los que encontramos otras organizaciones asociadas.

A continuación, se muestra un ejemplo de árbol MIB y las dos formas de acceder a un determinado objeto,
que pueden ser: a partir de los identificadores numéricos que se muestran entre paréntesis: Object Identifiers
(OID), o bien, a partir de los nombres de los propios objetos (descriptores).

Figura 3.4: Ejemplo de la jerarquı́a MIB en forma de árbol

Por ejemplo, si se desea acceder al elemento mikrotik, donde se almacena la mayor parte de la información
que permite gestionar los productos de esta marca, desplazándonos desde las ramas superiores hasta el propio
objeto, se puede acceder de las siguientes formas:

OID 1.3.6.1.4.1.14988.
Descriptor iso.identified-organization.dod.internet.private.enterprise.mikrotik.

Tabla 3.1: Diferentes formas de acceder al objeto MIB de MikrtoTik

Las bases de datos MIB se dividen en tres tipos:

1. Estándares: contienen la MIB-I y MIB-II.


2. Experimentales: con objetos en fase de desarrollo.
3. Privadas: gestiona objetos de fabricantes especı́ficos. En el caso de MikroTik, como en tantos otros
fabricantes, sus MIBs se encuentran en la rama enterprise.

MIB estándadres
La MIB-I constituyó la primera MIB normalizada formada por objetos de la pila de protocolos de TCP/IP.
En cuanto a la MIB-II, se realizaron algunas modificaciones respecto a la primera versión como la desestimación
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 23

del grupo at (address translation), o la creación del nuevo grupo SNMP.

Grupo Número de objetos MIB-I Número de objetos MIB-II Descripción


system 3 7 El propio sistema
interfaces 22 23 Interfaces de red
at 3 3 Correspondencia de dirección IP
ip 33 38 Protocolo de Internet
icmp 26 26 Protocolo de Mensajes de Control de Internet
tcp 17 19 Protocolo de Control de Transmisión
udp 4 7 Protocolo de Datagrama de Usuario
egp 6 18 Protocolo de Pasarela Exterior
transmission - 0 Nuevo grupo incluı́do en la MIB-II
snmp - 30 Nuevo grupo incluiı́do en la MIB-II

Tabla 3.2: Comparativa entre la MIB-I y la MIB-II

MIB experimentales
Son aquellas que se encuentran en fase de desarrollo y que progresivamente se irán estandarizando pasando
a formar parte de la MIB-II.

MIB privadas
Las MIB privadas están asociadas a los productos especı́ficos de los fabricantes. Estas MIB aportan nuevas
funcionalidades a las MIB estándares. A pesar de ser privadas, la mayorı́a de los fabricantes las suelen hacer
públicas en repositorios desde los cuales se pueden descargar de forma gratuita, como es el caso de MikroTik,
el fabricante de los routers que utilizaremos en este proyecto.

3.3.4. Mensajes SNMP


Los mensajes SNMP [15], [19] se transmiten mediante el protocolo no orientado a conexión UDP. La estruc-
tura del mensaje SNMP está formada por tres campos:

Figura 3.5: Formato de un mensaje SNMP

Versión SNMP: versión del protocolo que se está utilizando (0 para v.1, 1 para v.2 y 2 para v.3.)
Comunidad: se trata de una clave para la autenticación de los mensajes. Su función es identificar al
usuario para evitar el acceso no autorizado al dispositivo gestionado SNMP.
PDU (Protocol Data Unit): contiene las peticiones (requests) del usuario sobre el dispositivo gestio-
nado y los mensajes que los agentes manda al usuario (responses).

A continuación, se describe cada uno de los campos que componen una SNMP-PDU:
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 24

Figura 3.6: Formato de las diferentes SNMP-PDU (SNMP v.1)

Tipo: tipo de mensaje SNMP


Identificador: código que identifica al NMS y al agente para permitir la comunicación entre ambos.
Estado de error/ Índice de error: son utilizados en los mensajes Get Response y notifican de un
problema en la comunicación entre el sistema gestor y el dispositivo gestionado e información de las causas
de éste.
El campo Estado de error contiene uno de los siguientes valores para identificar el problema:

Valor Estado de error


0 No existe error
1 Demasiado grande
2 La variable no existe
3 Valor incorrecto
4 El valor es de solo lectura
5 Error genérico

Tabla 3.3: Posibles valores del campo Estado de error

Por su parte, el campo ı́ndice de error solo se utiliza cuando el campo estado de error tiene un valor
distinto de 0. El ı́ndice de error aporta información adicional de la causa del error.
Enlazado de variables: asocia una instancia de objeto MIB con su valor actual.

Tipos de mensajes SNMP


Las comunicaciones entre agentes y administradores se realizan mediante siete tipos de mensajes:

Get Request: el administrador solicita al agente que envı́e un valor de un objeto contenido en el MIB.
Get Next Request: el administrador solicita al agente que envı́e el siguiente objeto de la tabla en la
que se encontraba el objeto solicitado mediante la operación Get Request.
Set Request: solicitud del NMS para que un agente modifique valores de los objetos.
Get Response: respuesta a un request proporcionando el valor o estado del objeto. Sirve como confir-
mación por parte del dispositivo de que se ha realizado una operación Get Request, Get Next Request o
Set Request.
Trap: alerta al NMS ante un evento sucedido en el dispositivo. Tiene la una estructura diferente a la del
resto de mensajes como se muestra en la Figura 3.6:

• Tipo: tipo de mensaje SNMP.


• Enterprise: identifica el sistema de gestión que emite el trap.
• Dirección del agente: dirección IP del agente que emite el trap.
• Tipo genéricos de trap: existen 7 categorı́as:
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 25

◦ (0) coldStart: el agente ha sido inicializado o reinicializado.


◦ (1) warmStart: la configuración del agente ha sufrido un cambio.
◦ (2) linkDown: indica que una interfaz de comunicación está inactiva.
◦ (3) linkUp: indica que una interfaz de comunicación está activa.
◦ (4) autenticationFailure: el agente ha recibido un requerimiento de un NMS no autorizado.
◦ (5) egpNeighbourLoss: un equipo adyacente de un sistema en el que los routers usan el
protocolo EGP se encuentra inactivo.
◦ (6) Enterprise: categorı́a en la que el fabricante puede incluir sus traps especı́ficos.
• Tipo especı́fico de trap: código utilizado para traps especı́ficos de los fabricantes.
• Time stamp: tiempo transcurrido entre la última reinicialización del agente y la generación del
trap.
• Enlazado de variables: asocia una instancia de objeto MIB con su valor actual.

Get Bulk Request: es utilizado en las versiones 2 y 3 del protocolo SNMP para recuperar grandes
cantidades de datos de grandes tablas. Su funcionamiento es similar al Get Next Request con la diferencia
de que con una sola petición puede recuperar toda la tabla. Por el contrario, el Get Next Request recupera
la tabla elemento a elemento.

Figura 3.7: Formato del mensaje Get Bulk Request (SNMP v.2)

Inform Request: es utilizado en las versiones 2 y 3 de SNMP y tiene la misma finalidad que el trap.
La principal diferencia es que el agente SNMP no tiene forma de comprobar si el administrador SNMP
recibió un trap. En cambio, cuando se utiliza un Inform Request, el agente envı́a paquetes Inform Request
continuamente hasta recibir una confirmación (ACK) por parte del gestor.
El formato de un mensaje Inform Request es el mismo que el de las peticiones Get Request, Get Next
Request y Set Request de la primera versión del protocolo.

3.3.5. SNMP en la tecnologı́a MikroTik


Como se ha explicado anteriormente, la forma de acceder a la información con el protocolo SNMP es median-
te los OID. En el caso de los puntos de acceso MikroTik existe la posibilidad de consultar el valor de numerosos
parámetros y también de localizar en qué parte de la base de datos MIB se encuentran algunos de ellos gracias
a los identificadores de objetos (OID).

Como se comentó anteriormente (ver Figura 2.17) es posible activar el protocolo SNMP en RouterOS
desde Winbox. En el caso de que se quiera hacer mediante la API, se debe hacer uso de los siguientes comandos
(con el primero se habilita SNMP y con el segundo se comprueba si se ha habilitado correctamente):

1 / snmp / set enabled yes


2 / snmp / print

Secuencia de comandos para la habilitación de SNMP


CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 26

(a) Activación por consola de Winbox (b) Activación por API

Figura 3.8: Habilitación del protocolo SNMP por consola y API

RouterOS tiene una base de información gestionada (MIB) que se puede descargar de forma gratuita desde el
sitio web de MikroTik. Esta MIB contiene todos los objetos que pueden ser gestionados con SNMP identificados
con su OID y es actualizada continuamente por el fabricante.

Figura 3.9: Captura de la MIB de MikroTik

Utilizando el terminal de Winbox podemos obtener los OID de los diferentes objetos de la MIB de MikroTik
mediante el comando print oid como se muestra a continuación. Por el contrario, al introducir este comando
en la API, ésta nos devuelve el valor actual del objeto administrado asociado a cada OID pero no muestra el
propio identificador, por lo que equivaldrı́a a la instrucción print.
CAPÍTULO 3. PROTOCOLOS INVOLUCRADOS 27

Figura 3.10: Solicitud por terminal de OIDs asociadas a la Registration Table


Diseño de la aplicación
4
4.1. Requerimientos
Requerimientos funcionales
La aplicación debe monitorizar puntos de acceso MikroTik situados en entornos de interiores. Deberá
tener la capacidad de acceder a los puntos de acceso cercanos ya sea de forma inalámbrica o por medio
de una conexión ethernet. La forma de acceder a cada punto de acceso será identificándolo a partir de su
dirección IP, el nombre de usuario del administrador de la red y la contraseña en caso de tenerla. Será
capaz de obtener parámetros relevantes de la red tales como:

• Dirección MAC e IP de los dispositivos conectados.


• Tiempo que el dispositivo lleva conectado a la red.
• Niveles de potencia transmitidos y recibidos.
• Velocidad binaria en transmisión y recepción.
• Indicadores de calidad del enlace.

Asimismo, la aplicación deberá ser capaz de obtener información actualizada acerca de la RouterBoard
que está siendo gestionada. Se recopilará información relacionada con los recursos de memoria Flash,
memoria RAM y procesador.

Una vez obtenida dicha información, ésta se mostrará en la interfaz de forma ordenada en forma de tablas,
identificando en todos los casos a qué equipo están asociados dichos datos.
Por otra parte, la aplicación debe recordar los datos obtenidos durante un cierto periodo de tiempo,
guardándolos en algún archivo o base de datos que sirva como registro, con el objetivo de poder elaborar
posteriormente gráficas estadı́sticas que ayuden a entender como ha sido el funcionamiento de la red.

Requerimientos no funcionales
En cuanto a los requerimientos no funcionales, se detallan a continuación los diferentes controles de los
que deberá disponer la aplicación:

• Botón para seleccionar los mapas sobre los que se situarán los puntos de acceso. Al hacer click sobre
el botón deberá abrirse el explorador de archivos de Windows, que permitirá importar el mapa en
formato de imagen, incluido el formato .wmf cuya principal ventaja es que se puede escalar sin que
esto suponga una pérdida de calidad de la imagen. Por lo que este formato de imagen es idóneo para
insertarlo en los contenedores de imágenes PictureBox a la hora de programar en Visual Basic.
• Varios contenedores de imagen organizados en pestañas para poder cargar varios mapas en una
misma sesión. Esto es especialmente útil cuando se quieren gestionar los routers de un edificio de
varias plantas, donde cada planta es representada con un mapa.
• Control que se pueda arrastrar y soltar varias veces sobre cualquiera de los mapas cargados, repre-
sentando cada uno de ellos un punto de acceso de la red.
• Posibilidad de etiquetar los puntos de acceso situados sobre el mapa con algún identificador, como
puede ser la dirección IP o el SSID.

28
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 29

• Organización en tablas de la información obtenida, con la posibilidad de mostrar éstas mediante


menús desplegables.
• Posibilidad de actualizar automáticamente y manualmente la información de los puntos de acceso
gestionados.
• Posibilidad de guardar los datos en ficheros de forma automática y manual.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 30

4.2. Software utilizado


4.2.1. Workstation 12 Player
Software para la virtualización de sistemas operati-
vos que permite emular cualquier sistema fı́sico (máqui-
na virtual) con todas sus caracterı́sticas y ejecutar progra-
mas del mismo modo que lo harı́a el sistema real. Es-
te proyecto se ha diseñado sutilizando una máquina vir-
tual de Windows XP Professional sobre VMware ya que
el entorno Visual Basic tiene ciertos problemas de com-
patibilidad con las últimas versiones de Windows (Win-
dows 8.1 y 10). Cabe destacar que una vez finalizada
la aplicación, esta se exportará a un archivo ejecutable
(.EXE) que será compatible con cualquier versión de Win-
dows.

4.2.2. GenCDB
Herramienta CAD [10] diseñada por miembros del grupo GISAR del De-
partamento de Ingenierı́a de Comunicaciones de la Universidad de Cantabria
para el diseño de modelos geométricos de entornos indoor. GenCDB permite
modelar dichos escenarios incluyendo propiedades fı́sicas como distancias y
alturas, y propiedades eléctricas del medio por el que se va a transmitir la
señal como la constante dieléctrica relativa, conductividad, desviación tı́pica
por la rugosidad de las superficies y pérdidas de transmisión, por lo que son
aptos para utilizarse en análisis de cobertura utilizando software especiali-
zado como CINDOOR. Los escenarios de interiores que han sido utilizados
en este proyecto y en los que se situarán los puntos de acceso que posterior-
mente serán interrogados, han sido modelados en GenCDB. La aplicación
incluirá una opción para abrir esta herramienta en caso de que el usuario
quisiera diseñar un nuevo plano sobre el que trabajar posteriormente.

4.2.3. Microsoft Visual Basic 6.0


Este proyecto ha sido desarrollado utilizando el lenguaje de programa-
ción dirigido por eventos Visual Basic en su última versión 6.0. El motivo
de la elección de este lenguaje de programación es que proporciona un en-
torno de desarrollo sencillo para la creación de aplicaciones ejecutables en
Windows.
Para el diseño de la aplicación se ha utilizado el software Micro-
soft Visual Basic 6.0, que contiene editor de texto para editar códi-
go fuente, editor de interfaces gráficas (GUI), depurador y compila-
dor.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 31

4.2.4. Winbox
Se utilizará el software Winbox de MikroTik para realizar los pri-
meros pasos del proyecto: actualización del sistema operativo RouterOS
a la última versión, comprobación del correcto funcionamiento de los
routers, configuración básica de los routers (asignación de una direc-
ción IP, nombre de usuario y contraseña). Además, esta herramienta ser-
virá como medio de aprendizaje para la gestión de los routers ya que
permite solicitar información de estos mediante una ventana de coman-
dos.

4.3. Hardware utilizado


4.3.1. RouterBoard RB411AH
Se hará uso de dos routers idénticos modelo RB411AH [17] pa-
ra ser monitorizados y ası́ probar el funcionamiento de la apli-
cación. Se trata de una RouterBoard con un procesador Athe-
ros 7161, el mismo que viene incluido en otros productos de ma-
yor gama de esta marca como es el ejemplo de la Router-
Board RB433AH, lo que hace que nuestra RouterBoard sea la
más rápida de todas las que se encuentran en el mismo ran-
go de precios del catálogo de MikroTik. Destaca por sus pe-
queñas dimensiones y una relación calidad-precio muy competiti-
va.

Además, cada RouterBoard dispone de una antena Wi-Fi omnidireccio-


nal con conector SMA(Sub-Miniature version A) 2dBi del fabricante D-Link
que permite a los clientes conectarse a la RouterBoard de forma inalámbri-
ca.

En la siguiente tabla se muestran sus principales caracterı́sticas técnicas de las RouterBoard utilizadas:

Caracterı́stica Descripción
Procesador Procesador de red Atheros AR7161 680MHz
Memoria RAM Memoria integrada 64MB DDR SDRAM
Gestor de arranque RouterBOOT
Almacenamiento de datos 64MB de memoria integrada
Puertos Ethernet Un puerto 10/100 Mbit/s Fast Ethernet
Bus para la interconexión de componentes periféricos Una ranura MiniPCI tipo IIIA/IIIB
Extras Interruptor de reinicio, localizador
Puerto serie Un puerto serie ası́ncrono DB9 RS232C
LEDs ON/OFF, 5 LEDs configurables por el usuario
Alimentación PoE: 10..28V DC. Conector de alimentación: 10..28V DC
Consumo de Potencia ≈ 3W sin tarjetas de expansión. Consumo máximo: 12 W
Sistema Operativo MikroTik RouterOS v3
Dimensiones 10.5 cm x 10.5 cm. Peso: 82 g
Rango de precios ≈ 80e

Tabla 4.1: Caracterı́sticas técnicas RB411AH


CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 32

4.4. Desarrollo de la Interfaz gráfica de Usuario


Para llevar a cabo la programación de la aplicación de escritorio se utilizará el lenguaje Visual Basic 6.0.
La Interfaz Gráfica de Usuario (GUI) consta de cinco formularios (Forms). Cada formulario representa una
ventana de la aplicación en la que se pueden insertar distintos controles que ofrece el entorno de programa-
ción. Posteriormente, se programan diferentes subrutinas que realizan las funciones necesarias. Estas subrutinas
actúan en función de eventos como pueden ser: hacer click izquierdo o derecho sobre el control, arrastrar y soltar
un control, situar el cursor encima del control etc.

Por otra parte, el proyecto contendrá un módulo (Class Modules) MD5 que se encargará de la seguridad en
el acceso al router (cifrado de contraseñas), y controles de usuario (User Controls) que son componentes que
necesitan ser programados por el usuario ya que los que incluye por defecto el entorno de programación no son
suficientes para llevar a cabo una determinada función.

Figura 4.1: Estructura del proyecto en Visual Basic

A continuación se describirán todos los formularios, módulos y controles de usuario que forman parte del
proyecto Visual Basic.

4.4.1. Formularios
Formulario de inicio
Al arrancar la aplicación se muestra una pantalla de inicio correspondiente al formulario de nombre Form Inicio
en el que se muestran dos botones (CommandButton) que permiten realizar dos acciones:

Figura 4.2: Pantalla de inicio de la aplicación

1. Comenzar un nuevo proyecto: se utiliza en el caso de que se quiera mapear los routers de la red sobre
los correspondientes planos de interiores antes de comenzar con su gestión. Este botón abre el formulario
Form Mapas.
2. Conectarse a un punto de acceso: es utilizado por el usuario en el caso de que desee monitorizar un
punto de acceso conocido sin necesidad de plasmarlo en un mapa previamente. Este botón da acceso al
formulario Form MikroTik.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 33

Formulario de mapas
Este formulario llamado Form Mapas tiene como misión la representación de los diferentes puntos de acceso
que conforman la red sobre los mapas que representan el escenario en el que se sitúan. El principal objetivo de
esta ventana es que el administrador de la red pueda tener un soporte gráfico sobre el que apoyarse en el caso
de encontrar problemas con alguno de los AP, permitiendo localizar la posición aproximada de éste.

Figura 4.3: Formulario para la representación de la red de puntos de acceso

El presente formulario incluye los siguientes componentes que se detallan a continuación:

1. Control de pestañas (SSTab): está formado por tres pestañas que sirven para organizar los mapas
aprovechando el espacio que ofrece el formulario. El usuario puede mostrar un mapa u otro desplazándose
por las diferentes pestañas.
2. Contenedores de imagen (PictureBox ): en cada pestaña se replica este control en el que se cargarán
y visualizarán los mapas.
3. Seleccionar un mapa (CommandButton): este botón se apoya en el control CommonDialog que
permite utilizar los cuadros de diálogo utilizados habitualmente (guardar archivos, cargar archivos etc.).
Al presionar el botón, se abre el explorador de archivos para seleccionar un mapa que es cargado en la
interfaz siguiendo el orden de las pestañas y, además, puede ser renombrado por el usuario. Para este
control se ha programado un filtrado de archivos, de forma que sólo se pueden cargar archivos en formatos
de imagen (*.jpg, *.bmp, *.gif, *.png, *.wmf). Como se mencionó anteriormente, se recomienda utilizar
el formato .wmf (Windows MetaFile) o similares ya que adaptan la imagen al tamaño del PictureBox sin
alterar su calidad. Los mapas se cargan
4. Añadir punto de acceso (CheckBox ): este control permite añadir los routers al mapa. Cuando se
pulsa este botón pasa a estar en la opción (Checked ). A partir de ese momento se puede hacer click sobre
cualquiera de los mapas cargados para añadir un punto de acceso.
5. Gestionar un punto de acceso (CommandButton): enlaza al formulario para la monitorización de
los puntos de acceso.
6. Puntos de acceso (UserControl ): La aplicación cuenta con un único control de usuario en el que se
ha programado el mapeado de los puntos de acceso sobre el mapa. Una vez situado un punto de aaceso
sobre el mapa haciendo uso del botón Añadir Punto de Acceso, este control permite al usuario etiquetarlo
con un alias, su dirección MAC haciendo doble click sobre el router, lo que hará aparecer una ventana
emergente para introducir dichos datos Además, permite desplazarlo por el mapa para recolocarlo en otra
posición mediante el evento Drag & Drop. Por otro lado, es posible eliminar los puntos de acceso con la
combinación de teclas Tab + click izquierdo.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 34

Formulario para la monitorización de los AP


Este formulario llamado Form MikroTik, en el que se integra la API de MikroTik, es la parte principal
de la aplicación ya que se encarga del acceso a los puntos de acceso, la obtención de información tanto de los
puntos de acceso como de los clientes, su procesado y la presentación de los resultados tanto en tablas como en
histogramas de frecuencia.

Figura 4.4: Formulario para la monitorización de la red

Este formulario se ha dividido en nueve paneles con el objetivo de mostrar los resultados de la forma más
ordenada posible. En las siguientes lı́neas se explican cada uno de los paneles con los que trabaja este formulario
y sus correspondientes controles:

1. Panel de inicio de sesión: contiene campos de texto para introducir las credenciales de acceso al
router (IP, usuario y contraseña) y botones para el inicio de sesión (Conectar ) y para finalizar sesión y
desconectarse de la red (Desconectar ).
2. Panel de estado de la conexión: muestra si la aplicación está desconectada o conectada en función
de los primeros datos ofrecidos por la API. Se mostrará el estado Desconectado cuando aún no se haya
iniciado sesión o se introduzcan de forma incorrecta las credenciales de acceso. Por otra parte, se muestra
el estado Conectado cuando la aplicación ha accedido con éxito al router.
3. Panel RouterBoard: muestra la marca y modelo del router con el que la aplicación está trabajando.
4. Panel de control de tensión: muestra la tensión suministrada al router medida en Voltios.
5. Panel de información del router: aporta información acerca del router al que la aplicación está
conectada actualmente. Muestra su dirección MAC, su IP, el SSID de la red a la que pertenece, la
frecuencia de operación (banda de 2.4 GHz), el ancho de banda de canal Wi-Fi, la interfaz por la que se
ha realizado la conexión, los protocolos 802.11 compatibles y la ganancia de la antena.
6. Panel de monitorización de los AP: dispone de un control Timer configurable manualmente por
el usuario mediante un cuadro de texto en el que puede introducir el periodo de monitorización T en
milisegundos. Al activar el temporizador con el botón Timer ON y pulsar el botón Monitorizar Red Wi-
Fi, el programa ejecuta de forma autónoma las funciones que permiten extraer los diferentes datos con
los que se está trabajando y guardarlos en un fichero de texto cada T milisegundos. Si se desea dejar de
ejecutar automáticamente estas funciones, la aplicación cuenta con el botón Timer OFF para deshabilitar
el temporizador.
7. Panel de supervisión del hardware: muestra un menú desplegable (ComboBox ) que permite mostrar
los datos asociados a los recursos del sistema que se explicaron en el segundo capı́tulo de la memoria.
Dicha información se organiza en 4 tablas (FlexGrid ) en las que se separa la información relativa a la
RouterBoard, los datos de la CPU, los datos de la memoria Flash y los de la memoria RAM, permitiendo
al usuario mostrar una u otra tabla en función de su selección en el menú.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 35

8. Panel de monitorización de la red Wi-Fi: al igual que el panel anterior dispone de un menú des-
plegable para elegir entre dos opciones. En la primera opción se muestra una sencilla tabla en la que se
enumeran los dispositivos conectados, identificándolos mediante su MAC e IP, y se hace una evaluación
de la calidad del enlace comparando el valor obtenido del RSSI con los umbrales de la Tabla 2.1. Por
último, se dispone de una segunda opción en la que, para cada dispositivo, se muestra la información que
se ha considerado más relevante de la Wireless Registration-Table y que ha sido explicada previamente
en el capı́tulo 2.
9. Panel para la gestión de archivos: permite guardar manualmente en el fichero de registro los datos
relacionados con los clientes conectados al punto de acceso a través del botón Guardar datos en registro.
Por otra parte, dispone de una opción llamada Reiniciar registro para dejar en blanco dicho registro y
comenzar a recopilar los datos desde cero.
10. Panel para mostrar las estadı́sticas de la red: contiene un botón que enlaza con el formulario
Form Estadı́sticas.

Formulario de estadı́siticas de la red


El formulario Form Estadisticas analiza los datos obtenidos en el fichero de registro y los representa haciendo
uso de dos histogramas de frecuencia como se muestra a continuaación:

Figura 4.5: Formulario para la representación de gráficos estadı́sticos

1. Conexiones de cada dispositivo a la red (MSChart): en esta gráfica se representa un recuento de


las veces que cada dispositivo, identificado por su dirección MAC, se ha conectado a cualquiera de los
puntos de acceso de la red monitorizados por la aplicación. Su utilidad es dar una idea del uso que ha
hecho de la red cada cliente durante el periodo en el que se ha extraı́do la información de la Wireless
Registration-Table.
2. Utilización de los puntos de acceso (MSChart): este histograma representa el número total de
conexiones a cada punto de acceso de la red durante el mismo periodo de tiempo que en el primer gráfico.
En este caso, podemos obtener información acerca de los AP más utilizados y, por lo tanto, las zonas que
congregan mayor número de clientes.

Formulario de instrucciones para el usuario


En el formulario Form Instrucciones se muestran de forma breve unas instrucciones para el usuario sobre
el manejo paso a paso de la aplicación. El formulario contiene un único control RichTextBox que permite
mostrar por pantalla archivos de texto enriquecido (.rtf). Sobre dicho control se carga el documento de texto
Instrucciones.rtf de forma automática al abrir el formulario.

4.4.2. Módulos de Clase


Como se aprecia en la Figura 4.1, el proyecto realizado cuenta con un módilo llamado MD5 que vale la pena
comentar ya que es el encargado de implementar el algoritmo MD5 encargado de la seguridad de la aplicación.
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 36

Seguridad en la aplicación: el agoritmo MD5


MD5 (Message-Digest Algorithm 5) [16] es un algoritmo de reducción criptográfico de 128 bits. Implementa
una función resumen o hash cuyo objetivo es crear a partir de una entrada A (textos, contraseñas, ficheros...)
una salida B alfanumérica que representa un resumen de la información que se le ha dado como entrada. La
API de MikroTik cuenta con el algoritmo MD5 implementado para la encriptación de las contraseñas a la hora
de hacer un inicio de sesión en el punto de acceso.

Al igual que todas las funciones hash, el algoritmo MD5 cumple las siguientes propiedades:
Una función hash puede tener entradas de diferente longitud (por ejemplo: contraseñas de diferente
número de caracteres) pero la función de salida siempre tendrá la misma longitud (128 bits = 32 caracteres
hexadecimales en este caso).
Para cada entrada A debe haber una salida diferente B.
Tiene que ser rápido y fácil de calcular.
No se puede obtener A a partir de B (unidireccionalidad).
Minimizar colisiones.
Como ejemplo de codificación MD5, se muestran a continuación dos palabras que sólo difieren en un caracter y
cuya codificación MD5 es totalmente diferente:

Mensaje original Mensaje codificado


Contraseña 6e7bc035c10d6d628e9067ae9b034d41
Contrasena 267f871dd7a510749222a62d52294410

Tabla 4.2: Codificación MD5

A continuación, se resume en 5 pasos el funcionamiento del algoritmo:


1. Añadir bits de relleno: se añaden bits adicionales hasta que la longitud del mensaje menos 448 sea
múltiplo de 512.
2. Añadir indicación de la longitud del mensaje: se concatena al final del resultado anterior un entero
de 64 bits que indica la longitud L del mensaje original (antes de incluir los bits adicionales). En el caso
de que el mensaje tuviese más de 264 bits, se concatenan sólo los 64 bits menos significativos.
3. Inicialización del buffer MD5: se utiliza un buffer formado de 4 registros (A, B, C y D) de 32 bits
cada uno, que se inicializan con los siguientes valores:

Registro Inicialización (hexadecimal)


A 01 23 45 67
B 89 AB CD EF
C FE DC BA 98
D 76 54 32 10

Tabla 4.3: Inicialización del buffer MD5

4. Procesado en bloques de 512 bits: se aplica un algoritmo, cuyo pseudocódigo se muestra en el Anexo
C que realiza 64 ciclos en los que va tomando bloques de 512 bits de la entrada y los mezcla realizando una
operación diferente cada 16 ciclos hasta completar los 64 ciclos. En cada ronda de 16 ciclos se combinan
las funciones lógicas que se muestran a continuación con otras operaciones:
F (B, C, D) = (B · C) + (B · C)
G(B, C, D) = (B · D) + (C · D)
H(B, C, D) = B ⊕ C ⊕ D
I(B, C, D) = C ⊕ (B + D)
CAPÍTULO 4. DISEÑO DE LA APLICACIÓN 37

5. Obtención del mensaje de salida: Finalmente se obtiene en el buffer un nuevo texto de 128 bits que
representa el texto encriptado o hash. Dicha salida está formada por las entradas A, B, C y D modificadas
tras realizar las operaciones comentadas anteriormente. La lectura de este mensaje se realiza desde los
bytes de menor peso de A hasta los bytes de mayor peso de D. En el siguiente diagrama se esquematiza
el funcionamiento del algoritmo:

Figura 4.6: Diagrama de funcionamiento del MD5

4.4.3. Registro de datos


La aplicación registra los datos relacionados con los clientes conectados a la red en archivos de texto plano.
Dicha información se carga en el fichero cuando finaliza cada periodo de monitorización. Adicionalmente, el
usuario dispone de un botón para guardar los datos de la tabla de clientes en el instante que desee sin tener en
cuenta los tiempos de monitorización.

El usuario también tiene la posibilidad de reiniciar el registro de datos, de forma que el archivo quedarı́a en
blanco, descartando todos los datos guardados hasta el momento.

El fichero sigue siempre un mismo formato, de forma que los datos se cargan por filas para cada una de las
direcciones MAC de los equipos conectados a la red. A continuación de la MAC se muestran toda la información
del cliente que se han capturado.
El fichero incluye una primera lı́nea meramente informativa que indica el orden en el que se cargan los datos.
A continuación se muestra un ejemplo del formato de dicho archivo:

1 # MAC ; RbRx ; RbTx ; PKTs ; Tact ; LastAct ; RSSI ; SNR ; CCQtx ; Throughput ; IP ; Mod #
2 B8 :64:91:68:1 C :50;58.5 Mbps -20 MHz /1 S ;58.5 Mbps -20 MHz /1 S ;1215 ,1206;37 m27s ; 1 s990ms ; -62 @1Mbps ;28
dB ; 8 6 %; 4 31 5 1; 1 92 . 16 8 .1 0 0. 25 3 ; CCK :1 -11;;
3
4 B8 :64:91:68:1 C :50;58.5 Mbps -20 MHz /1 S ;58.5 Mbps -20 MHz /1 S ;1215 ,1206;40 m27s ;3 s30ms ; -62 @1Mbps ;28 dB
; 88 % ; 43 1 51 ; 19 2 .1 6 8. 1 00 . 25 3; CCK :1 -11;

Formato del registro de datos de los clientes conectados


Resultados obtenidos
5
A modo de ejemplo y con el objetivo de poner a prueba la aplicación, se plantea una posible situación en
un entorno de interiores en la que se puede usar el software diseñado.

5.1. Caso práctico


Se plantea el análisis de una red 1 formada por dos puntos de acceso MikroTik con el objetivo de proveer
de servicio de Internet a algunos de los despachos del Departamento de Ingenierı́a de Comunicaciones ubicado
en el Edificio de Ingenierı́a de Telecomunicación Jose Luis Garcı́a Garcı́a de la Universidad de Cantabria.

En primer lugar se mapean los puntos de acceso y se identifican con los datos presentados en la Tabla 5.1:

Figura 5.1: Ubicación de los puntos de acceso sobre el mapa del edificio

Puntos de acceso
Alias AP 1 AP 2
MAC 00:0C:42:9D:07:F9 00:1D:0F:BC:40:69
IP 192.168.100.1 192.168.100.2
SSID GISAR2 GISAR2
Descripción Router pasillo entrada Router pasillo despachos

Tabla 5.1: Identificación de los puntos de acceso de la red

Seguidamente, se accede al formulario de monitorización de la red para realizar una comprobación del estado
del hardware de cada uno de los puntos de acceso para verificar su correcto funcionamiento. En la siguiente
1
Se trata de un caso de aplicación que en ningún caso corresponde con la situación actual de la red del edificio.

38
CAPÍTULO 5. RESULTADOS OBTENIDOS 39

tabla se muestran los resultados obtenidos tras consultar las diferentes opciones de las tablas de información
del Router y supervisión del hardware:

Puntos de acceso
Alias AP 1 AP 2
Interfaz wlan wlan
Ganancia antena 0 dBi 0 dBi
Frecuencia de operación 5.18 GHz 2.41 GHz
Ancho de banda del canal 20 MHz 20 MHz
Protocolos 802.11 compatibles todos todos
Tensión suministrada 19.7 V 20.8 V
RouterBoard
Plataforma MikroTik MikroTik
Modelo RB411AH RB411AH
Procesador
CPU MIPS MIPS
Frecuencia 680 MHz 680 MHz
Arquitectura mipsbe mipsbe
Memoria Flash
Espacio total 63.8 MiB 63.8 MiB
Espacio libre 45.8 MiB 21.9 MiB
Secciones escritas 243 210
Bad blocks 0% 0%
Memoria RAM
Memoria total 64 MiB 64 MiB
Memoria libre 42.9 MiB 39.3 MiB

Tabla 5.2: Información obtenida de los AP y supervisión de los recursos hardware

Para esta prueba, se ha hecho uso de cinco dispositivos identificados con las siguientes direcciones MAC:

Dispositivo MAC
1 BB:64:91:68:1C:50
2 40:BB:9A:5B:C8:8B
3 12:74:BA:39:F1:11
4 AA:AC:DF:34:E4:78
5 BB:33:58:38:C3:77

Tabla 5.3: Dispositivos de prueba utilizados

Se pretende monitorizar estos puntos de acceso con el fin de comprobar su funcionamiento, detectar fallos
y predecir la forma en la que los clientes hacen uso de la red. Para ello, se accede a través de la aplicación a
cada uno de los routers y se monitorizan los parámetros relacionados con los clientes conectados a la red Wi-Fi
en intervalos de 3 minutos para evaluar la calidad del enlace para cada uno de los dos clientes.
CAPÍTULO 5. RESULTADOS OBTENIDOS 40

Figura 5.2: Muestra de los resultados sobre la calidad de la conexión de dos


dispositivos al AP1

En las siguientes tablas se muestra la información obtenida en los ficheros que se utilizan para registrar los
resultados obtenidos a lo largo del tiempo:

Tras procesar dicha información con Matlab, se obtienen los siguientes gráficos:

En primer lugar se ha trazado un gráfico que representa la evolución del RSSI para cada dispositivo a lo
largo de una hora. Este gráfico da una idea de los niveles de señal recibidos en cada momento, que dependerán
en gran medida de la posición del cliente respecto al router y de la complejidad del entorno eficiencia con la que
se usa el ancho de banda disponible:

Figura 5.3: Evolución del RSSI durante 1h. de dos dispositivos conectados al AP1

Posteriormente se ha obtenido el RSSI medio en cada caso, obteniendo un resultado de RSSI1 = −53,9dBm
para el primer dispositivo, y RSSI2 = −42,28dBm en el segundo caso. Por lo tanto, de estos valores se extrae
la conclusión de que la calidad del enlace es muy buena en ambos casos.
Por otra parte, se ha obtenido un gráfico con la variación del CCQ( %) en función del tiempo para los dos
dispositivos que se han utilizado en la prueba. En este caso, la gráfica nos da información sobre la eficiencia
de uso del ancho de banda disponible en transmisión (se recuerda que la API sólo calcula el CCQ en transmisión).
CAPÍTULO 5. RESULTADOS OBTENIDOS 41

Figura 5.4: Evolución de la CCQ durante 1h. de dos dispositivos conectados al AP1

Como se puede observar en la gráfica, se cumple la anotación que se realizó en el segundo capı́tulo sobre
este parámetro. Como se comentó, un sólo valor del CCQ no es un resultado fiable ya que el éste tiende a
estabilizarse en su valor real a medida que pasa el tiempo y se envı́an más tramas.

En este caso, de acuerdo a la gráfica obtenida, se puede afirmar que el primer dispositivo alcanza un valor me-
dio de CCQ1 = 94,38 %. Por otro lado, para el segundo dispositivo se obtiene un valor medio de CCQ2 = 96,8 %.
Por lo tanto, se deduce que se trata de un enlace en el que ha habido gran estabilidad durante la hora en que
se ha realizado la toma de muestras.

Por otro lado, haciendo uso de la aplicación se obtienen los siguientes gráficos estadı́sticos en un hipotético
caso en el que se obtendrı́a información de la red durante dı́as:
Histograma con las MAC y el número de conexiones de cada una de ellas a la red.
Histograma que identifica los routers por sus direcciones IP e indica, teniendo en cuenta las conexiones
totales de la primera gráfica, las veces que se han conectado a cada uno de los AP.

(a) Histograma de las conexiones de cada cliente a la red (b) Histograma que diferencia el número de conexiones en
GISAR2 cada AP

Figura 5.5: Histogramas de frecuencia obtenidos

De la primera gráfica podemos saber qué dispositivos se conectan más a la red (en este caso el dispositivo
número 3).
CAPÍTULO 5. RESULTADOS OBTENIDOS 42

Analizando dichos histogramas podemos calcular las siguientes probabilidades:

EL 15.95 % de las conexiones a la red han sido del dispositivo 1.


EL 12.76 % de las conexiones a la red han sido del dispositivo 2.
EL 40,42 % de las conexiones a la red han sido del dispositivo 3.
EL 24.46 % de las conexiones a la red han sido del dispositivo 4.
EL 6.38 % de las conexiones a la red han sido del dispositivo 5.

Por otra parte, de la segunda gráfica podemos saber a qué punto de acceso ha habido más conexiones y
por lo tanto en qué zona del edificio se encuentran la mayor parte de los clientes. En este caso, el 38.3 % de
los clientes se conectaron al AP1, mientras que el 61.7 % restante se conectaron al AP2. Por lo tanto, el router
situado más cerca de los despachos es el más utilizado de la red.
Conclusiones y lı́neas futuras
6
6.1. Conclusiones
En este trabajo se ha hecho un análisis de la configuración y gestión de redes MikroTik tanto desde el punto
de vista del software de gestión Winbox, como desde el punto de vista del uso de APIs para el desarrollo de
software propio que sirva para complementar las funciones del software propietario de MikroTik.

Se ha conseguido el principal objetivo que era diseñar una aplicación personalizada, con una interfaz sencilla
y de muy fácil manejo para el usuario, la cual posee ciertas ventajas sobre el uso del software Winbox como son
el mapeado de los escenarios sobre los que se sitúa la red, la monitorización cada ciertos intervalos de tiempo
configurados por el usuario de las tablas de registro de clientes, la filtración y obtención de datos de forma
ordenada mediante el uso de tablas frente al formato del código API con el que ésta muestra los datos de salida,
el almacenamiento de dicha información en ficheros y su posterior procesado para obtener gráficos estadı́sticos
de los que no dispone Winbox.

Además, se trata de un software con diversas lı́neas futuras de mejora en cuanto a la gestión de la red
dado que desde la API se puede obtener una gran cantidad de información adicional que resulta interesante de
analizar y que no se ha tratado en este proyecto.

Por otra parte, existen posibles mejoras relacionadas con la implantación de nuevas funcionalidades que
mejoren la experiencia del usuario como la inclusión de mapas de cobertura integrando en la aplicación herra-
mientas software para este fin.

En resumen, se ha conseguido desarrollar una aplicación que aprovecha el potencial de la API de MikroTik,
aportando resultados diferentes, ası́ como un proyecto con multitud de opciones para continuar con su desarrollo.

6.2. Lı́neas futuras


Una vez finalizada la aplicación y extraı́das las correspondientes conclusiones, se proponen posibles lı́neas
futuras para la realización de proyectos relacionados:

Permitir guardar y cargar proyectos: una primera mejora de gran interés para la aplicación serı́a incluir
las opciones de guardar y cargar un proyecto de forma que el administrador pueda guardar los escenarios
que contienen los puntos de acceso de su red mapeados y etiquetados y volverlos a cargar al formulario
de mapas de la aplicación en cualquier momento.
Monitorización simultanea de varios puntos de acceso: otra de las principales mejoras a tener en cuen-
ta consistirı́a en que el usuario pudiera monitorizar simultáneamente todos los routers de la red que pre-
viamente han sido mapeados. Una posible forma para realizarlo, partiendo de la condición de que la API
solo permite estar conectado a un AP a la vez, serı́a automatizar las conexiones a las diferentes IP cada
un cierto periodo de tiempo, de forma que en una misma sesión se puedan obtener datos de toda la red.
Integración de Cindoor: hasta ahora, el formulario de la interfaz que permitı́a al usuario cargar mapas de
los escenarios en los que estaba ubicada la red, sólo ofrecı́a información descriptiva acerca de la ubicación
de los puntos de acceso y parámetros como la dirección MAC que los identificaban, con el fin de poder

43
CAPÍTULO 6. CONCLUSIONES Y LÍNEAS FUTURAS 44

localizar dentro de la red el punto de acceso del que se están obteniendo los datos.

Se propone integrar algunas de las funcionalidades básicas de la herramienta Cindoor [20] para realizar
sobre los mapas análisis de cobertura, con el objetivo de aportar información complementaria a la extraı́da
de la monitorización de los puntos de acceso y ası́ disponer de más criterios a la hora de valorar los
resultados obtenidos
Permitir la monitorización de equipos de diferentes fabricantes: como se explicó en la introducción y
en el capı́tulo 3 de esta memoria, el protocolo SNMP es áltamente compatible con la mayorı́a de puntos de
acceso de diferentes fabricantes. A pesar de que desde la API de MikroTik se pueden obtener parámetros
de la base de datos MIB del protocolo SNMP, ésta API solamente permite gestionar puntos de acceso del
propio fabricante.

Se propone la realización de una aplicación similar a partir de una API basada en el protocolo SNMP que
permita conectarse a puntos de acceso de múltiples fabricantes con la finalidad de gestionar redes más
heterogéneas.
Ubicación en el mapa de los clientes conectados: como se explicó en el capı́tulo 2, el parámetro RSSI
puede ser utilizado para localizar a los clientes conectados a la red. Aprovechando la información sobre
dicho valor de potencia que se puede extraer de la presente aplicación, se propone hacer uso de la técnica
de triangulación que está relacionada con el RSSI para obtener la distancia a la que se encuentran los
clientes y la posición aproximada de éstos.
Desarrollo de una versión compatible con Android: otra opción interesante serı́a que la estación que se
encarga de monitorizar la red fuese un smartphone, lo que permitirı́a al administrador acceder a la red
desde diferentes ubicaciones. Para ello serı́a necesario implementar en Android una aplicación similar a
ésta
Bibliografı́a

[1] Antoni Barba Martı́, Gestión de Red, primera edición, Terrasa, Barcelona, 1999.
[2] Carlos M. Rodrı́guez Bucarelly, Pablo A. Rodrı́guez Bucarelly, Visual Basic 6.0 Orientado a
Bases de Datos, 2da. Edición, Grupo Experto Bucarelly, 2005-2008.
[3] T. Saydam y Magedanz T., Redes, gestión de redes y servicio de administración, Diario de Redes y
Sistemas de Gestión, Vol. 4, No. 4 (Dic 1996).
[4] William Stallings, SNMP and SNMPv2: The Infrastructure for Network Management, IEEE Commu-
nications Magazine, March 1998.
[5] abc Xperts, network Xperts, academy Xperts, Conceptos Fundamentales de MikroTik RouterOS
v6.35.1.01.
[6] W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Addison Wesley, UNIX Network
Programming Volume 1, 3rd Edition: The Sockets Networking API, 2003.
[7] Manual API disponible en la Wiki de Mikrotik, (https://wiki.mikrotik.com/wiki/Manual:API)
[8] Sitio web de MikroTik User Meeting, (https://mum.mikrotik.com/)
[9] Dr. Mark Humphrys Network Sockets, (http://computing.dcu.ie/~humphrys/Notes/Networks/
sockets.html), , School of Computing, Dublin City University.
[10] José Moreno, Marta Domingo, Luis Valle, Jesús R. Pérez, Rafael P. Torres and José
Basterrechea, An Approach for the Design of Infrastructure Mode Indoor WLAN Based on Ray Tracing
and a Binary Optimizer, IEEE Antennas and Propagation Magazine, 2015, Vol. 57, No. 6, 22 - 33, December
2015
[11] Ivaylo Haratcherev, Jacco Taal, Koen Langendoen, Reginald Lagendijk, Henk Sips, Auto-
matic IEEE 802.11 Rate Control for Streaming Applications, Faculty of Electrical Engineering, Mathema-
tics, and Computer Science, Delft University of Technology, June 2005
[12] Oguejiofor, O., Okorogu, V., Abe, A., & BO, O., Outdoor Localization System Using RSSI Mea-
surement of Wireless Sensor Network, International Journal of Innovative Technology and Exploring En-
gineering (IJITEE), 2(2), 1–6, (2013)
[13] OnkarPathak, Pratik Palaskar, Rajesh Palkar, Mayur Tawar, Wi-Fi Indoor Positioning System
Based on RSSI Measurements from Wi-Fi Access Points –A Tri-lateration Approach, International Journal
of Scientific & Engineering Research, Volume 5, Issue 4, April-2014
[14] Internet Engineering Task Force (IETF), K. McCloghrie, M. Rose, Management Information Base for
Network Management of TCP/IP-based internets, (https://tools.ietf.org/html/rfc1066)
[15] Colegio Oficial Ingenieros de Telecomunicación (COIT), J. Manuel Huidobro, SNMP. Un protocolo
simple de gestión, (https://www.coit.es/publicac/publbit/bit102/quees.htm)
[16] Internet Engineering Task Force (IETF), R. Rivest, The MD5 Message-Digest Algorithm, (http://www.
ietf.org/rfc/rfc1321.txt)
[17] MikroTik products, RouterBOARD 411 Quick Setup Guide & Brochure, (https://mikrotik.com/
product/RB411AH)

45
BIBLIOGRAFÍA 46

[18] MikroTik RouterBoard manuales, RouterBOARD 411 User’s Manual, (https://i.mt.lv/routerboard/


files/rb411ugA.pdf)
[19] Marı́a Dolores Molina González, II. Gestión de Red en Internet, Gestión de Redes, Universidad de
Jaén, (http://www4.ujaen.es/~mdmolina/grr/Presenta.pdf)
[20] R. P. Torres, L. Valle, M. Domingo, S. Loredo, and M. C. Diez, CINDOOR: An Engineering-
Tool for Planning and Design of Wireless Systems in Enclosed Spaces, IEEE Antennas and Propagation
Magazine, Vol. 41, No. 4, August 1999.
ANEXOS
Anexo I: Funciones para la comprobación del Login y la supervisión
de la tensión suministrada

1 Private Sub b tn C o n n e c t _ C l i c k ()
2 bErr = False
3 ws . Protocol = sckT CPProtoc ol
4 MyState = CONNECTING
5 Out " ( Connecting ) "
6 ws . Connect txtIP . text , 8728
7
8 Dim i As Integer
9 Dim k As Integer
10 Dim mArray () As String
11 Dim sString As String
12 mArray = Split ( txtOut . text , vbCrLf )
13
14 For i = 0 To UBound ( mArray )
15 sString = mArray ( i )
16 If Mid ( sString , 4 , 14) = " message = cannot " Then
17
18 MsgBox " Detectado "
19 O pti on_ C o n n e c t e d . Visible = False
20 O pti on_ C o n n e c t e d . Value = False
21 O p t i on _ D i s c o n n e c t e d . Visible = True
22 O p t i on _ D i s c o n n e c t e d . Value = True
23 Else
24 O pti on_ C o n n e c t e d . Visible = True
25 O pti on_ C o n n e c t e d . Value = True
26 O p t i on _ D i s c o n n e c t e d . Visible = False
27 O p t i on _ D i s c o n n e c t e d . Value = False
28 End If
29
30 Next i
31 End Sub
32
33 ---------------------------------------------------------------------
34
35 Private Sub M o s t r a r _ T e n s i o n _ C l i c k ()
36
37 txtCommand . text = " / system / health / print "
38 btnSend_Click
39
40 Dim i As Integer
41 Dim j , k As Integer
42 Dim Bloques_Array () As String
43 Bloques_Array = Split ( txtOut . text , " << EOS > > " ) ’Divido el texto en bloques
44 Dim sString , sString2 As String
45 Dim mArray2 () As String
46 Dim V_Texto As String
47 Dim V_dV As Double
48 Dim V_Voltios As Double
49
50 For i = 0 To UBound ( mArray )
51 sString = mArray ( i )
52 mArray2 = Split ( mArray ( i ) , vbCrLf )
53 For k = 0 To UBound ( mArray2 )
54 sString2 = mArray2 ( k )
55 If Mid ( sString2 , 4 , 8) = " voltage = " Then
56 j = InStrRev ( sString2 , " = " )
57 V_Texto = Mid ( sString2 , j + 1) & " dV "
58 V_dV = Val ( Replace ( V_Texto , " ," , " . " ) )
59 V_Voltios = V_dV / 10
60 Tension . text = V_Voltios & " V "
61
62 Tension . ForeColor = & HFF00 &
63 End If
64 Next k
65 Next i
66 End Sub
Anexo II: Código para la selección e importación de mapas

1 Private Sub I m p o r t a r _ M a p a _ C l i c k ()
2
3 Dim RutaMapa1 , RutaMapa2 , RutaMapa3 , RutaImagen As String
4 Dim AliasMapa As String
5
6 With CommonDialog1
7 . DialogTitle = " SELECCIONE UN MAPA "
8 . Filter = " Imagenes (*. jpg , *. bmp , *. gif , *. png , *. wmf ) |*. jpg ; *. bmp ; *. gif ; *. png ; *.
wmf | "
9 . ShowOpen
10 End With
11
12 If CommonDialog1 . FileName <> " " Then
13
14 If Mapa1 . Picture = 0 Then
15 Mapa1 . Picture = LoadPicture ( CommonDialog1 . FileName )
16 RutaMapa1 = CommonDialog1 . FileName
17 AliasMapa = InputBox ( " Escriba un nombre identificativo para este plano " , " Asignar un
nombre al plano " )
18 SSTab1 . Caption = AliasMapa
19 ElseIf Mapa2 . Picture = 0 Then
20 Mapa2 . Picture = LoadPicture ( CommonDialog1 . FileName )
21 RutaMapa2 = CommonDialog1 . FileName
22 SSTab1 . Caption = CommonDialog1 . FileTitle
23 ElseIf Mapa3 . Picture = 0 Then
24 Mapa3 . Picture = LoadPicture ( CommonDialog1 . FileName )
25 RutaMapa3 = CommonDialog1 . FileName
26 SSTab1 . Caption = CommonDialog1 . FileTitle
27 End If
28
29 Else
30 MsgBox " No ha seleccionado ninguna imagen "
31 RutaImagen = " "
32 End If
33
34 End Sub
Anexo III: Código para la obtención de datos de los clientes conec-
tados

1 Private Sub GetData_Click ()


2 Grid1 . Visible = True
3 Grid1 . Clear
4 Grid1 . TextMatrix (0 , 0) = " Parametro "
5 Grid1 . TextMatrix (0 , 1) = " Valor actual "
6 Dim i As Integer
7 Dim j , k As Integer
8 Dim mArray () As String
9 mArray = Split ( txtOut . text , " << EOS > > " )
10 Dim sString , sString2 As String
11 Dim mArray2 () As String
12 Dim Rowcounter As Integer
13 Rowcounter = 0
14
15 Grid1 . Rows = 100
16
17 For i = 0 To UBound ( mArray )
18 sString = mArray ( i )
19 mArray2 = Split ( mArray ( i ) , vbCrLf )
20 For k = 0 To UBound ( mArray2 )
21 sString2 = mArray2 ( k )
22 If Mid ( sString2 , 4 , 4) = " mac - " Then
23 Rowcounter = Rowcounter + 1
24 j = InStrRev ( sString2 , " = " )
25 Grid1 . TextMatrix ( Rowcounter , 0) = " Direccion MAC "
26 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
27 End If
28
29 If Mid ( sString2 , 4 , 4) = " rx - r " Then
30 Rowcounter = Rowcounter + 1
31 j = InStrRev ( sString2 , " = " )
32 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
33 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
34 End If
35
36 If Mid ( sString2 , 4 , 4) = " tx - r " Then
37 Rowcounter = Rowcounter + 1
38 j = InStrRev ( sString2 , " = " )
39 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
40 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
41 End If
42
43 If Mid ( sString2 , 4 , 4) = " pack " Then
44 Rowcounter = Rowcounter + 1
45 j = InStrRev ( sString2 , " = " )
46 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
47 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
48 End If
49
50 If Mid ( sString2 , 4 , 4) = " upti " Then
51 Rowcounter = Rowcounter + 1
52 j = InStrRev ( sString2 , " = " )
53 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
54 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
55 End If
56
57 If Mid ( sString2 , 4 , 4) = " last " Then
58 Rowcounter = Rowcounter + 1
59 j = InStrRev ( sString2 , " = " )
60 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
61 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
62 End If
63
64 If Mid ( sString2 , 4 , 16) = " signal - strength = " Then
65 Rowcounter = Rowcounter + 1
66 j = InStrRev ( sString2 , " = " )
67 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
68 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
69 End If
70
71 If Mid ( sString2 , 4 , 8) = " signal - t " Then
72 Rowcounter = Rowcounter + 1
73 j = InStrRev ( sString2 , " = " )
74 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
75 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
76 End If
77
78 If Mid ( sString2 , 4 , 16) = " signal - strength - " Then
79 Rowcounter = Rowcounter + 1
80 j = InStrRev ( sString2 , " = " )
81 Grid1 . TextMatrix ( Rowcounter , 0) = Mid ( sString2 , 4 , j - 4)
82 Grid1 . TextMatrix ( Rowcounter , 1) = Mid ( sString2 , j + 1)
83 End If
84 Next k
85
86 Next i
87 Grid1 . ColAlignment (1) = 2
88 End Sub
Anexo IV: Código para la escritura de datos en el fichero de registro

1
2
3 Private Sub Sa v e_ Da ta _ Cl ic k ()
4
5 Dim ret As Boolean
6
7 ’ Le envia el control MsFlexgrid, el path del archivo txt y el delimitador
8 ret = E xportar_ Datos ( Grid1 , " C :\ Documents and Settings \ Administrador \ Escritorio \ TFG \
Registros \ Registr o_Datos . txt " , Chr (59) )
9
10 If ret Then
11 MsgBox " Table exported ! " , vbInformation
12 End If
13 End Sub
14
15 Private Sub Exportar_ Datos ( MSFlexGrid As Object , Path_Txt As String , Delimitador As Variant )
As Boolean
16
17 On Error GoTo Funcion_Error
18 Dim Fila , Columna As Integer
19 Dim Free_File As Integer
20
21 ’ Numero de archivo libre para crear el archivo de texto
22 Free_File = FreeFile
23 ’ Abre y crea el archivo
24 Open Path_Txt For Output As # Free_File
25
26 Print # Free_File , " # MAC ; RbRx ; RbTx ; PKTs ; Tact ; LastAct ; RSSI ; SNR ; CCQtx ; Throughput ; IP
; Mod # "
27
28 ’ Recorre las filas del Flexgrid
29 Grid1 . Col = 1
30 For Fila = 1 To Grid1 . Rows - 1
31 Grid1 . Row = Fila ’Empiezo en la fila 1
32
33 ’ Recorre las columnas, solo las de la derecha (columna 1) para coger solo los valores
34 For Columna = 1 To Grid1 . Cols - 1
35 If Columna >= 1 Then
36 Print # Free_File , Grid1 . text & Delimitador ;
37 End If
38
39 If Fila Mod 14 = 0 Then ’Cada 14 parametros es un nuevo dispositivo
40 Print # Free_File , vbNewLine ’salto de linea
41 End If
42 Next
43 Next
44
45 Close
46 Expor tar_Dat os = True
47
48 ’ Fin
49 Exit Function
50
51 ’ error
52 Funcion_Error :
53 Close # Free_File
54 MsgBox Err . Description , vbCritical
55 End Function
Anexo V: Código para la monitorización de las funciones

1 Private Sub Timer1_Timer ()


2 Dim t , T_ms , T2 As Single
3 Timer1 . Interval = Val ( T _ m o n i t o r i z a c i o n . text )
4 M o n i t o r i z a r _ R e d _ C l i c k ’Los muestra en la tabla cada periodo T
5 S ave_ Dat a_Cl ick ’Los guarda en el fichero
6 End Sub
7
8 Private Sub A c t i v a r _ T i m e r _ C l i c k ()
9 Timer1 . Enabled = True
10 Timer1_Timer
11 End Sub
12
13 Private Sub D e s a c t i v a r _ T i m e r _ C l i c k ()
14 Timer1 . Enabled = False
15 End Sub
16
17 Private Sub M o n i t o r i z a r _ R e d _ C l i c k ()
18 txtCommand . text = " / interface / wireless / registration - table / print "
19 btnSend_Click
20 GetData_Click
21
22 txtCommand . text = " / system / resource / print "
23 btnSend_Click
24
25 txtCommand . text = " / system / health / print "
26 btnSend_Click
27
28 End Sub
Anexo VI: Pseudocódigo de la función hash MD5

1 /* Se repite el proceso para cada bloque de 16 palabras (512 bits ) */


2 For i = 0 to N /16 -1 do
3 /* Copiar bloque i en X . */
4 For j = 0 to 15 do
5 Set X [ j ] to M [ i *16+ j ].
6 end /* of loop on j */
7 /* Se guarda una copia de los registros A , B , C y D . */
8 AA = A
9 BB = B
10 CC = C
11 DD = D
12
13 /* Primera ronda . */
14 /* Let [ abcd k s i ] denote the operation
15 a = b + (( a + F (b ,c , d ) + X [ k ] + T [ i ]) <<< s ) . */
16 /* Hacer las siguientes operaciones de concatenacion . */
17 [ ABCD 0 7 1] [ DABC 1 12 2] [ CDAB 2 17 3] [ BCDA 3 22 4]
18 [ ABCD 4 7 5] [ DABC 5 12 6] [ CDAB 6 17 7] [ BCDA 7 22 8]
19 [ ABCD 8 7 9] [ DABC 9 12 10] [ CDAB 10 17 11] [ BCDA 11 22 12]
20 [ ABCD 12 7 13] [ DABC 13 12 14] [ CDAB 14 17 15] [ BCDA 15 22 16]
21
22 /* Segunda ronda . */
23 /* Let [ abcd k s i ] denote the operation
24 a = b + (( a + G (b ,c , d ) + X [ k ] + T [ i ]) <<< s ) . */
25 /* Do the following 16 operations . */
26 [ ABCD 1 5 17] [ DABC 6 9 18] [ CDAB 11 14 19] [ BCDA 0 20 20]
27 [ ABCD 5 5 21] [ DABC 10 9 22] [ CDAB 15 14 23] [ BCDA 4 20 24]
28 [ ABCD 9 5 25] [ DABC 14 9 26] [ CDAB 3 14 27] [ BCDA 8 20 28]
29 [ ABCD 13 5 29] [ DABC 2 9 30] [ CDAB 7 14 31] [ BCDA 12 20 32]
30
31 /* Tercera ronda . */
32 /* Let [ abcd k s t ] denote the operation
33 a = b + (( a + H (b ,c , d ) + X [ k ] + T [ i ]) <<< s ) . */
34 /* Do the following 16 operations . */
35 [ ABCD 5 4 33] [ DABC 8 11 34] [ CDAB 11 16 35] [ BCDA 14 23 36]
36 [ ABCD 1 4 37] [ DABC 4 11 38] [ CDAB 7 16 39] [ BCDA 10 23 40]
37 [ ABCD 13 4 41] [ DABC 0 11 42] [ CDAB 3 16 43] [ BCDA 6 23 44]
38 [ ABCD 9 4 45] [ DABC 12 11 46] [ CDAB 15 16 47] [ BCDA 2 23 48]
39
40 /* Cuarta ronda */
41 /* Let [ abcd k s t ] denote the operation
42 a = b + (( a + I (b ,c , d ) + X [ k ] + T [ i ]) <<< s ) . */
43 /* Do the following 16 operations . */
44 [ ABCD 0 6 49] [ DABC 7 10 50] [ CDAB 14 15 51] [ BCDA 5 21 52]
45 [ ABCD 12 6 53] [ DABC 3 10 54] [ CDAB 10 15 55] [ BCDA 1 21 56]
46 [ ABCD 8 6 57] [ DABC 15 10 58] [ CDAB 6 15 59] [ BCDA 13 21 60]
47 [ ABCD 4 6 61] [ DABC 11 10 62] [ CDAB 2 15 63] [ BCDA 9 21 64]
48
49 /* Realizar las siguientes operaciones sobre la copia de los registros originales */
50 A = A + AA
51 B = B + BB
52 C = C + CC
53 D = D + DD
54 end /* of loop on i */

Anda mungkin juga menyukai