Test Foro de elhacker.net SMF 2.1

Comunicaciones => Redes => Mensaje iniciado por: madpitbull_99 en 20 Julio 2011, 10:44 AM

Título: Medir el ancho de banda entre dos nodos en una LAN
Publicado por: madpitbull_99 en 20 Julio 2011, 10:44 AM
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 (http://sourceforge.net/projects/iperf/) [Wiki (http://en.wikipedia.org/wiki/Iperf)], 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

(http://madzone.comoj.com/image_host/images/capturwhw.png)

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.

(http://madzone.comoj.com/image_host/images/captura2.png)


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

(http://madzone.comoj.com/image_host/images/capturada.png)


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

(http://madzone.comoj.com/image_host/images/capturxtx.png)

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.

(http://madzone.comoj.com/image_host/images/capturgeg.png)


Configurar JPerf

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

(http://madzone.comoj.com/image_host/images/capturnon.png)

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 (http://samkear.com/how-to-guides/how-to-compile-iperf-for-windows-using-cygwin).
_Man Pages para IPerf (http://staff.science.uva.nl/~jblom/gigaport/tools/man/iperf.html) | Mirror (http://www.digipedia.pl/man/doc/view/iperf.1/)
_Documentación Extendida del IPerf (http://openmaniak.com/iperf.php)
Título: Re: Medir el ancho de banda entre dos nodos en una LAN
Publicado por: NetVicious en 1 Agosto 2011, 09:11 AM
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.
Título: Re: Medir el ancho de banda entre dos nodos en una LAN
Publicado por: Kasswed en 3 Agosto 2011, 01:50 AM
Muy bueno, gracias!