É possível causar perda ou latência artificial de pacotes de rede?

7

Estou tentando reproduzir alguns problemas em um aplicativo implantado em que o servidor e o cliente MSSQL estão sendo executados em duas máquinas separadas. Eu acho que pode haver problemas de rede entre as duas máquinas, então eu gostaria de tentar reproduzir essas condições em duas máquinas virtuais Hyper-V (no mesmo servidor virtual). É claro que a rede dessas máquinas virtuais é "local", portanto, está longe das condições em um ambiente ao vivo.

Existe um programa que eu possa executar em qualquer uma das máquinas virtuais, o que prejudicará o desempenho da rede? Ou talvez algum outro trabalho rodeie? Por exemplo, uma maneira de reproduzir as condições pode ser executar as VMs em servidores Hyper-V separados em locais geograficamente dispersos (para que o tráfego do SQL passe por VPN ou algo assim) - mas isso é um pouco prolixo, eu acho. Deve haver uma maneira mais simples.

    
por Nick Bolton 07.04.2010 / 18:13

6 respostas

3

No Linux você usaria o netem, no FreeBSD você usaria o dummynet.

Nenhuma dessas soluções funcionaria em uma única máquina Windows usando o Hyper-V. Eu procurei e não consigo localizar nenhum emulador de rede compatível com o Windows Hyper-V.

Você pode colocar duas VMs em duas máquinas físicas diferentes, com uma caixa Linux ou FreeBSD entre elas. Mas parece que não há nenhuma solução que faça exatamente o que você deseja em um único host da VM.

    
por 07.04.2010 / 18:29
1

Meu amigo criou algo usando o dummynet e o FreeBSD no ESX. Eu sei que não é o Hyper-V, mas você pode modificá-lo para trabalhar para você. link

    
por 07.04.2010 / 18:23
1

Dummynet deve funcionar para você: link

Instala um serviço no NIC e, em seguida, através da linha de comando, você define seus parâmetros.

Eu usei-o para testar o acesso ao site por meio de um link de alta latência ou de baixa largura de banda no Windows XP, e ele funciona muito bem.

    
por 07.04.2010 / 18:48
1

Um método adicional é o Network Emulator Toolkit (NEWT) autônomo, que, apesar da sua idade, é bastante capaz e funciona para sistemas operacionais Windows x86 e x64.

link

Usando os modelos XML incluídos com o instalador, você pode executar e simular rapidamente a simulação de latência, largura de banda, jitter e outras variáveis de rede.

Eu testei e usei este aplicativo em todas as versões do Windows a partir do XP - > Windows 10.

    
por 11.05.2016 / 00:37
0

Parece que você precisa de netem

Você pode inserir perda de pacotes, latência, instabilidade etc

    
por 07.04.2010 / 18:37
0

Se for apenas para atrasar pacotes, no Linux você pode simplesmente usar tc e disciplinas de enfileiramento em cadeia (por exemplo, HTB ):

[...] HTB as child of another HTB is NOT the same as class under another class within the same HTB. It is because when class in HTB can send it will send as soon as hardware equipment can. So that delay of underlimit class is limited only by equipment and not by ancestors. In HTB under HTB case the outer HTB simulates new hardware equipment with all consequences (larger delay)

perdas também podem ser introduzidas com iptables e o módulo random :

# for randomly dropping 10% of incoming packets:
iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP

# and for dropping 10% of outgoing packets:
iptables -A OUTPUT -m statistic --mode random --probability 0.1 -j DROP
    
por 13.09.2011 / 17:22