Quiero capturar todo el tráfico en mi servidor Iperf que escucho promiscuamente, incluso si no soy la IP prevista.
Sé que puedes hacer esto con direcciones de multidifusión, pero no quiero seguir ese camino: la multidifusión en Wifi genera una pérdida de rendimiento.
Tengo la configuración actual: 3 hosts, cada uno con su propia NIC wifi en modo promiscuo. Quiero saber cuántos paquetes UDP se pueden recibir simplemente escuchando de forma promiscua.
Por ejemplo:
El host 1 ejecuta el cliente iperf: iperf -c 192.168.4.197 -B 192.168.4.142 -b 100M -u
El host 2 ejecuta el servidor iperf: iperf -s -u -B 192.168.4.197
El host 3 también ejecuta el servidor iperf:iperf -s -u -B 0.0.0.0
Las direcciones de enlace son las direcciones locales de la interfaz wlan0.
Entiendo por qué iperf en el Host 3 no lee los paquetes escuchados promiscuamente como sus paquetes: la IP en el paquete no es la dirección de la interfaz wlan0 local.
Sin embargo, ¿habría alguna forma de que iperf en el Host 3 recibiera estos paquetes? ¿Ya sea con iptables/ebtables o tal vez una reescritura de tcpdump?
Si iptables puede redirigir los paquetes escuchados promiscuamente a cualquier dirección IP local, puedo capturarlos usando iperf.
Sé que puedo recibir los paquetes en el Host 3; si hago un tcpdump, puedo ver los paquetes entre el Host 1 y el Host 2.
Sé que los paquetes sólo son visibles en una red Wifi abierta (sin cifrar). Lo tengo configurado de esta manera. Esta red es sólo para fines de prueba, por lo que la seguridad no importa por ahora.
¿Algunas ideas? Por favor, hágamelo saber si necesita más información.
EDITAR: se cambió la dirección de enlace del Host 3 a 0.0.0.0. Sin embargo, eso no resolvió mi problema.
Respuesta1
Vincula su iperf
Host3 a IP 192.168.4.121
, por lo que solo recibirá paquetes que se envíen a esta IP. Podrías intentar vincularlo a IP 0.0.0.0
, poner tu interfaz de red en modo promiscuo y comprobarlo.