Midiendo la velocidad de conexión con iperf

Download PDF

Siempre medimos la velocidad con Speedtest ya que consideramos que su modelo de expansión es acertado, es como una franquicia, sin contar de que ellos iniciaron con aplicaciones Flashplayer y con el tiempo corrigieron y ahora es puro HTML5 además que en Linux tienen una aplicación sólida por ventana terminal, es decir, sin interfaz gráfica.

Todo esto bien pero… ¿Qué tal si queremos tener nuestras propias medidas?

Tabla de contenido:

iperf

Historia

En realidad el nombre correcto es iperf2 y el original iperf fue escrito originalmente por Mark Gates y Alex Warshavsky. Siguieron con la batuta Ajay Tirumala, Jim Ferguson, Jon Dugan, Feng Qin, Kevin Gibbs, John Estabrook, Andrew Gallatin, Stephen Hemminger, Tim Auckland y Robert J. McMahon. Su código fuente reposa en SourceForge, aquí evaluamos la versión 2.0.10 liberada el 2 de junio de 2018 pero existe una versión 3.0 (código fuente en GitHub) que no es compatible con esta versión. iperf3 tiene su propio sitio oficial el cual pueden visitar en este enlace.

Instalación

La herramienta iperf el cual puede funcionar tanto como servidor y también como cliente. En cualquier distribución Debian (la probamos sobre Ubuntu 18.04 y Lubuntu 18.04) instalamos de manera sencilla:

sudo apt install iperf
sudo apt install iperf (Ubuntu 18.04)
sudo apt install iperf (Ubuntu 18.04)

 

sudo apt install iperf (Lubuntu 18.04)
sudo apt install iperf (Lubuntu 18.04)

Ejecutando el servidor

Simplemente utilizamos la opción –server o con su forma abreviada -s sin más. El puerto por defecto es el 5000 pero podemos especificar uno diferente con el parámetro -p o -port; vale recordar que si utilizamos algún muro de fuego (generalmente ufw) debemos hacer la excepción para lograr comunicación.

iperf -s (servidor puerto 5001)
iperf -s (servidor puerto 5001)

Si deseamos configurar como un servidor fijo para medir velocidad deberemos usar la opción -D o –daemon y fijarlo para que se ejecute automáticamente al arrancar nuestro ordenador; si tenemos direcciones IPv6 usaremos el comando -V o –ipv6_domain (sin dejar de usar IPv4).

Ejecutando el cliente

En el lado del cliente utilizaremos algunas opciones específicas:

  • -c o –client: la dirección IP o el dominio de nuestro servidor.
  • -i o–interval: el número de segundos para mostrar resultados parciales de la prueba de velocidad.
  • -t o –time: el número de segundos para nuevas conexiones, dado el caso haya algún inconveniente, por defecto 10 segundos.
iperf (cliente puerto 5001)
iperf (cliente puerto 5001)

Otras opciones que pueden ser útiles son:

  • -F o -fileinput: especificar un archivo para transmitir y medir con esos datos específicos.
  • -R o –reverse: para cuando tenemos un muro de fuego.
  • -L o –listenport: para hacer pruebas bidireccionales, establecer un puerto alterno.

IPv6

Actualizado el viernes 13 de septiembre de 2019

Realizamos unas pruebas con un servidor en Reino Unido y un cliente en Canadá: en ambos reinos están actualizados con IPv6 y como nuestra curiosidad es maratónica pues nos propusimos probar no sin antes realizar una prueba, primero, con IPv4 desde acá, desde Valencia, Venezuela (ofuscamos las direcciones IP, hay mucho cracker suelto por ahí, para hacker con nosotros basta y sobra).

IPv4 desde Venezuela

iperf IPv4 a servidor en Reino Unido
iperf IPv4 a servidor en Reino Unido

A esta fecha CANTV cumple con la décima parte del plan que contratamos, 10 megabits por segundo…

IPv4 desde Canadá hasta Reino Unido

iperf IPv4 desde Canadá a servidor en Reino Unido
iperf IPv4 desde Canadá a servidor en Reino Unido

iperf IPv6 desde cliente Canadá a servidor en Reino Unido

En esta prueba verificamos que la misma velocidad promedio de 300 megabits fue obtenida, siempre por TCP… lo curioso del asunto es que con UDP nunca sobrepasamos poco más allá de 1 megabit por segundo (en teoría debería ser más rápido porque este protocolo no requiere confirmación de recepción), así que ese es el asunto pendiente para el siguiente experimento; mientras tanto acá los valores recabados:

Por favor, lea también   Feliz Día del Software Libre 2017
iperf servidor IPv6 en Londres
iperf servidor IPv6 en Londres

 

iperf cliente IPv6 en Canadá
iperf cliente IPv6 en Canadá

Configurando UFW

Actualizado el sábado 3 de septiembre de 2022

Montando un servidor FTP en un servidor HP, antes de ponerlo a funcionar me dio por medir la velocidad tanto por cable como por inalámbrico y recordé que se debe habilitar iperf para UFW…

El asunto es que el programa no trae un perfil que describa al menos algo muy importante: el número de puerto a habilitar. Obvio, se le puede ordenar a UFW que abra tal puerto pero para propósitos administrativos lo mejor es ser explícitos:

sudo ufw allow iperf
sudo ufw allow iperf

Esto se logra creando el siguiente fichero que he tomado de la lista de correos de reporte de errores de Debian:

[iperf]
title=iperf
description=Network performance measurement tool
ports=5001

Guardar con el siguiente nombre y ruta:

/etc/ufw/applications.d/iperf

Fuentes consultadas

En idioma inglés

<Eso es todo, por ahora>.

Download PDF