Como posso criar tráfego pesado em um link ethernet a partir da linha de comando?

1

Parece que tenho um problema de rede quando uma das máquinas do servidor move uma grande quantidade de dados pelo link de rede em que está. Tenho certeza de que, no passado, eu era capaz de enviar dados aleatórios para determinado endereço IPv4 ou endereço MAC na linha de comando por um período fixo de tempo. Essa é uma maneira muito simples de testar se a carga de tráfego em um link específico é a causa do problema.

Eu não estou tão preocupado em calcular a velocidade do link, eu gostaria apenas de tentar saturar ou pelo menos pesadamente carregar (~ 100Mbps) o link. Ser capaz de fazê-lo facilmente a partir de uma linha de comando típica do Ubuntu 16.04 com ferramentas básicas me permitiria facilmente ssh para uma máquina (configurar uma sessão do GNU Screen) e direcionar para outra máquina. Eu poderia então trabalhar através de links ou hosts para descobrir qual deles (se algum) acionaria o meu problema de rede.

    
por TafT 28.09.2016 / 13:25

1 resposta

0

É possível fazer isso usando o Netcat.

Na máquina de destino (que receberá os dados), configure o netcat para receber dados em uma porta (12345 no exemplo abaixo) e canalize-o para / dev / null. / dev / null é usado como deveria ser o lugar mais rápido para enviar os dados, se você usar um arquivo no disco, há uma chance de retardar a transferência.

nc -vvlnp 12345 >/dev/null

Agora, na máquina de origem (que enviará os dados), configure o netcat para transmitir um conjunto de dados para a máquina de destino. Isso pode ser / dev / zero ou / dev / random se você quiser garantir que nenhuma compactação esteja ocorrendo. No exemplo abaixo, 1 milhão de bits de dados são enviados 1k vezes para o destino no endereço 10.10.0.2.

dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
    
por TafT 17.10.2016 / 12:06