Simular perdas de pacote em um comutador de rede

1

Nós temos um switch de rede aqui e podemos facilmente pedir para limitar a largura de banda que ele permite, o que é legal. Seria ótimo se pudéssemos também pedir para gerar perdas de pacotes para nós - fazer isso com o WANem é possível, mas adiciona latências e estamos lidando com aplicativos em tempo real, portanto, qualquer latência que adicionarmos é ruim para nós. Alguém sabe de um switch de rede ou um roteador que permite isso ou pode ser hackeado para acomodá-lo?

    
por Tsahi Levent-Levi 06.10.2010 / 16:30

1 resposta

1

Todos os switches que limitam a velocidade na porta ou na vlan devem permitir que você "simule" a perda de pacotes. Se o seu aplicativo precisar de 1 mb de tráfego, defina o limite como um pouco abaixo disso e o switch deve eliminar os pacotes.

Lembre-se de que todos os switches que possuem essa funcionalidade precisam amostrar para poder limitar. Por exemplo: a porta 1 está configurada para 1mb limite. A porta 1 envia 2mb de tráfego por uma fração de segundo. A maior parte provavelmente irá sobreviver. Isso ocorre porque, até que o switch possa detectar e medir a quantidade de tráfego que chega, ele não sabe o que deve ser descartado. Dependendo do seu fornecedor, isso pode ser implementado de várias maneiras, algum buffer e, em seguida, descartará os pacotes do buffer, e alguns apenas permitirão o momento de entrada e saída e, em seguida, o limite.

Se você está procurando exatamente como o aplicativo responderá, sugiro que você configure uma caixa BSD bem na frente do computador em que está testando o aplicativo. O BSD (só porque eu os uso para meus firewalls) tem um comando chamado ipfw que permitirá que você para controlar diretamente uma conexão. Então vamos supor que o seguinte é seu cenário atual:

+--------------------+      +----------------+
| Application Server | ---> | Client Machine |
+--------------------+      +----------------+

Eu entendo que isso seria uma simplificação excessiva, mas ilustra o conceito. O que você pode fazer é configurar um nat no meio e ter limite de taxa

+--------------------+      +-----------------------+      +----------------+
| Application Server | ---> | Rate Limit Box        | ---> | Client Machine |
|           10.0.0.5 |      | 10.0.0.6  192.168.1.1 |      | 192.168.1.2    |
+--------------------+      +-----------------------+      +----------------+

Mais uma vez, sei que isso é uma simplificação excessiva. Eu adicionei IP's para que eu pudesse mostrar a você quais seriam os comandos no BSD na Caixa de Limite de Taxa. Primeiro, configure o BSD para atuar como um roteador normal, você pode usar o pf sense etc. Então você pode adicionar os seguintes comandos no prompt.

ipfw pipe 1 config bw 101Kbit
ipfw add 1 pipe 1 ip from 10.0.0.5 to 192.168.1.2
ipfw add 2 pipe 1 ip from 192.168.1.2 to 10.0.0.5

Isso simularia uma conexão de 101kb para e do cliente para o servidor. Você pode então alterar o valor 101 para qualquer coisa para poder ver o que acontece em vários limites. A vantagem real que isso tem sobre um switch que suporta os recursos de limitação é que ele é barato (um computador simples com algumas interfaces) e que você pode usar wireshark para capturar o tráfego, se necessário, para ver exatamente o que está sendo descartado quantos. Esta informação pode ser muito útil para projetar uma aplicação melhor.

imho

    
por 06.10.2010 / 18:32