¿Qué es Bandwidth Monitor?
==========================
Introducción
------------
.. sidebar:: Para más información...
Accede a la página de producto de
`Bandwidth Monitor `_.
**Bandwidth Monitor** es un software complementario a **WOCU-Monitoring**,
específico para la medición de ancho de banda en entornos de red complejos,
que comprueba la calidad de transimisión en diferentes flujos de conexión
desde un servidor centralizado y varias sondas remotas desatendidas.
**Bandwidth Monitor** simplifica la supervisión de todo el tráfico de red y
la cantidad de datos transferidos, permitiendo certificar anchos de banda
acordados para distintas sedes remotas y generar informes con los resultados
obtenidos.
Medir el uso del ancho de banda es clave para mejorar la gestión de la red.
Es por ello que se recomienda la supervisión del tráfico de punto a punto,
como fase previa a la monitorización de redes con **WOCU-Monitoring**.
Con esta unión se potencian las capacidades y beneficios de ambas soluciones,
ofreciendo una visión general e integral de los flujos y operatividad de su
entorno de red.
.. image:: ../images/complements/8_005_login.png
:align: center
:scale: 60%
**Funcionalidades principales**
------------------------
**✓ Arquitectura distribuida**
Las pruebas de tráfico se realizan entre un **servidor central** con una
ubicación fija y dirección IP conocida y varios **dispositivos cliente**,
portables y reutilizables para pruebas en distintas ubicaciones.
**✓ Instalación desatendida**
La instalación de la sonda es **desatendida**, obtiene una dirección de red
automáticamente con conectividad al servidor central y ejecuta el software
configurado.
**✓ Identificación de dispositivos remotos**
Los dispositivos cliente tienen un número de serie visible en la caja del
dispositivo. Dicho número de serie se utiliza para identificar el
dispositivo en el interfaz de usuario.
**✓ API REST**
Se provee de un API Rest para consultar información relativa a las
pruebas realizadas. De este modo facilitamos la **integración de cualquier
herramienta** que quiera consumir los informes generados.
**✓ Entornos complejos y detección de fallos**
Pruebas de medición de ancho de banda en **entornos complejos**,
utilizando diferentes flujos de conexión para inundar los posibles caminos
y detectando fallos potenciales y bucles en la red.
**✓ Interfaz para las pruebas**
Toda la operativa de usuario para realizar los tests se realiza mediante
una **aplicación web** que sirve el servidor central. No es necesario
conectarse a los dispositivos cliente.
Protocolo TCP y UDP
-------------------
**Bandwidth Monitor** realiza pruebas de ancho de banda utilizando
tanto protocolo **TCP** como protocolo **UDP**. Este último, especialmente
interesantes puesto que permiten obtener valores de *jitter* y
de paquetes perdidos (a diferencia de TCP).
La principal diferencia entre TCP y UDP, es que la primera utiliza procesos
para verificar el correcto envío de paquetes al receptor, mientras
que con UDP los paquetes son enviados sin comprobación alguna, pero con la
ventaja de ser más veloz.
.. Cuando **Bandwidth Monitor** realiza pruebas sobre UDP, es posible que el
informe no pueda generarse obteniendo el error: ``Packets out of order``.
Esto es debido al comportamiento intrínseco del protocolo, el cual no
garantiza, ni la entrega de todos los paquetes, ni el orden en la recepción de
los mismos. Tampoco la entrega ordenada cuando los datos se envían y se reciben
localmente.
La actuación en estos casos de **Bandwidth Monitor** es mostrar un mensaje de
error, preferible a proveer un informe potencialmente falso. El operador
puede ante esta situación volver a repetir el informe o utilizar el protocolo
TCP que sí garantiza la entrega de paquetes en orden (asumiendo las
limitaciones de las pruebas sobre TCP en las que no se obtienen valores
de *jitter* y/o pérdida de paquetes).
En cualquier caso, si se obtiene el error ``Packets out of order`` de manera
continuada, suele ser un indicador de la existencia de varios routers
intermedios, o una deficiente configuración de red en el camino de los paquetes
que atraviesan la prueba.
Si realizar pruebas por TCP no fuera posible por la necesidad de tener los
valores de *jitter* y latencia, se recomienda el uso a posteriori de la
herramienta `WOCU-Monitoring `_,
la cual soporta la monitorización y supervisión de estos parámetros de una
vasta variedad de dispositivos de red.
Arquitectura
------------
Las pruebas de tráfico se realizan entre:
* Un **servidor central** con una ubicación fija y dirección IP conocida.
* Varios **dispositivos cliente**, portables y reutilizables para pruebas
en distintas ubicaciones.
.. image:: ../images/complements/8_004_architecture.png
:align: center
:scale: 45%
Instalación de dispositivo cliente
----------------------------------
* **Es desatendida**, se obtiene una dirección de red
automáticamente con conectividad al servidor central y ejecuta el software
configurado.
* Los dispositivos cliente tienen un número de serie visible en la caja del
dispositivo. Dicho número de serie se utiliza para
**identificar el dispositivo en el interfaz de usuario**.
* Toda la operativa de usuario para realizar los tests se efectúa mediante
una **aplicación web que sirve el servidor central**, no es necesario
conectarse a los dispositivos cliente.
Flujo y operativa
^^^^^^^^^^^^^^^^^
* Los dispositivos cliente envían una señal ``keep-alive`` cada *N* segundos
al servidor central.
* El servidor central mantiene una tabla con los dispositivos conectados en
cada momento.
* Las pruebas se realizan únicamente contra dispositivos inventariados y
conectados.
* Los dispositivos inventariados pero desconectados se muestran a modo
histórico.
.. image:: ../images/complements/8_001_architecture.png
:align: center
:scale: 40%
* El servidor central planifica los trabajos almacenándolos en un *backend*
accesible por los dispositivos cliente.
* Cada dispositivo cliente busca una cola de mensajes con el nombre igual a
su identificador en el *backend* de trabajos.
* El servidor central obtiene los resultados del propio *backend* cuando los
*workers* han terminado su ejecución.
.. image:: ../images/complements/8_002_architecture.png
:align: center
:scale: 40%
Componentes
-----------
En la zona superior del interfaz está disponible el menú principal que
permanecerá accesible durante la navegación del usuario
a través de los diferentes módulos de la aplicación.
.. image:: ../images/complements/8_006_main_menu.png
:align: center
Login
^^^^^
Acceso a la herramienta a través del portal web.
El primer paso para operar con la herramienta es ingresar el nombre de usuario
(*username*) y contraseña (*password*). A continuación, haga clic en el botón
:guilabel:`Log in` para acceder a **Bandwidth Monitor**.
.. note::
Contacta con tu administrador para que configure nuevos usuarios en
la plataforma.
.. image:: ../images/complements/8_005_login.png
:align: center
:scale: 60%
Devices
^^^^^^^
.. image:: ../images/complements/8_007_devices_tab.png
:align: center
Detección e inventariado de dispositivos cliente.
Los dispositivos conectados aparecen por primera vez en la tabla
**Discovered Devices** y los ya inventariados y gestionados en la aplicación
en la tabla **Inventory Devices**.
.. image:: ../images/complements/8_008_inventories.png
:align: center
Además, se comprueba la compatibilidad de versiones con los dispositivos.
Si queremos ejecutar mediciones de ancho de banda utilizando el
generador descubierto, es necesario inventariar el mismo pinchando en el
atributo ``Inventory``.
.. image:: ../images/complements/8_009_inventory_check.png
:align: center
Responsibles
^^^^^^^^^^^^
.. image:: ../images/complements/8_010_responsibles_tab.png
:align: center
Espacio destinado al conjunto de usuarios asociados a los dispositivos
gestionados.
Los dispositivos se pueden asignar a un responsable con un
número de contacto.
.. image:: ../images/complements/8_011_responsibles_entry.png
:align: center
Locations
^^^^^^^^^
.. image:: ../images/complements/8_012_locations_tab.png
:align: center
Listado de ubicaciones asociadas a las pruebas de tráfico implementadas.
Las pruebas de medición van siempre asociadas a una ubicación, ya que los
generadores son móviles y pueden utilizarse para obtener mediciones en
distintas ubicaciones.
.. image:: ../images/complements/8_013_locations_entry.png
:align: center
Las ubicaciones pueden añadirse manualmente una por una o copiando un fichero
CSV en un formulario.
.. image:: ../images/complements/8_014_add_locations.png
:align: center
Job cases
^^^^^^^^^
.. image:: ../images/complements/8_015_jobcases_tab.png
:align: center
Un **Job Case** es una definición de los parámetros de una prueba de medición.
Son plantillas pueden ser reutilizada en cualquier trabajo.
El sistema, por defecto, solo permite definir **Job Cases** por usuarios
**Administradores**.
En la parametrización de pruebas de tráfico se pueden especificar
los siguientes campos:
.. image:: ../images/complements/8_016_jobcases_form.png
:align: center
* **Name**: nombre de la prueba de medición.
* **Description**: información complementaria de la prueba.
* **Test time**: duración de la prueba. Hay que tener en cuenta que si
se especifican varios flujos de tráfico, se utilizará la mitad del tiempo
para un flujo y la otra mitad para el otro.
* **Sample rate**: se obtendrán resultados agrupados por el intervalo de
tiempo definido.
* **Buffer size**: tamaño del buffer utilizado para las mediciones.
En TCP está limitado a ``1024KB`` como máximo, mientras que en UDP está
limitado a ``63KB``.
**Instance definition**
Se pueden definir *N* instancias por cada prueba de medición.
Los parámetros de cada instancia son:
.. image:: ../images/complements/8_017_jobcases_instances.png
:align: center
* **Server ports y Client ports**: puertos utilizados para la medición.
Deberán configurarse al menos tantos puertos como instancias se definan.
* **Protocol**: TCP o UDP.
* **Flow**: Upstream (del servidor al cliente) y Downstream (del cliente al
servidor).
* **Max Speed**: máximo ancho de banda de cada instancia.
* **Number of threads**: multiplicador de instancias, útil si se quieren
lanzar *N* instancias iguales.
Jobs
^^^^
.. image:: ../images/complements/8_018_job_tab.png
:align: center
Epicentro para la ejecución de pruebas de tráfico y visualización de resultados.
Se observan las pruebas ya finalizadas y las que se encuentran actualmente en
ejecución.
Para lanzar una prueba de medición de ancho de banda, es necesario especificar
los siguientes parámetros:
.. image:: ../images/complements/8_019_job_form.png
:align: center
* **Job name**: nombre descriptivo para la prueba
* **Remote Device**: Dispositivo remoto utilizado para la prueba
* **Job Case**: plantilla con la configuración a utilizar para la prueba
* **Job Location**: ubicación asociada a la prueba
A continuación, se genera un informe de resultados por cada prueba finalizada.
Para conocer sus detablles accione sobre el botón :guilabel:`Report`.
Además, se puede crear otra prueba idéntica utilizando el botón
:guilabel:`Rerun`.
.. image:: ../images/complements/8_020_job_table.png
:align: center
Gestión de Informes
^^^^^^^^^^^^^^^^^^^
Los informes son una herramienta muy eficaz que permite analizar de una manera
sencilla y organizada información a través de una configuración
fácil y adaptable.
Los resultados se presenta de forma gráfica mediante gráficas de líneas:
ancho de banda total, ancho de banda media por flujo y ancho de banda de
cada flujo. Y pueden ser exportados en formato PDF y generar un resultado en
plano (RAW).
A modo de ejemplo, se muestra la siguiente información técnica de la prueba:
.. image:: ../images/complements/8_020_report.png
:align: center
:scale: 80 %
* Fecha en la que se realizó la prueba.
* Ubicación sobre la que se realizó la prueba.
* Dispositivo remoto utilizado para la prueba.
* Responsable o persona de contacto de la prueba.
* Tipo de prueba realizada.
* Direccionamiento IP.
Por otro lado, se detallan flujos **Upstream** y **Downstream**: protocolo,
puertos utilizados, porcentaje de uso por flujo, ancho de banda por flujo.
.. image:: ../images/complements/8_021_report_table.png
:align: center
:scale: 80 %
Gráfica obtenida para una prueba con *8* flujos TCP con ``1.278 Gbps`` de
tráfico máximo:
.. image:: ../images/complements/8_022_report_TCP_detail.png
:align: center
:scale: 80 %
* Ancho de banda total
* Ancho de banda medio de los flujos
* Ancho de banda de cada flujo
Información relativa a problemas de transmisión en UDP:
.. image:: ../images/complements/8_023_report_UPD_detail.png
:align: center
:scale: 80 %
* Flujos UP & DOWN
* Jitter
* Paquetes perdidos
* % de pérdidas
Integraciones
-------------
**Bandwidth Monitor** provee de un API Rest a la que puede consultarse
información relativa a las pruebas realizadas.
De este modo, puede integrarse con cualquier herramienta que consuma la
información servida por dicho API.
Actualmente, puede consultarse la siguiente información:
* Informes por sede.
* Informes por dispositivo.
* Cualquier objeto del modelo de datos (dispositivos inventariados, job cases,
trabajos realizados, informes, etc.).
Operación
---------
Instalación de las sondas
^^^^^^^^^^^^^^^^^^^^^^^^^
Comenzaremos por el cable de **red RJ45** contra el puerto que aparece en
la fotografía:
.. image:: ../images/complements/8_024_how_to_install.png
:align: center
:scale: 50 %
- Una vez tengamos el cable de red conectado pasaremos a conectar el
dispositivo a la corriente y encendiendo el mismo.
- Cuando ambas luces estén estables, significa que el dispositivo
está arrancado y funcionando correctamente.
- Una vez conectada y en funcionamiento, debería poder visualizarse desde
la sección **Devices** con su parámetro ``MAC Address`` asociado.
- Las sondas conectadas aparecerán por primera vez en la tabla **Discovered
Devices** y los ya inventariados en la tabla **Inventory Devices**.
Validación conectividad
^^^^^^^^^^^^^^^^^^^^^^^
Una vez instalada la sonda, debería poder visualizarse desde la web de
**Bandwidth Monitor**. En caso contrario, debemos revisar el flujo, teniendo
en cuenta que una de las premisas para la implementación es la resolución de
DNS al dominio interno *prueba.org* (IP del servidor central) desde las sondas.
A través de la auto-asignación de IP (vía DHCP), se debe configurar que las sondas
tengan comunicación a *prueba.org*. Configuración que se establece por parte del
cliente en los dispositivos de comunicaciones (router).
.. image:: ../images/complements/8_003_architecture.png
:align: center
:scale: 40%