Quero capturar todo o tráfego em meu servidor Iperf que escuto promiscuamente, mesmo que não seja o IP pretendido.
Eu sei que você pode fazer isso com endereços Multicast, mas não quero seguir esse caminho: multicasting em Wifi incorre em perda de rendimento
Eu tenho a configuração atual: 3 hosts, cada um com sua própria NIC wifi em modo promíscuo. Quero saber quantos pacotes UDP podem ser recebidos simplesmente ouvindo promiscuamente.
Por exemplo:
Host 1 está executando o cliente iperf: iperf -c 192.168.4.197 -B 192.168.4.142 -b 100M -u
Host 2 está executando o servidor iperf: iperf -s -u -B 192.168.4.197
Host 3 também está executando o servidor iperf:iperf -s -u -B 0.0.0.0
Os endereços de ligação são os endereços locais da interface wlan0.
Entendo por que o iperf no Host 3 não lê os pacotes escutados promiscuamente como seus pacotes: o IP no pacote não é o endereço da interface wlan0 local.
Porém, haveria uma forma de iperf no Host 3 receber esses pacotes? Com iptables/ebtables ou talvez uma reescrita do tcpdump?
Se o iptables puder redirecionar os pacotes ouvidos promiscuamente para qualquer endereço IP local, posso capturá-lo usando o iperf.
Eu sei que posso receber os pacotes no Host 3 - se eu fizer um tcpdump, posso ver os pacotes entre o Host 1 e o Host 2.
Eu sei que os pacotes só são visíveis em uma rede Wifi aberta (não criptografada). Eu configurei desta forma. Esta rede é apenas para fins de teste, portanto a segurança não importa por enquanto.
Alguma ideia? Por favor, deixe-me saber se você precisar de mais informações.
EDIT: alterou o endereço de ligação do Host 3 para 0.0.0.0. No entanto, isso não resolveu meu problema.
Responder1
Você vincula seu iperf
Host3 ao IP 192.168.4.121
, para que ele receba apenas pacotes enviados para esse IP. Você pode tentar vinculá-lo ao IP 0.0.0.0
, transformar sua interface de rede em modo promíscuo e verificar.