Rede virtual para testes reprodutíveis

1

Estou desenvolvendo um produto de software que usa recursos de rede, como ligação de dispositivos, protocolos multi-homing. Como acontece com qualquer desenvolvimento de protocolo, o código de teste precisa levar em conta a latência, o descarte de pacotes etc. Estou, portanto, tentando criar um ambiente de rede virtual no qual eu possa fazer testes controláveis e reproduzíveis.

As duas principais características que eu quero testar (ou seja, medir o desempenho, estabilidade etc.):

  • Associações multihoming do SCTP nas quais o cliente usa vários terminais.
  • Ligação de dispositivos de vários dispositivos.

Como mencionado, eu quero ser capaz de fazer controle de tráfego entre os nós na rede, bem como filtragem de tráfego para simular NATs herdados, etc.

Exemplo de teste:

Este teste deve emular um cliente com quatro NICs (wifi, usb, bluetooth, ethernet) comunicando-se pela internet com um servidor de interface única.

Eu gostaria de criar uma rede virtual que emule esse layout. Um dispositivo emula um nó WAN e quatro outros representam as interfaces dos clientes. Há um limite de largura de banda de 1 Mb / s entre as interfaces do cliente e a interface do servidor e uma perda de pacote de 1%.

Um dispositivo de ligação das quatro interfaces do cliente é criado. Um servidor iperf está vinculado ao endereço da WAN e um cliente está vinculado ao endereço do dispositivo de ligação e conectado ao servidor WAN.

    
por prinsen 24.04.2013 / 17:20

1 resposta

0

Parece que você quer usar algo como 'tc' (se link para mais detalhes) sobre os vários interfaces, usando o componente do kernel 'netem'.

Um exemplo seria:

tc qdisc add dev eth1 root handle 1: netem delay 500ms 125ms reorder 3% loss 2%

Veja link para a página do manual em 'tc'.

Veja link para informações sobre como usar o módulo netem com tc.

    
por 26.04.2013 / 23:11