Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INDUSTRIALES Y DE TELECOMUNICACIÓN
UNIVERSIDAD DE CANTABRIA
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
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.
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
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
5. Resultados obtenidos 38
5.1. Caso práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
III
ÍNDICE DE FIGURAS IV
V
Lista de acrónimos
AP Access Point
IP Internet Protocol
MD Managed Device
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.”
1
CAPÍTULO 1. INTRODUCCIÓN 2
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.
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 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.
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.
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]
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
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.
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
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:
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.
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).
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
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.
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:
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]:
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.
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:
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:
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:
donde:
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:
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:
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
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.
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).
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.
(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...).
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:
A la vista del diagrama anterior, el funcionamiento de Winsock se divide en las siguientes funciones [9]:
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
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
(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
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.
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.
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.
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
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.
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.
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.
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).
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.
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
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.
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
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.
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:
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.
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):
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.
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
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
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.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.
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
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.
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:
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.
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
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.
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:
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:
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;
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
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
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
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
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
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
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.
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
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
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