Como medir el ancho de banda entre dos redes en linux Centos 8

Red

 

Como medir el ancho de banda o la velocidad entre dos redes en Gnu/ linux Centos 8. Las herramientas son opensource y se pueden utilizar  en otras distros o sistemas operativos como RHEL, Windows, Debian, MacOS, Ubuntu, etc.

Algunas de las herramientas que utilizaremos (iperf, netcat nc, ttcp, entre otras) en esta entrada, las enfocaremos para pruebas de medición del flujo de datos de la capa de transporte (protocolos TCP y UDP), aunque las mismas la podemos utilizar en otras funciones.

En resumen mediremos la velocidad de transferencia, el rendimiento y el ancho de banda entre dos puntos o redes.

IPERF y IPERF3

srv:~$ iperf -s < -------------  red ------------- > cli:~$ iperf ip-srv
                (red metro ethernet, wifi, vpn, etc)

Iperf y su version iperf3 es una herramienta multiplataforma que se utiliza para hacer pruebas de medición o rendimiento entre dos extremos, prácticamente creamos flujos de datos TCP o UDP y mide el rendimiento de la transferencia entre los dos puntos o redes de manera unidireccional o bidireccionalmente. La version iperf3 no es compatible con las anteriores.

En su formato simple podemos usuarl iperf con sus parametros por defecto en el servidor iperf -s, en el cliente iperf -c ip-servidor,  es importante que el firewall no este bloqueando el puerto por donde realizaremos las pruebas.

Servidor ip 192.168.5.1Cliente ip 192.168.5.2
Iperf3 -sIperf3 -c 192.168.5.1


Servidor). Este seria el comando ejecutado en el servidor, con su respectiva salida.

usuario@servidor:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.5.1 port 5001 connected with 192.168.5.2 port 4463
[  4]  0.0-10.0 sec  1.01 GBytes    866 Mbits/sec

Cliente). Este seria el comando ejecutado en el equipo cliente, con su respectiva salida.

usuario@cliente:~$ iperf -c 192.168.5.1
------------------------------------------------------------
Client connecting to 192.168.5.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.5.2 port 4483 connected with 192.168.5.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.01 GBytes    867 Mbits/sec

Como se puede observar en el ejemplo anterior, la salida de Iperf contiene un informe con marcas de tiempo con la cantidad de datos transmitidos y el rendimiento medido.

Ademas de que Iperf funciona en cualquier red proporcionando medidas estandarezadas sobre los protocolos de transporte udp y tcp, nos permitirá como usuario ajustar varios parámetros que pueden ser usados para hacer pruebas, optimizar y/o ajustar la red.

UDP: Cuando se utiliza el protocolo UDP, Iperf permite al usuario especificar el tamaño de los datagramas y proporciona resultados del rendimiento y de los paquetes perdidos.

TCP: Cuando se utiliza TCP, Iperf mide el rendimiento de la carga útil. Un detalle a tener en cuenta es que Iperf usa 1024*1024 para medidas en megabytes y 1000*1000 para megabits.

Otro ejemplo con udp , intervalos de 1 sec y 4 hilos

usuario@server:~$ iperf -s -u -i 1 -t 2  -P 4
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   107 KByte (default)

------------------------------------------------------------
[  3] local 192.168.5.1 port 5001 connected with 192.168.5.2 port 59991
[  4] local 192.168.5.1 port 5001 connected with 192.168.5.2 port 46655
[  5] local 192.168.5.1 port 5001 connected with 192.168.5.2 port 43889
[  6] local 192.168.5.1 port 5001 connected with 192.168.5.2 port 35668
[  3]  0.0- 1.0 sec    131 KBytes  1.07 Mbits/sec  0.011 ms    0/   89 (0%)
[  4]  0.0- 1.0 sec    128 KBytes  1.05 Mbits/sec  0.011 ms    0/   89 (0%)
[  5]  0.0- 1.0 sec    126 KBytes  1.03 Mbits/sec  0.011 ms    1/   89 (1.1

usuario@cliente:~$ iperf -c 192.168.5.1 -u -i 1 -t 10  -P 4
------------------------------------------------------------
Client connecting to 192.168.5.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   109 KByte (default)

------------------------------------------------------------
[  4] local 192.168.5.2 port 59991 connected with 192.168.5.1 port 5001
[  5] local 192.168.5.2 port 46655 connected with 192.168.5.1 port 5001
[  6] local 192.168.5.2 port 43889 connected with 192.168.5.1 port 5001
[  3] local 192.168.5.2 port 35668 connected with 192.168.5.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec    129 KBytes  1.06 Mbits/sec
[  5]  0.0- 1.0 sec    129 KBytes  1.06 Mbits/sec
[  6]  0.0- 1.0 sec    129 KBytes  1.06 Mbits/sec
[  3]  0.0- 1.0 sec  4.00 GBytes  34.4 Gbits/sec

NC

netcat es la utilidad de línea de comandos de netcat bastante útil. Aunque estas pruebas con nc consideran todos los parametros en la red, cuando la realizamos en las dos direcciones, nos proporcionan una idea muy cercana a nuestra realidad.

usuario@server:~$ nc -l -p 5001 | wc -c

usuario@cliente:~$ dd if=/dev/zero bs=1048576 count=1024 | nc -q 0 192.168.0.8 5001
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 10.2186 seconds, 105 MB/s

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *