Configurar um roteador para descartar pacotes, introduzir latência, corromper dados

13

Eu queria saber se alguém teve alguma experiência na criação de um ambiente projetado intencionalmente para um desempenho ruim ao enviar / receber solicitações em uma rede. Estou desenvolvendo um aplicativo e gostaria de torná-lo robusto em redes extremamente pobres. Alguém sabe se é possível configurar um roteador para:

  1. soltar pacotes intermitentemente
  2. introduzir intermitentemente latência em pacotes
  3. corrompe os dados em pacotes (este não é necessário, já que seria necessário abrir o pacote, alterar os dados e atualizar a soma de verificação, já que a camada TCP pegaria esse tipo de problema)

Se não for possível em um roteador, seria possível configurar um computador para atuar como roteador e fazer isso?

Muito obrigado!

    
por Mark 14.11.2010 / 00:05

3 respostas

17

Se você usa uma caixa Linux como um roteador, o netfilter tem várias maneiras de mexer com o tráfego de pacotes.

O módulo random pode ser usado para descartar pacotes aleatoriamente. Por exemplo, isso:

iptables -A FORWARD -m random --average 10 -j DROP

fará com que o roteador derrube pacotes aleatoriamente a uma taxa média de 10%.

Você também pode corromper pacotes aleatórios com o alvo XOR, por exemplo

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"

corromperá 1% dos pacotes encaminhados ao XORing com uma chave derivada da string dada.

    
por 14.11.2010 / 00:32
3

Eu usei com sucesso WANem para simular as condições de rede de uma WAN entre a Alemanha e a Índia. O WANem é enviado como um CD ou dispositivo virtual inicializável. Basta inicializá-lo, configurar os locais de rede desejados e, então, rotear seu tráfego por ele. Citando a descrição oficial:

WANem is a Wide Area Network Emulator, meant to provide a real experience of a Wide Area Network/Internet, during application development / testing over a LAN environment. Typically application developers develop applications on a LAN while the intended purpose for the same could be, clients accessing the same over the WAN or even the Internet. WANem thus allows the application development team to setup a transparent application gateway which can be used to simulate WAN characteristics like Network delay, Packet loss, Packet corruption, Disconnections, Packet re-ordering, Jitter, etc. WANem can be used to simulate Wide Area Network conditions for Data/Voice traffic and is released under the widely acceptable GPL v2 license.

    
por 14.11.2010 / 13:48
2

Defina a porta de uplink para 10Mbps e half duplex, se puder. Em seguida, use um host na rede para executar o snot fora dele. Isso deveria neutralizar você decentemente: D

    
por 14.11.2010 / 00:16