Medir el ancho de banda entre dos nodos en una LAN

Iniciado por madpitbull_99, 20 Julio 2011, 10:44 AM

0 Miembros y 1 Visitante están viendo este tema.

madpitbull_99

Medir el ancho de banda entre dos nodos en una LAN


Como administrador de una red es importante saber a que velocidad circulan los datos en nuestra red, pudiendo optimizar la red o detectar cuellos de botella.

Para ésta tarea hay varias herramientas, en éste artículo me centraré en el uso de Iperf [Wiki], una herramienta gratuita de tipo cliente-servidor para medir el ancho de banda entre dos nodos. Se trata de una herramienta de consola que mide el tráfico TCP y UDP, pero se ha desarrollado una interfaz gráfica (GUI) en java, llamada JPerf, cuyo uso veremos más adelante.

Introducción a IPerf

Al tratarse de una arquitectura cliente-servidor, esta herramienta hay que instalarla en los dos nodos en los que se realizará la prueba. Es multiplataforma y opensource, pero en este tutorial usaré dos máquina con GNU/Linux, al final encontraréis como usarlo en Windows.

Instalar IPerf:

Código (bash) [Seleccionar]
apt-get install iperf


Configurar IPerf

En el equipo que hará de servidor hay que ponerlo en modo escucha y en el que se conectará habrá que indicarle la IP del nodo servidor:

Servidor:
Código (bash) [Seleccionar]
iperf -s



Cliente:

Código (bash) [Seleccionar]
iperf -c <ip_servidor>

Después de conectarnos al cliente se realizará la prueba y saldrá el resultado en MB/segundo.




Se disponen de muchas más opciones para realizar el testeo.

Para el cliente:

-b, --bandwidth #[KM]
for UDP, bandwidth to send at in bits/sec (default 1 Mbit/sec,
implies -u)

-c, --client
Ejecutarse en modo cliente y conectarse a un servidor

-d, --dualtest
Se realiza un test bidireccional

-n, --num
#[KM] Número de paquetes a transmitir

-r, --tradeoff
Test bidireccional individual

-t, --time
# Tiempo en segundo de transferencia (por defecto 10 segundos)

-F, --fileinput
Configurar un fichero como datos de transferencia

-I, --stdin
Configurar entrada de datos por consola como datos de transferencia

-L, --listenport #
Puerto para recibir los tests bidireccionales

-P, --parallel
# Número de procesos paralelos

-T, --ttl
# time-to-live, para multicast (por defecto 1)

Miscellaneous:
-h, --help
Muestra la ayuda del programa

-v, --version
Muestra la versión actual

[KM] Indica las opciones que soporta, una K para kilo o M mega.


A continuación vamos a ver algunos ejemplos de uso de los siguientes parámetros.


Formato de Datos:

Mediante el parámetro -f podemos indicarle a la aplicación en que formato debe  mostrarnos los datos transferidos. Se usará para: bits(b), bytes(B), kilobits(k), kilobytes(K), megabits(m), megabytes(M), gigabits(g) ó gigabytes(G).

Cliente:
Código (bash) [Seleccionar]
iperf -c 192.168.1.100 -f G


Servidor:
Código (bash) [Seleccionar]
iperf -s


Test Bi-Direccional:

Por defecto, solo se mide el tráfico proveniente del cliente, pero si usamos el parámetro -r en el servidor, el testeo se realizará en los dos nodos.

Cliente:
Código (bash) [Seleccionar]
iperf -c 192.168.1.100 -r


Servidor:
Código (bash) [Seleccionar]
iperf -s

Si se quiere medir de forma simultanea, hay que usar -d y si se quiere medir de forma secuencial, es con el parámetro -r

Cliente:
Código (bash) [Seleccionar]
iperf -c 192.168.1.100 -d


Servidor:
Código (bash) [Seleccionar]
iperf -s




Tamaño de los Datagramas:

Se puede especificar el tamaño que tendrán los datagramas, mediante el parámetro -w y un valor comprendido entre 2 y 65,535 bytes.

Cliente:
Código (bash) [Seleccionar]
iperf -c 192.168.1.100 -w 2000


Servidor:
Código (bash) [Seleccionar]
iperf -s -w 4000


Tiempo, puerto e interval:

Al igual que el comando "ping" permite indicar un tiempo mediante -t, un intervalo mediante -i y un puerto mediante -p

Cliente:
Código (bash) [Seleccionar]
iperf -c 192.168.1.100 -p 1337 -t 15 -i 3


Servidor:
Código (bash) [Seleccionar]
iperf -s -p 1337



Hay muchos más parámetros que nos pueden facilitar las tareas, el resto lo dejo en vuestras manos.


Introducción a JPerf

Como ya he dicho anteriormente, JPerf es una GUI para IPerf. Lo primero que haremos será descargarla desde la página oficial del proyecto (http://code.google.com/p/xjperf/downloads/list).

Al estar hecho en Java, también necesitaremos el VM de Java. En Windows tendremos que ejecutar un .exe y en Linux o Mac, un .sh mediante consola y con permisos de ejecución.




Configurar JPerf

Al tratarse de una interfaz gráfica, suele ser bastante intuitivo, por lo que no se necesitarán muchas instrucciones.



Como podéis ver, los parámetros son los mismos, y lo único que hace, es mostrar mediante una GUI los resultados obtenidos.

En esta última prueba, la he realizado desde un nodo con Windows XP conectandome a un servidor Linux. Os dejo juguetear con esta aplicación.


Documentación y Enlaces externos:
_Compilar Iperf en Windows con Cygwin.
_Man Pages para IPerf | Mirror
_Documentación Extendida del IPerf



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

NetVicious

Para Windows también está bastante bien el Bandwidth Test de Mikrotik.

http://www.mikrotik.com/download/btest.exe

Se ejecuta en ambos equipos, en uno se activa el modo servidor y en el cliente se pone la IP del servidor.
.. //\/ e t . \/ i c i o u s ..

Kasswed

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.