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.