Simulando um problema de rede para um aplicativo específico

2

Isso é de alguma forma uma questão para desenvolvedores, mas como está mais relacionado a sistemas operacionais e conexões de rede, vou postar aqui e não no Stack Overflow.

Estou tentando simular uma situação quando uma conexão de rede é fechada devido a um problema ou erro de rede, para testar um comportamento que implementei em um dos meus aplicativos. Eu poderia simplesmente desconectar meu cabo de rede ou desligar a interface de rede, mas fiz meu aplicativo se reconectar imediatamente depois disso, o que levaria muito tempo até que a rede voltasse a funcionar (por causa da negociação DHCP e etc.). p>

Existe alguma maneira, no Unix ou no OS X, de simplesmente desconectar um aplicativo específico da Internet e depois deixar que ele se reconecte imediatamente? Talvez para simular um erro de "conexão redefinida pelo par" ou algo assim (eu não sou um profissional quando se trata de rede, então desculpe pela minha linguagem newbie).

Obrigado.

    
por ov1d1u 21.01.2013 / 14:08

1 resposta

0

Várias maneiras de fazer isso, mas a mais simples que me ocorre é usar o ifconfig (ipconfig no windows). A sintaxe irá variar um pouco, mas

ifconfig eth0 down

Você pode fazer coisas semelhantes com o trajeto excluindo a rota para o servidor do aplicativo.

Ou você pode limpar o cache do arp, (veja man arp) e então ter outro host (real ou virtual) falsificando o MAC da máquina.

Existe uma chamada de pacote hping (acho que na versão 3 agora) que pode simular vários tipos de pacotes. Você pode usar isso para definir os pacotes de redefinição do destino de volta para o host que está executando o aplicativo.

Então você pode colocar em um script

ifconfig eth0 down
sleep 5
ifconfig eth0 up

Se você tiver o servidor em sua rede, poderá desativar o processo no servidor. Por exemplo. pare o servidor httpd se seu aplicativo for um aplicativo da web.

O poster anterior sobre como trabalhar com um firewall em uma máquina que os pacotes de seu aplicativo precisam traansit.

Procure também ataques de injeção e ataques de negação de serviço.

Se o servidor ou um host intermediário executar o linux, você executará o pf nesse host. Ao carregar e descarregar uma determinada regra, você pode abrir ou fechar uma determinada combinação de porta / protocolo / ip. Você também pode controlar uma conexão, permitindo apenas muitos pacotes por segundo.

    
por 25.03.2013 / 02:00